获取 nltk semcor 语料库词的意义词干

Posted

技术标签:

【中文标题】获取 nltk semcor 语料库词的意义词干【英文标题】:Getting sense stems for nltk semcor corpus words 【发布时间】:2021-11-01 15:37:41 【问题描述】:

我在 nltk 中尝试使用 semcorp corpus。

我找到了这个代码here:

>>> list(map(str, semcor.tagged_chunks(tag='both')[:3])) 
['(DT The)', "(Lemma('group.n.01.group') (NE (NNP Fulton County Grand Jury)))", "(Lemma('state.v.01.say') (VB said))"]

我在 colab 上尝试过同样的方法(检查 this 笔记本中的最后一个单元格):

>>> list(map(str, semcor.tagged_chunks(tag='both')[:3]))
['(DT The)',
 '(group.n.01 (NE (NNP Fulton County Grand Jury)))',
 '(say.v.01 (VB said))']

这是来自 colab 的截图:

问题

请注意,在 nltk 页面上,Fulton County Grand Jury 的输出为 Lemma('group.n.01.group'),但在 colab 上,我得到的是 group.n.01。所以我没有理解/同义词集。

group.n.01.group 第一个group 是“意义词的词干” 最后一个group 是“输入词干” 在group.n.01 (第一个也是唯一一个)group 是“输入词干” 没有返回“词干”

奇怪的是它昨天给了我正确的输出。 This notebook 将消除疑问,因为它在今天和昨天执行了相同的两行。昨天(2/9/2021),我收到了group.n.01.group 格式的标签,但今天我收到了group.n.01 格式的标签(注意红色和蓝色评论):

我在这里缺少什么?

【问题讨论】:

【参考方案1】:

我知道semcor 使用wordnet 感觉来标记brown 语料库的子集。但我不知道semcor APIs 可以在有或没有预下载wordnet 的情况下工作,它会在这些不同的场景中给出不同格式的标签。老实说,至少semcor API 文档应该提到这一点。

因此,如果没有预下载 wordnet,它不会返回语义词干:

预下载了wordnet,它确实返回了感觉词干:

【讨论】:

以上是关于获取 nltk semcor 语料库词的意义词干的主要内容,如果未能解决你的问题,请参考以下文章

NLTK与NLP原理及基础

Python NLTK 中用于情感分析的德语词干

02 NLTK 分句分词词干提取词型还原

朴素贝叶斯的 nltk 词干和停用词

python+NLTK 自然语言学习处理四:获取文本语料和词汇资源

自然语言处理——NLTK文本语料库