本文介绍了如何获得NLTK中同义词集的词网感知频率?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
根据文档,我可以像这样在nltk中加载带有感官标记的语料库:
According to the documentation i can load a sense tagged corpus in nltk as such:
>>> 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
:
I can also get the definition
, pos
, offset
, examples
as such:
>>> wn.synset('dog.n.01').examples
>>> wn.synset('dog.n.01').definition
但是如何从语料库中获得同义词集的频率呢?要解决这个问题:
- 首先如何计数一个同义词集是否出现一个带有感官标记的语料库?
- 然后下一步是在给定特定引理的情况下,将所有同义词集出现的次数除以计数总数.
推荐答案
我设法做到了.
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]
这篇关于如何获得NLTK中同义词集的词网感知频率?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!