如何使用词性来评估语义文本的相似性?

时间:2012-07-12 14:30:48

标签: python nlp nltk semantic-analysis

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

然而,我只能弄清楚如何计算POS(例如,每个文本4个名词,2个动词等)。这类似于只计算n-gram(实际上效果不如ngrams)。

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,学者等)使用词性来进行更深入的测量,但没有人说他们是如何做到的。如何将词性用于“更深层次”的语义文本相似度测量?

2 个答案:

答案 0 :(得分:1)

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

名词和大写名词将成为内容的主题。形容词会对内容的极性给出一些暗示。模糊,清晰,力量,弱点,使用的单词类型。可能性是无穷无尽的。

答案 1 :(得分:0)

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