nltk Wordnet同义词集查询问题

pu82cl6c  于 5个月前  发布在  其他
关注(0)|答案(4)|浏览(56)

执行:
print wn.synsets("tablesssssssssssssssss")
返回结果(它不应该这样做,因为英语中没有这个词),
但是如果我们在这里使用Wordnet在线API:
http://wordnetweb.princeton.edu/perl/webwn
对于相同的单词,我们得到的结果是正确的。
为什么会出现这个问题?

epfja78i

epfja78i1#

这是因为 WordNet $x_{wn.synsets()}$ 函数在检查同义词集之前尝试使用 $x_{moprhy}$ 词形还原器进行词形还原。使用新的 API,您可以通过指定 $x_{use_morphy=False}$

$x_{

>>> from wn import WordNet
>>> wn = WordNet()
wn.synsets("tablessssssssssssssss">>> wn.synsets("tablessssssssssssssss")
[Synset('table.n.01'), Synset('table.n.02'), Synset('table.n.03'), Synset('mesa.n.02'), Synset('table.n.05'), Synset('board.n.04'), Synset('postpone.v.01'), Synset('table.v.02')]
>>> wn.synsets("tablessssssssssssssss", use_morphy=False)
[]

}$

来获得默认不进行词形还原的严格行为。

d8tt03nd

d8tt03nd2#

我从nltk 3.2.5升级到3.4.5,但仍然没有use_morphy参数。为什么?

g9icjywg

g9icjywg3#

是的,@ndvbd,"use_morphy"参数甚至不在最新的NLTK版本中,尽管在第18期中被提出,听起来像是一个好主意。

yptwkmov

yptwkmov4#

实际上,问题不在于是否使用morphy,而在于防止morphy多次递归地剥离相同的后缀。PR #3225 修复了这个问题。

相关问题