The spotsigs提到的论文乔伊塞斯坎解决了内容重复检测问题,其中包含大量值得深思的内容。
如果您正在寻找关键术语的快速比较,nltk
标准功能可能就足够了。
With nltk
您可以通过查找来提取术语的同义词synsets包含于WordNet
>>> from nltk.corpus import wordnet
>>> wordnet.synsets('donation')
[Synset('contribution.n.02'), Synset('contribution.n.03')]
>>> wordnet.synsets('donations')
[Synset('contribution.n.02'), Synset('contribution.n.03')]
它理解复数形式,还告诉您同义词对应于哪个词性
Synsets存储在树中,更具体的术语位于叶子,更通用的术语位于根部。根项称为上位词
您可以通过术语与常见术语的接近程度来衡量相似性hypernym
注意不同的词性,根据 NLTK 食谱,它们没有重叠的路径,所以你不应该尝试测量它们之间的相似性。
比如说,你有两个学期donation and gift,你可以从synsets
但在这个例子中我直接初始化它们:
>>> d = wordnet.synset('donation.n.01')
>>> g = wordnet.synset('gift.n.01')
食谱推荐Wu-Palmer相似度方法
>>> d.wup_similarity(g)
0.93333333333333335
这种方法为您提供了一种快速方法来确定所使用的术语是否对应于相关概念。看一眼使用 Python 进行自然语言处理看看您还可以做些什么来帮助您分析文本。