我为这个问题编写代码:
名词同义词集中有多少百分比没有下位词?您可以使用wn.all_synsets('n')获取所有名词同义词集。
这是我的代码:
import nltk
from nltk.corpus import wordnet as wn
all_noun = wn.all_synsets('n')
print(all_noun)
print(wn.all_synsets('n'))
all_num = len(set(all_noun))
noun_have_hypon = [word for word in wn.all_synsets('n') if len(word.hyponyms()) >= 1]
noun_have_num = len(noun_have_hypon)
print('There are %d nouns, and %d nouns without hyponyms, the percentage is %f' %
(all_num, noun_have_num, (all_num-noun_have_num)/all_num*100))
当我运行这段代码时,输出结果为:
但如果将
<generator object all_synsets at 0x10927b1b0>
<generator object all_synsets at 0x10e6f0bd0>
有82115个名词,其中16693个没有下位词,所占比例为79.671193
noun_have_hypon = [word for word in wn.all_synsets('n') if len(word.hyponyms()) >= 1]
noun_have_hypon = [word for word in all_noun if len(word.hyponyms()) >= 1]
为什么两者不相等尽管
<generator object all_synsets at 0x10917b1b0>
<generator object all_synsets at 0x10e46aab0>
有82115个名词,其中0个没有下位词,所占比例为100.000000
all_noun = wn.all_synsets('n')
,而0x10927b1b0和0x10e6f0bd0的意义是什么?
wordnet.all_synets()
返回的任何对象都没有定义有意义的__str__
方法。 - grochmal