我想要一些方法来确定两个网页是否在语义上相关。我用Google搜索并找到了一个名为WordNet(一个大词汇数据库)的东西。我想知道如何使用python和WordNet实现这一目标?
答案 0 :(得分:4)
最简单和最原始的方法是:
从每个页面中提取前N个术语(关键词)(按频率可以像前N个术语一样简单,不包括英语中的'a,the,an'等停止词)。这将为您提供每个页面的功能集。
比较重叠页面之间的顶部术语。您可以使用Wordnet来比较您的术语的同义词,例如运动鞋< ==>培训师。如果您有一定程度的关键字重叠,那么页面在某种程度上是相关的。
编辑:
为每个页面导出关键字功能集的更好方法是为每个页面提取具有统计意义的单词。您可以通过从参考文本中获取或编译(1 2和3个单词)n-grams的列表来完成此操作,例如: wikipedia)然后计算页面上单词/短语的n-gram,并比较n-gram的出现频率和全局n-gram集中出现的频率。如果您发现您的页面上的n-gram比您对参考语料库的预期更频繁,那么它们对于该页面而言可能具有统计意义。
这方面的难点在于获取或编译参考n-gram(它需要足够大以在统计上可行),您需要将其与网页上的n-gram进行比较。您可以通过查看免费下载wikipedia等网站来获取谷歌的n-gram语料库,或者建立自己的语料库。如果你在google上环顾四周,其他人可能已经发布了一个免费提供的n-gram集。
答案 1 :(得分:1)
我个人没有使用它,但我听说NLTK (Natural Language Toolkit)库可以为这些语言分析任务提供很大帮助。除了大量的语言语料库和其他数据集之外,他们还有很多很好的文档和在线教程。