1

我正在尝试编写一个程序来评估文本之间的语义相似性。我已经比较了文本之间的 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、学者等)使用词性来进行更深入的测量,但没有人说他们是如何做到的。词性如何用于“更深入”的语义文本相似度测量?

4

2 回答 2

1

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

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

于 2012-07-29T19:39:09.707 回答
0

看看NLTK Book的第 6 章。它应该为您提供大量可用于对文本进行分类的功能的想法。

于 2012-07-12T18:08:21.753 回答