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

Python 使用WordNet确定两个文本之间的语义相似性?,python,nlp,nltk,wordnet,semantic-analysis,Python,Nlp,Nltk,Wordnet,Semantic Analysis,如何使用WordNet确定python中两个文本之间的语义相似性 明显的预处理是删除停止词和词干,但接下来呢 我能想到的唯一方法是计算两个文本中每个单词之间的WordNet路径距离。这是Unigram的标准配置。但这些是大型(400字)文本,是自然语言文档,其中的单词没有任何特定的顺序或结构(英语语法规定的除外)。那么,你会比较课文中的哪些单词?在python中,您将如何做到这一点 您可以做的一件事是: 杀死停止语 找出尽可能多的同义词和反义词与同一文档中其他词的同义词和反义词交叉最多的词。让我

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

明显的预处理是删除停止词和词干,但接下来呢


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

您可以做的一件事是:

  • 杀死停止语
  • 找出尽可能多的同义词和反义词与同一文档中其他词的同义词和反义词交叉最多的词。让我们称之为“重要的词语”
  • 检查每个文档的重要单词集是否相同。它们越接近,文档的语义就越相似
  • 还有另一种方法。根据每个文档中的句子计算句子树。然后比较这两片森林。很久以前,我为一门课程做过类似的工作。(请记住,这是很久以前的事了,而且是为了上课。因此,至少可以说,代码非常粗糙)


    希望这有帮助

    我将迭代所有单词,并以levenshtein距离与其他文本中的相同索引进行比较,并尝试将其最小化。这两个文本不是由相似的索引组织的。例如,这将是一个关于狗的维基百科页面,另一个关于猫的页面。我在看你的代码,但我不知道如何比较句子树。用python中的NLTK大概只需要15行左右的代码,不是吗?我从来没有说到这一点。但这应该是一个直截了当的结果,我的代码的输出取决于你想如何比较句子树。但它不应该需要太多的代码。