我正在尝试编写一个程序来评估文本之间的语义相似性。我已经比较了文本之间的 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/