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

Zac*_*ach 4 python nlp nltk wordnet semantic-analysis

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

明显的预处理将是删除停止词和词干,但那又是什么?

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

ins*_*get 9

你能做的一件事是:

  1. 杀掉停止的话
  2. 找到尽可能多的单词,其中同义词和反义词的最大交叉点与同一文档中的其他单词的交叉点.我们称之为"重要的话语"
  3. 检查每个文档的重要单词集是否相同.它们越接近,文档的语义就越相似.

还有另一种方式.从每个doc中的句子中计算句子树.然后比较两个森林.很久以前,我为一门课程做过类似的工作.这是代码(请记住这是很久以前的事情,而且是为了上课.所以代码非常hacky,至少可以说).

希望这可以帮助