繁体   English   中英

如何在wordnet层次结构中使用python nltk查找两个同义词集之间的距离?

[英]How to find distance between two synset using python nltk in wordnet hierarchy?

假设我有两个同义词集synset(car.n.01')和synset('bank.n.01'),如果我想在wordnet层次结构中找到这两个同义词集之间的距离,那么如何使用nltk做到这一点?
我在互联网上搜索,但是我得到了类似lin,resnik,jcn等的相似算法,但这些算法无法解决我的问题。
请帮我解决这个问题。

这个

路径相似度wup_similarity和lch_similarity都应该起作用,因为它们基于Wordnet层次结构中两个同义词集之间的距离。

dog = wn.synset('dog.n.01')
cat = wn.synset('cat.n.01')

dog.path_similarity(cat)

dog.lch_similarity(cat)

dog.wup_similarity(cat)


在同一链接中,(相关部分以粗体显示)

synset1.path_likeity(synset2):

根据连接is-a(双音节/催音符)分类法中的两个最短路径,返回一个表示两个单词的感觉相似程度的分数。 分数在0到1的范围内,除非在找不到路径的情况下(仅对于动词才是正确的,因为存在许多不同的动词分类法),在这种情况下将返回-1。 分数1表示身份,即将感官与自身进行比较将返回1。


synset1.lch_similarity(synset2),Leacock-Chodorow相似度:

根据连接感官的最短路径 (如上所述)和出现感官的分类法的最大深度,返回一个表示两个单词的感官相似程度的分数。 关系以-log(p / 2d)形式给出,其中p是最短路径长度,d是分类深度。


synset1.wup_similarity(synset2),Wu-Palmer相似度:

根据分类中两种意义的深度及其最不常见归类(最具体的祖先节点)的深度,返回表示两种意义的相似程度的分数。 请注意,此时给出的分数并不总是与Pedersen的Perl实施Wordnet相似性所给出的分数一致。

此外,您还可以查看chatterbot的实现。

“ Chatterbot比较类”

您将在该文件中找到更多的距离处理

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM