python - 如何使用Parts-of-Speech来评估语义文本相似度?

标签 python nlp nltk semantic-analysis

我正在尝试编写一个程序来评估文本之间的语义相似性。我已经比较了文本之间的 n-gram 频率(词汇测量)。我想要比这更浅薄的东西,并且我认为查看句子结构中的相似性将是评估文本相似性的一种方法。

但是,我能想到的就是计算词性(例如,每个文本 4 个名词、2 个动词等)。这类似于仅计算 n 元语法(实际上效果不如 n 元语法)。

postags = nltk.pos_tag(tokens)
self.pos_freq_dist = Counter(tag for word,tag in postags)
for pos, freq in self.pos_freq_dist.iteritems():
    self.pos_freq_dist_relative[pos] = freq/self.token_count    #normalise pos freq by token counts             

很多人(Pearsons、ETS Research、IBM、学者等)使用词性进行更深入的测量,但没有人说他们是如何做到的。如何使用词性来“更深入”地衡量语义文本相似性?

最佳答案

需要更复杂的标记器,例如 http://phpir.com/part-of-speech-tagging/ 。 您将需要编写算法并创建单词库来确定句子的含义或意图。语义分析是人工智能。

名词和大写名词将成为内容的主题。形容词会暗示内容的极性。模糊性、清晰度、力量、弱点、所用词语的类型。可能性是无限的。

关于python - 如何使用Parts-of-Speech来评估语义文本相似度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11454113/

相关文章:

python - Opencv - python - 将线段检测器(LSD)中的线段连接起来形成一条线

python - 当我尝试在Sobel模糊中使用64F时,Python中的OpenCV提示

python - 为什么使用 .conf 文件而不是 config.py 文件?

python-3.x - nltk.corpus - 'getset_descriptor' 对象没有属性 'setdefault'

python - python程序在sublime text 3中执行失败,但在bash中执行成功

facebook - 从Twitter状态获取意图的工具?

python - 使用 spacy 和 Matcher 提取 NER 主语 + 动词的问题

python - 从图像中提取文本

python - NLTK 创建的字符串正则表达式不起作用

python - 使用 WordNet 和 NLTK 替换语料库中的同义词 - python