【问题标题】:NLTK Wordnet getting the list of Synsets in PythonNLTK Wordnet 获取 Python 中的 Synset 列表
【发布时间】:2018-07-02 13:59:40
【问题描述】:

我正在使用 NLTK Wordnet 为意大利语创建词条和同义词集,看起来还不错:

from nltk.corpus import wordnet as wn

ll=wn.synsets('carta', lang='ita')
ll 

[Synset('card.n.01'),
 Synset('map.n.01'),
 Synset('sheet.n.02'),
 Synset('document.n.01'),
 Synset('charter.n.01'),
 Synset('menu.n.01'),
 Synset('paper.n.01')]

hypernyms[0].lemmas(lang="ita")
[Lemma('paper.n.01.carta')]

但我试图在最后一次操作之后不仅接收一个列表值,而且还列出了我在ll 中拥有的所有同义词集的所有值。

使用了几种方法,但它们不起作用:

第一个,仍在使用 NLTK:

lemmas = wn.lemmas(ll, lang="ita")
'list' object has no attribute 'lower'

还有一个带循环的:

i = iter(list(range(6)))

    for i in ll[i].lemmas(lang='ita'):
        print(ll[i].lemmas(lang='ita'))
list indices must be integers or slices, not list_iterator

如何解决?

【问题讨论】:

    标签: python list for-loop nltk wordnet


    【解决方案1】:

    使用列表理解

    [synset.lemmas(lang='ita') for synset in ll]
    

    输出

    [[Lemma('card.n.01.carta')],
     [Lemma('map.n.01.carta'),
      Lemma('map.n.01.carta_geografica'),
      Lemma('map.n.01.cartina'),
      Lemma('map.n.01.mappa')],
     [Lemma('sheet.n.02.carta'), Lemma('sheet.n.02.foglio')],
     [Lemma('document.n.01.atto'),
      Lemma('document.n.01.carta'),
      Lemma('document.n.01.documento'),
      Lemma('document.n.01.incartamento'),
      Lemma('document.n.01.scrittura')],
     [Lemma('charter.n.01.carta'), Lemma('charter.n.01.statuto')],
     [Lemma('menu.n.01.carta'), Lemma('menu.n.01.menu'), Lemma('menu.n.01.menù')],
     [Lemma('paper.n.01.carta')]]
    

    【讨论】:

      猜你喜欢
      • 2015-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-16
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      相关资源
      最近更新 更多