我正在尝试编写一个程序来评估文本之间的语义相似性。我已经比较了文本之间的 n-gram 频率(词汇量度)。我想要一些比这更浅的东西,并且我认为在句子构造中查看相似性将是评估文本相似性的一种方法。
但是,我能想出的办法就是计算 POS(例如,每个文本 4 个名词、2 个动词等)。这类似于仅计算 n-gram(实际上效果不如 ngram)。
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、学者等)使用词性来进行更深入的测量,但没有人说他们是如何做到的。词性如何用于“更深入”的语义文本相似度测量?