使用Wordnet Lemmatizer获取词根

Sha*_*era 2 python nlp nltk wordnet lemmatization

我需要找到一个与关键字提取器的所有相关单词匹配的公共词根。

如何使用python nltk lemmatizer将单词转换为相同的词根?

  • 例如:
    1. 概括,概括->概括
    2. 最佳,优化->优化(也许)
    3. 配置,配置,配置->配置

python nltk lemmatizer在使用Speech(pos)标签参数的一部分时为“ generalized”和“ generalizing”给出“ generalize”,而不是为“ generalization”。

有没有办法做到这一点?

Ani*_*non 6

使用SnowballStemmer:

>>> from nltk.stem.snowball import SnowballStemmer
>>> stemmer = SnowballStemmer("english")
>>> print(stemmer.stem("generalized"))
general
>>> print(stemmer.stem("generalization"))
general
Run Code Online (Sandbox Code Playgroud)

注意:合法化与词干关系密切。区别在于,词干分析器在不了解上下文的情况下对单个单词进行操作,因此无法根据词性区分具有不同含义的单词。

我在lemmatizers上看到的一个普遍问题是,它将更大的单词识别为lemma

示例:在WordNet Lemmatizer(已在NLTK中选中)中,

  • 归纳=>概括
  • 通用化=>通用化
  • 概括=>概括

在上述情况下,未提供POS标签作为输入,因此始终将其视为名词

  • @ShanikaEdiriweera Porter是一个旧算法(1980年),后来进行了修改,但雪球更新了。 (2认同)