如何获得NLTK中同义词集的词网感知频率? [英] How to get the wordnet sense frequency of a synset in NLTK?

查看:127
本文介绍了如何获得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')

我也可以这样获得definitionposoffsetexamples:

I can also get the definition, pos, offset, examples as such:

>>> wn.synset('dog.n.01').examples
>>> wn.synset('dog.n.01').definition

但是如何从语料库中获得同义词集的频率呢?要解决这个问题:

  1. 首先如何计数一个同义词集是否出现一个带有感官标记的语料库?
  2. 然后下一步是在给定特定引理的情况下,将所有同义词集出现的次数除以计数总数.

推荐答案

我设法做到了.

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中同义词集的词网感知频率?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆