0

我想要一些方法来确定两个网页是否在语义上相关。我用谷歌搜索并找到了一个叫做 WordNet(一个大型词汇数据库)的东西。我想知道如何使用 python 和 WordNet 完成此任务?

4

2 回答 2

4

最简单和最粗暴的方法是:

  1. 从每个页面中提取前 N 个术语(关键字)(可以像按频率排列的前 N ​​个术语一样简单,不包括英语中的“a, the, an”等停用词)。这将为您提供每个页面的功能集。

  2. 比较页面之间的热门术语是否有重叠。您可以使用 Wordnet 来比较您的术语的同义词,例如,sneakers <==> trainers。如果您有一定程度的关键字重叠,那么页面在某种程度上是相关的。

编辑:

为每个页面派生一组关键字的更好方法是为每个页面提取具有统计意义的单词。您可以通过从参考文本(例如 wikipedia)中获取或编译(1 个 2 和 3 个单词) n-gram列表来做到这一点,然后计算页面上单词/短语的 n-gram 并比较出现的频率您的 n-gram 与全局 n-gram 集中的 n-gram。如果您发现您的页面上的 n-gram 出现的频率比您对参考语料库的预期更频繁,那么它们很可能对该页面具有统计意义。

困难的部分是获取或编译参考 n-gram(它需要足够大才能在统计上可行),您需要将其与网页上的 n-gram 进行比较。您可以获取 google 的 n-gram 语料库,或者可能通过查看可免费下载的网站(如 wikipedia)来构建您自己的语料库。如果您在谷歌上环顾四周,其他人可能已经发布了一个免费可用的 n-gram 集。

于 2011-05-27T07:00:33.290 回答
1

我个人使用的不多,但我听说NLTK(自然语言工具包)库对这类语言分析任务有很大帮助。他们有很多很好的在线文档和教程,还有大量的语言语料库和其他数据集来帮助你入门。

于 2011-05-27T07:17:56.300 回答