如果我在线使用 WordNet 如下:
我会得到一个首选的感觉
(6)S: (n) engineering (engineering%1:04:01::)
(6)
通过考虑所有词性和其中所有同义词的感觉频率。
其中我会用字符串'engineering'
来规范我的查询词。在这种情况下,什么都不会改变。
不幸的是,我无法从 Python NLTK WordNet 库中获得这些与语义/同义词集相关的数字。这里的频率是用于引理而不是用于感觉。引理频率的总和不会再现与感觉/同义词相关的频率。整体排名反映了全球 PoS 排名为第一优先级,这使得无法选择返回的第一个同义词集WN.synsets('engineering')
。
(6)
在 NLTK 数据中根本找不到上述频率。
当我执行以下操作时:
>>> sorted([(synset.lemmas()[0].count(),synset.lemmas()[0].name()) for synset in WN.synsets('engineering')],reverse=True)
>>> [(12, 'technology'), (2, 'engineering'), (1, 'mastermind'), (0, 'engineering'), (0, 'engineer')]
最上面的引理是'technology'
,它甚至不是在线版本中的引理,而是上位词。
在我看来,在线资源在输入词的情况下给出了一种意义的频率,该功能似乎没有在 NLTK 版本中实现。那是对的吗?
我假设在线感知频率回答了以下问题:
“X这个词有多少次有Y的意义?”
这不同于:
“理论上可以与单词 X 共享意义 Y 的单词出现了多少次?”
如果您进入,情况会更加极端'real'
。
在这里,您可以(260, 'very')
使用上面的代码获得最佳结果。Very
非常频繁,但是当你说'real'
你的时候,你通常并不意味着'very'
。
因此,总而言之,似乎在线版本给出了给定单词的条件概率因子,而 NLTK 版本仅给出了与您的单词 X 共享意义的所有单词的先验概率因子。
编辑:我看到了这个'engineering'
例子,频率6
可以在 NLTK 版本中找到
Synset('technology.n.01')
Lemma('technology.n.01.engineering')