NLP 中的词干提取是什么?
词干提取有什么好处?
词干提取是一种简单、快速且节省资源的文本数据词汇缩减方法。它使机器学习模型不再需要理解和解析含义大致相同的相似单词。这样,文本数据集的索引规模会更小,机器学习模型的规模也会相应减小。因此,词干提取可以通过减少内存消耗来优化语言处理。对 NLP 任务而言,模型训练和推理会更快,部署时间也会更短。
好处包括:
-
改进单词匹配
-
去除重复单词
-
减少资源消耗
-
降低运营成本
在文本预处理中使用词干提取,有助于快速构建原型,并能提升 NLP 任务的性能。
有哪些常见的词干提取算法?
词干提取的目标是通过去除词缀(前缀和后缀),找出某个词所有变体共有的基础词。例如,词干提取算法会去除“-ing”,把“burning”转换为“burn”;去除“re-”,把“re-run”转换为“run”。
1968 年发布的 Lovins 词干提取器被普遍认为是第一个正式的词干提取算法。它包含一长串后缀,并按照最长匹配优先的原则将这些后缀与英语单词进行匹配,从而把原词截断为词干形式。该词干提取器专为信息检索而设计。
此后,这一领域出现了多项进展和改进。
Porter 词干提取器
Porter 词干提取算法仅通过去除后缀来减少单词的屈折形式。它会识别单词中辅音和元音的组合模式,并参照预定义的后缀列表,系统地缩减单词。例如,根据单词长度或是否出现某些辅音-元音序列等具体条件,去除“-ing”、“-ed”、“-ly”等后缀。
优缺点
Porter 词干提取效率较高,因为它使用的规则集很紧凑。然而,该算法不会保留被词干化单词的原有含义,也无法保证其语法正确性。它可能过度截断单词,也可能把词尾相似但含义不同的词混为一谈。例如,“universe”和“university”具有相同的词干“univers”,但二者的含义却不同。
Snowball 词干提取器
Snowball 词干提取器由 Porter 词干提取器的原班创作者设计,针对此前的多项局限进行了改进,使其更易适配 NLP 应用,也更实用。其主要设计目标之一,是确保词干提取器能更直接地在各种编程语言中实现。为此,它采用 Snowball 代码构建,这是一种领域特定编程语言,可结构化、简洁地表示词干提取规则。任何人都可以在不同场景中修改、扩展和实现这些代码。
优缺点
Snowball 代码让开发者只需很少的工作,就能以多种语言生成等效的词干提取器。该算法已扩展到包含法语、德语、西班牙语、荷兰语等语言的词干提取器,并且可在不同技术之间跨平台实现。
与 Porter 词干提取器相比,Snowball 词干提取器还引入了多项功能改进。
-
它纳入了用于处理各类词形变化中前缀和后缀的规则。
-
决定何时及如何提取词干的条件得到了细化。
这些改进使词干提取过程更加准确、一致。
Lancaster 词干提取器
Lancaster 词干提取器比前文提到的词干提取算法更为精细。它具有更复杂的规则集,会反复去除或替换后缀,直到得到词干。例如,在处理“friendlier”时,该算法会首先去除“lier”并替换为“ly”,得到“friendly”。 随后,它再次处理“friendly”,去除后缀“ly”,最终得到词干“friend”。
优缺点
Lancaster 词干提取器的规则集紧凑简洁,比 Snowball 等语言覆盖面更广的算法更容易存储和实现。尽管它是迭代式的,但依然高效,因为它只使用简单的模式匹配规则,不需要计算开销大的操作。
不过,它往往会过度缩减单词,导致单词变得过短或毫无意义。
Krovetz 词干提取器
与其他词干提取器类似,Krovetz 词干提取器也通过预定义规则来去除单词中的常见后缀。不过,在应用后缀去除规则之前,它会先检查该词是否已收录在内置词典中。如果词典中存在这个词,就不进行词干提取,因为系统会认为它已经是基础形式。如果词典中没有,它才会应用规则去除后缀,并在每次转换后尝试在词典中找到一个有效单词。
优缺点
由于输出的是词典中的有效单词,Krovetz 词干提取器能够避免生成不存在的词或过度截断的词干。然而,对于可能未收录在词典中的领域特定词汇或非正式文本(例如俚语或缩写),它的效果较差。此外,它专为英语设计,不易适配其他语言。
正则表达式词干提取器
正则表达式词干提取器是一种简单且可自定义的词干提取器,它基于一组预定义的正则表达式来去除前缀和后缀。例如,正则表达式可能匹配“un$”、“$ing”和“$s”,算法会遍历规则列表,按表达式中编码的方式去除对应字母。
优缺点
正则表达式词干提取器允许用户为领域特定用例定义自己的模式。例如,正则表达式词干提取器可以处理医学、法律或金融等专业领域的独特词汇。它还让用户能完全控制应用哪些转换,从而最大限度降低因通用规则过于激进或不正确而引发意外更改的风险。
然而,正则表达式词干提取器缺乏语言意识,无法考虑单词的语法或形态结构。它只是匹配模式,并不理解底层语言规则。当语言准确性和对自然语言的全面支持至关重要时,最好选用 Snowball。
词干提取有哪些局限性?
由于采用基于规则的方法,词干提取算法存在若干局限性。
准确性
词干提取是一种将单词标准化的基础技术,因此难免会出现准确性问题。单词放在具体语境中,含义可能有所不同。例如,像“bite the bullet”这样的英语习语,不能分别与“biting”和“bullets”混为一谈;这些词单独出现时的含义,与它们组合在一起时的含义并不相同。
不同语言
不同语言在处理相关词汇如何从基础词扩展而来时,方式各不相同。这些结构上的差异意味着,除 Snowball 外,词干提取算法通常因语言而异。
过度词干化与词干化不足
有时,从派生角度看彼此相关的词形,在含义上却并不真正相关。过度词干化是指两个词被归并到同一个基础词,但这两个原词的含义各不相同。例如,“covering”和“recover”都会被归并为“cover”。
词干化不足是指两个相关词没有被缩减成同一个词干,或没有形成有意义的词。例如,“arguing”被缩减为“argu”,而“argumentative”被缩减为“argumentat”,这就是词干化不足。在数据集中,过度词干化造成的问题要严重得多。
词干提取和词形还原有什么区别?
词形还原是另一种文本预处理技术,用于将单词还原为词根形式。不过,词形还原和词干提取在解决这一问题上采用了不同的思路。词干提取只关注单词的结构和字母构成,而词形还原则采取更全面的视角,即,它会试图找出有意义、语义正确且保留原词语法信息的词干。
有意义的词根
词干提取并不总能得到词典中定义的词根词。例如,“retraceable”可能转换为“trace”,成为一个完整词干;而“computing”可能转换为“comput”,只是一个部分词干。
相比之下,词形还原会将单词还原为词典中的基础形式,称为词元(lemma)。例如,“computing”会还原为“compute”。
上下文保留
词干提取无法保留单词的上下文。例如,“computer”和“computing”都会被转换成“compute”,丢失它们原本的含义。而词形还原会将作为名词的“computer”保留为“computer”,将作为动词的“computing”还原为“compute”。
同样,对复数形式“mice”进行词形还原,会得到单数形式“mouse”;而进行词干提取时,“mice”通常会被缩减为“mic”。
性能
词形还原会利用文档内部的上下文,并可能改变单词的形式,以生成最终的词元。它采用复杂的技术来处理不同的屈折形式,包括对单词进行完整的形态分析;而词干提取只做部分形态分析。不过,词形还原的计算复杂度更高,因此处理速度更慢,内存占用也更大。具体选择用词形还原还是词干提取来标准化词语,取决于您更看重准确性还是速度。
AWS 如何支持您的自然语言处理需求?
AWS 的预训练人工智能服务能轻松集成到您的应用中,帮助您处理常见的 NLP 任务。例如:
-
Amazon Comprehend 可执行信息检索,识别任何文档库中的语言、关键短语、实体、情感倾向和主要话题。
-
Amazon Kendra 能够智能搜索多个企业知识来源,为员工和生成式 AI 模型检索所需信息。
-
Amazon Lex 是一款 AI 对话构建工具,让用户能够通过自然语言语音或文字聊天与任何应用交互。
-
Amazon Textract 可从任何文档中自动提取印刷文本、手写内容、版面元素和数据。
-
Amazon Translate 可分析并翻译海量文本,全面满足您的本地化需求。
立即创建免费账户,开始在 AWS 上使用自然语言处理。
Browse all cloud computing concepts
Browse all cloud computing concepts content here:
Did you find what you were looking for today?
Let us know so we can improve the quality of the content on our pages