根据文档,我可以在nltk中加载有感觉标记的语料库:
>>> from nltk.corpus import wordnet_ic
>>> brown_ic = wordnet_ic.ic('ic-brown.dat')
>>> semcor_ic = wordnet_ic.ic('ic-semcor.dat')
我也可以这样获得definition
,pos
,offset
,examples
:
>>> wn.synset('dog.n.01').examples
>>> wn.synset('dog.n.01').definition
但如何从语料库中获取synset的频率?要打破这个问题:
答案 0 :(得分:5)
我设法这样做了。
from nltk.corpus import wordnet as wn
word = "dog"
synsets = wn.synsets(word)
sense2freq = {}
for s in synsets:
freq = 0
for lemma in s.lemmas:
freq+=lemma.count()
sense2freq[s.offset+"-"+s.pos] = freq
for s in sense2freq:
print s, sense2freq[s]
答案 1 :(得分:0)
如果您只需要知道最常见的单词是什么,则可以执行wn.synsets(word)[0]
,因为WordNet通常会将它们从最频繁的单词排列到最不频繁的单词。
(来源:Daniel Jurafsky的语音和语言处理第二版)