执行:print wn.synsets("tablesssssssssssssssss")返回结果(它不应该这样做,因为英语中没有这个词),但是如果我们在这里使用Wordnet在线API:http://wordnetweb.princeton.edu/perl/webwn对于相同的单词,我们得到的结果是正确的。为什么会出现这个问题?
print wn.synsets("tablesssssssssssssssss")
http://wordnetweb.princeton.edu/perl/webwn
epfja78i1#
这是因为 WordNet $x_{wn.synsets()}$ 函数在检查同义词集之前尝试使用 $x_{moprhy}$ 词形还原器进行词形还原。使用新的 API,您可以通过指定 $x_{use_morphy=False}$
wn.synsets()
moprhy
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) []
}$
来获得默认不进行词形还原的严格行为。
d8tt03nd2#
我从nltk 3.2.5升级到3.4.5,但仍然没有use_morphy参数。为什么?
g9icjywg3#
是的,@ndvbd,"use_morphy"参数甚至不在最新的NLTK版本中,尽管在第18期中被提出,听起来像是一个好主意。
yptwkmov4#
实际上,问题不在于是否使用morphy,而在于防止morphy多次递归地剥离相同的后缀。PR #3225 修复了这个问题。
4条答案
按热度按时间epfja78i1#
这是因为 WordNet $x_{
wn.synsets()
}$ 函数在检查同义词集之前尝试使用 $x_{moprhy
}$ 词形还原器进行词形还原。使用新的 API,您可以通过指定 $x_{use_morphy=False
}$$x_{
}$
来获得默认不进行词形还原的严格行为。
d8tt03nd2#
我从nltk 3.2.5升级到3.4.5,但仍然没有use_morphy参数。为什么?
g9icjywg3#
是的,@ndvbd,"use_morphy"参数甚至不在最新的NLTK版本中,尽管在第18期中被提出,听起来像是一个好主意。
yptwkmov4#
实际上,问题不在于是否使用morphy,而在于防止morphy多次递归地剥离相同的后缀。PR #3225 修复了这个问题。