0

原始问题:

一个词的多义词是它所具有的意义的数量。使用 WordNet,我们可以通过 len(wn.synsets('dog', 'n')) 确定名词 dog 有七种含义。根据 WordNet 计算名词、动词、形容词和副词的平均多义词。

根据我从问题中收集到的信息,我将在 NLTK 中使用内置的多义方法和 WordNet 来找出某物具有的感官数量。

更重要的是,我正在尝试使用所有可用的同义词集并循环它们,并将所有返回的值放入一个集合中。在此之后,我打算添加新创建的集合(用整数填充)中所有同义词集的总数以接收总和。在我得到这个总和后,我会将条目总数除以得到平均值。

我最大的问题是……我将如何遍历所有可用的同义词以及名词、动词、形容词和副词?

  • 在通过各种网站进行研究后,我发现 for "wn.all_synsets('n')" 将返回所有可能的名词同义词集。

但是它返回的类型是“生成器”,我将如何使用循环来迭代“生成器”类型?

.>>>allsynsets = wn.all_synsets('n')

.>>> 所有同义词集

<.generator object all_synsets at 0x04359F30>

.>>> 类型(allsynsets)

<.type '生成器'>

我希望我已经提供了足够的信息,让任何人都能找到这个问题的答案。我没有源代码,除了导入和测试来理解这个问题的生成器类型。

感谢您的时间。

4

1 回答 1

2

这些方法中的任何一种都应该有效

list = [x for x in wx.all_synsets('n')]

或者

for x in wx.all_synsets('n'):
    print x

[编辑] 这更多地讨论了生成器(在网络上的许多其他来源中) http://www.dalkescientific.com/writings/NBN/generators.html

于 2012-04-11T05:55:52.537 回答