使用WordNet确定两个文本之间的语义相似度?

时间:2012-07-13 02:35:53

标签: python nlp nltk wordnet semantic-analysis

如何使用WordNet确定python中两个文本之间的语义相似度?

明显的前处理是删除停止词和词干,但接着是什么?

我能想到的唯一方法是计算两个文本中每个单词之间的WordNet路径距离。这是unigrams的标准。但这些是大型(400字)文本,即自然语言文档,其中的单词不具有任何特定顺序或结构(除英语语法强加的单词外)。那么,你会在文本之间比较哪些词?你会如何在python中做到这一点?

1 个答案:

答案 0 :(得分:8)

您可以做的一件事是:

  1. 杀掉停用词
  2. 尽可能多地找到同义词和反义词与同一文档中其他词的最大交叉点的词。我们称之为“重要的话”
  3. 检查每个文档的重要单词集是否相同。它们越接近,文档就越相似。
  4. 还有另一种方式。从每个doc中的句子中计算句子树。然后比较两个森林。很久以前,我为一门课程做过类似的工作。 Here's the code(请记住,这是很久以前的事情,而且是为了上课。所以代码是非常hacky,至少可以说。)

    希望这有帮助