【问题标题】:Getting the root word using the Wordnet Lemmatizer使用 Wordnet Lemmatizer 获取词根
【发布时间】:2017-01-11 04:31:36
【问题描述】:

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

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

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

python nltk lemmatizer 在使用词性(pos)标签参数但不用于“泛化”时给出“泛化”,用于“泛化”和“泛化”。

有没有办法做到这一点?

【问题讨论】:

    标签: python nlp nltk wordnet lemmatization


    【解决方案1】:

    使用 SnowballStemmer:

    >>> from nltk.stem.snowball import SnowballStemmer
    >>> stemmer = SnowballStemmer("english")
    >>> print(stemmer.stem("generalized"))
    general
    >>> print(stemmer.stem("generalization"))
    general
    

    注意:词形还原与词干提取密切相关。不同的是 词干分析器在不知道单词的情况下对单个单词进行操作 上下文,因此无法区分具有 不同的词性有不同的含义。

    我在 lemmatizers 中看到的一个普遍问题是,它将更大的词识别为 lemmas。

    示例: 在 WordNet Lemmatizer(在 NLTK 中检查)中,

    • 概括 => 概括
    • 泛化 => 泛化
    • 概括 => 概括

    在上述情况下没有给出POS标签作为输入,所以它总是被认为是名词

    【讨论】:

    • 词干并不是真正的引理;P 看看 stackoverflow.com/questions/17317418/stemmers-vs-lemmatizers
    • @ani-menon 我以前使用过搬运工词干分析器。搬运工词干分析器和雪球词干分析器有什么区别?
    • @Ani 我打算使用 lemmatizer 以获得比搬运工词干分析器更好的结果,以将所有相似的关键字匹配到相同的(有意义的)根词。词形还原器不可能吗?
    • @ShanikaEdiriweera Porter 是一个旧算法(1980 年),后来进行了修改,但雪球算法更新了。
    • @ShanikaEdiriweera 根据定义是的,它应该被词形化以获得最佳结果(即通过提供 POS 标签也作为输入)但大多数词形还原器都不够好,你可能不得不写一个适合您的用例。
    猜你喜欢
    • 2014-04-15
    • 2016-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-17
    相关资源
    最近更新 更多