如何确定使用WordNet的Python中两个文本之间的语义相似度?使用WordNet来确定两个文本之间的语义相似度?
明显的预处理将删除停用词和词干,但那又如何?
我能想到的唯一方法是计算两个文本中每个单词之间的WordNet路径距离。这是unigrams的标准。但是这些都是大的(400字)文本,它们是自然语言文件,没有任何特定顺序或结构的文字(除了英文文法强加的文字外)。那么,你会在文本之间比较哪些单词?你将如何在Python中做到这一点?
如何确定使用WordNet的Python中两个文本之间的语义相似度?使用WordNet来确定两个文本之间的语义相似度?
明显的预处理将删除停用词和词干,但那又如何?
我能想到的唯一方法是计算两个文本中每个单词之间的WordNet路径距离。这是unigrams的标准。但是这些都是大的(400字)文本,它们是自然语言文件,没有任何特定顺序或结构的文字(除了英文文法强加的文字外)。那么,你会在文本之间比较哪些单词?你将如何在Python中做到这一点?
一件事,你可以做的是:
还有另一种方法。从每个文档中的句子计算句子树。然后比较两个森林。很久以前,我为一门课做了一些类似的工作。 Here's the code(请记住,这是很久以前的,这是课程,所以代码是非常黑客,至少可以这么说)。
希望这有助于
+1好主意。我在看你的代码,但我没有看到如何比较句子树。据推测,它应该只需要大约15行代码与Python中的NLTK,不是吗? – Zach 2012-07-13 22:30:32
我从来没有到过这一点。但它应该是我的代码输出的直接镜头 – inspectorG4dget 2012-07-13 22:34:22
取决于您想如何比较句子树。但它不应该占用太多的代码。 – inspectorG4dget 2012-07-14 00:23:04
我会遍历所有单词,并比较同一指数与Levenshtein距离其他文本并试图将其最小化 – 2012-07-13 02:50:22
两个文本没有通过类似的索引组织。例如,它将是一个关于狗的维基百科页面,另一个关于猫的维基百科页面。 – Zach 2012-07-13 22:22:45