Nltk lemmatizers无法识别化学名称的复数形式

时间:2020-03-23 16:13:58

标签: python nlp nltk lemmatization

所以,我必须承认,我对nlp完全不了解,对nltk也不知道,我只是在尝试使用以前开发人员留下的遗留代码。我需要对词进行词素化,主要是化学和生物技术出版物中的词。我通常使用WordNetLemmatizer。大部分时间都可以。

from nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
lemmatizer.lemmatize('cats')

归还猫。

但是我尝试

lemmatizer.lemmatize('dehydrogenases')

它返回“脱氢酶”。我希望它返回“脱氢酶”。我该怎么办?

1 个答案:

答案 0 :(得分:2)

说明

如果您将nltk作为模块安装,然后使用以下代码初始化WordNetLemmatizer:

from nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()

您可能会得到一个LookupError字样:

LookupError: 
**********************************************************************
  Resource wordnet not found.
  Please use the NLTK Downloader to obtain the resource:

  >>> import nltk
  >>> nltk.download('wordnet')

  For more information see: https://www.nltk.org/data.html

  Attempted to load corpora/wordnet.zip/wordnet/

原因

您初始化的词条修饰符基于WordNet。引用WordNet的文档:

WordNet®是一个大型的英语词汇数据库。名词,动词, 形容词和副词分为认知同义词集 (同义词),每个词表达不同的概念。同义词集是相互关联的 通过概念语义和词汇关系。所结果的 可以浏览有意义的相关词语和概念的网络 使用浏览器。 WordNet也可以免费和公开地用于 下载。 WordNet的结构使其成为计算的有用工具 语言学和自然语言处理。

基本上,它并没有将英语词典中的所有单词都定形。因此,虽然它适用于cats一词,但不适用于WordNet词汇数据库中的其他单词。

我希望这会有所帮助。