【问题标题】:What is the difference between lemmatization vs stemming?词形还原与词干提取有什么区别?
【发布时间】:2009-11-24 00:48:11
【问题描述】:

我什么时候使用每个?

另外...NLTK 词形还原是否依赖于词性? 如果是这样不是更准确吗?

【问题讨论】:

  • 这有点出乎我的意料,但为什么会有 python 标签?
  • @jimmy: 标记为 python b/c 它在谈论 python nltk 库
  • 这是一篇很好的文章,可以准确地回答这个问题question

标签: nlp nltk lemmatization


【解决方案1】:

短而密:http://nlp.stanford.edu/IR-book/html/htmledition/stemming-and-lemmatization-1.html

词干提取和词形还原的目的都是为了将​​词的屈折形式和有时派生相关的形式减少为共同的基本形式。

但是,这两个词的风格不同。词干提取通常是指一种粗略的启发式过程,该过程会切断单词的结尾,以希望在大多数情况下正确地实现这一目标,并且通常包括删除派生词缀。词形还原通常是指使用词汇表和词的形态分析来正确处理事情,通常旨在仅删除屈折词尾并返回单词的基本形式或字典形式,这被称为引理。

来自 NLTK 文档:

词形还原和词干化是规范化的特殊情况。他们确定了一组相关词形的规范代表。

【讨论】:

  • 想知道关于文档的平均词形还原长度告诉我们什么?
  • 这并不能完全回答问题。您没有解释何时使用哪个。两者都可以用于标准化,但通常您选择哪一个是精度和速度之间的权衡。
  • @dzieciou,感谢您的输入 - 您也许可以编辑答案;我也会尝试添加更多上下文。
【解决方案2】:

Lemmatisationstemming 密切相关。不同的是,一个 词干分析器在不了解上下文的情况下对单个单词进行操作, 因此无法区分具有不同的单词 意义取决于词性。然而,词干分析器通常是 更容易实现和运行更快,并且降低的准确性可能不会 对某些应用程序很重要。

例如:

  1. “更好”这个词的引理是“好”。这个链接被错过了 词干提取,因为它需要查找字典。

  2. 单词“walk”是单词“walking”的基本形式,因此这个 在词干提取和词形还原中都匹配。

  3. “会议”一词可以是名词的基本形式或形式 取决于上下文的动词(“遇见”),例如,“在我们的最后 会议”或“我们明天再见面”。与词干不同, lemmatisation 原则上可以选择适当的引理 视情况而定。

来源https://en.wikipedia.org/wiki/Lemmatisation

【讨论】:

【解决方案3】:

词干只是删除或词干单词的最后几个字符,通常会导致不正确的含义和拼写。 Lemmatization 考虑上下文并将单词转换为其有意义的基本形式,称为引理。有时,同一个词可以有多个不同的引理。我们应该在该特定上下文中识别单词的词性 (POS) 标签。以下是说明所有差异和用例的示例:

  1. 如果您将单词“Caring”进行词形还原,它将返回“Care”。如果你停止,它将返回 'Car',这是错误的。
  2. 如果您在动词上下文中对单词“Stripes”进行词形还原,它将返回“Strip”。如果您在 名词 上下文中对其进行词形还原,它将返回“Stripe”。如果你只是阻止它,它只会返回'Strip'。
  3. 无论您将walking、running、swim...等词词元化或词干化为walk、run、swim等,都会得到相同的结果。
  4. 词形还原的计算成本很高,因为它涉及查找表等等。如果您有大型数据集并且性能存在问题,请使用 Stemming。请记住,您还可以将自己的规则添加到词干。如果准确性至关重要且数据集不是很庞大,请使用词形还原。

【讨论】:

  • 词干“Stemming”和“Swimming”会给出“stemm”和“swimm”或“stem”和“swim”
【解决方案4】:

有两个方面可以显示它们的区别:

  1. stemmer 将返回一个词的词干,它不必与词的形态词根相同。通常,相关词映射到同一个词干就足够了,即使词干本身不是有效的词根,而在lemmatisation中,它会返回一个词的字典形式,它必须是有效的单词。

  2. lemmatisation中,首先要确定一个词的词性,不同词性的归一化规则会有所不同,而stemmer在不了解上下文的情况下对单个单词进行操作,因此无法根据词性区分具有不同含义的单词。

参考http://textminingonline.com/dive-into-nltk-part-iv-stemming-and-lemmatization

【讨论】:

    【解决方案5】:

    词干提取和词形还原的目的都是为了减少形态变异。这与更一般的“术语合并”程序形成对比,后者也可以处理词汇语义、句法或正字法的变化。

    词干提取和词形还原之间的真正区别有三个:

    1. 词干将词形简化为(伪)词干,而词形还原则将词形简化为语言上有效的引理。这种差异在形态更复杂的语言中很明显,但可能与许多 IR 应用无关;

    2. 词形还原仅处理屈折方差,而词干化也可能处理派生方差;

    3. 在实现方面,词形还原通常更复杂(尤其是对于形态复杂的语言)并且通常需要某种词汇。另一方面,令人满意的词干提取可以通过相当简单的基于规则的方法来实现。

    词性化也可以通过词性标注器来支持,以消除同音异义词的歧义。

    【讨论】:

      【解决方案6】:

      正如 MYYN 所指出的,词干提取是删除所有原始单词可能与之相关的基本形式的屈折词缀,有时是派生词缀的过程。词形还原与获取允许您将一堆变形形式组合在一起的单个单词有关。这比词干更难,因为它需要考虑上下文(以及词的含义),而词干忽略上下文。

      至于何时使用其中一个,这取决于您的应用程序在多大程度上依赖于在上下文中正确理解单词的含义。如果您正在进行机器翻译,您可能需要词形还原以避免误译单词。如果您要对超过 10 亿个文档进行信息检索,其中 99% 的查询是 1-3 个单词,那么您可以满足于词干提取。

      对于 NLTK,WordNetLemmatizer 确实使用词性,尽管您必须提供它(否则它默认为名词)。传递“dove”和“v”产生“dive”,而“dove”和“n”产生“dove”。

      【讨论】:

        【解决方案7】:

        关于词形还原和词干提取之间区别的示例驱动解释:

        Lemmatization 处理匹配“car”到“cars” 将“汽车”与“汽车”相匹配。

        Stemming 处理将“car”匹配到“cars”

        词形还原意味着更广泛的模糊词匹配,即 仍然由相同的子系统处理。它意味着某些技术 用于引擎内的低级处理,也可能反映一个 对术语的工程偏好。

        [...] 以 FAST 为例, 他们的词形还原引擎不仅可以处理基本的单词变体,例如 单数与复数,还有词库运算符,例如“hot” 匹配“温暖”。

        当然,这并不是说其他​​引擎不处理同义词 他们这样做,但低级别的实现可能是不同的 子系统比那些处理基本词干的子系统。

        http://www.ideaeng.com/stemming-lemmatization-0601

        【讨论】:

          【解决方案8】:

          词干是删除给定单词的最后几个字符的过程,以获得更短的形式,即使该形式没有任何意义。

          例子,

          "beautiful" -> "beauti"
          "corpora" -> "corpora"
          

          词干可以很快完成。

          另一方面,词形还原是根据单词的字典含义将给定单词转换为其基本形式的过程。

          例子,

          "beautiful" -> "beauty"
          "corpora" -> "corpus"
          

          词形还原比词干化需要更多时间。

          【讨论】:

            【解决方案9】:

            我认为词干提取是一种粗略的技巧,人们用来将同一单词的所有不同形式归结为基本形式,而该基本形式本身不需要是合法词
            像 Porter Stemmer 这样的东西可以使用简单的正则表达式来消除常见的单词后缀

            词形还原将单词归结为实际的基本形式,对于不规则动词,它可能看起来与输入词完全不同
            像 Morpha 这样的东西,它使用 FST 将名词和动词带入它们的基本形式

            【讨论】:

            • 我认为 Porter Stemmer 的实现无需求助于正则表达式,因为许多较旧的语言没有它们,但除此之外,您的想法是正确的。
            【解决方案10】:

            Stemming 和 Lemmatization 都会生成变形词的基础类型,因此唯一的区别是词干可能不是实际的词,而引理是实际的语言词。

            Stemming 遵循一种算法,其中包含对单词执行的步骤,这使得它更快。然而,在词根化中,您还使用了语料库来提供词条,这使得它比词干化更慢。此外,您可能必须定义词性才能获得正确的引理。

            以上几点表明,如果速度集中,则应使用词干提取,因为词形还原器扫描语料库会消耗时间和处理。这取决于您正在处理的问题,它决定是应该使用词干分析器还是词形还原器。 欲了解更多信息,请访问链接: https://towardsdatascience.com/stemming-vs-lemmatization-2daddabcb221

            【讨论】:

              【解决方案11】:

              黄等人。描述词干和词形还原如下。选择取决于问题和计算资源的可用性。

              词干通过删除或替换单词后缀来识别单词的常见词根形式(例如,“flooding”被提取为“flood”),而词形还原识别单词的屈折形式并返回其基本形式(例如“better”被词形化为“好”)。

              Huang, X., Li, Z., Wang, C., & Ning, H. (2020)。识别与灾难相关的社交媒体以进行快速响应:一种视觉-文本融合的 CNN 架构。国际数字地球杂志,13(9),1017–1039。 https://doi.org/10.1080/17538947.2019.1633425

              【讨论】:

                【解决方案12】:

                词干 是产生词根/基本词的形态变体的过程。词干提取程序通常称为词干提取算法或词干分析器。 通常在搜索某个关键字的文本时,如果搜索返回该词的变体,这会有所帮助。 例如,搜索“boat”也可能返回“boats”和“boating”。在这里,“boat”是 [boat,boater,boating,boats] 的词干。

                词形还原 超越单词缩减,并考虑一种语言的完整词汇表,以对单词进行形态分析。 “was”的引理是“be”,“mice”的引理是“mouse”。

                我确实参考了这个链接, https://towardsdatascience.com/stemming-vs-lemmatization-2daddabcb221

                【讨论】:

                  猜你喜欢
                  • 2021-09-11
                  • 2014-11-02
                  • 2010-10-20
                  • 2017-06-21
                  • 2018-08-27
                  • 2021-10-19
                  • 1970-01-01
                  • 2021-12-21
                  • 2021-10-09
                  相关资源
                  最近更新 更多