词干是产生词根/基词形态变异的过程。阻止程序通常称为阻止算法或阻止程序。词干算法将单词“ chocolates”,“ chocolatey”,“ choco”减少到词根,“ chocolate”和“ retrieval”,“ retrieved”,“ retrieves”减少到词干“ retrieve”。词干是自然语言处理中流水线处理的重要组成部分。词干分析器的输入是标记词。我们如何获得这些标记化的单词?好吧,标记化涉及将文档分解成不同的词。要详细了解令牌化及其工作原理,请参阅以下文章:
https://www.geeksforgeeks.org/nlp-how-tokenizing-text-sentence-words-works/
Some more example of stemming for root word "like" include:
->"likes"
->"liked"
->"likely"
->"liking"
提取错误:
词干分析主要有两个错误-
- 过度梗
- 抽干不足
当两个词都来自不同词干的同一个词根时,就会发生词干过度现象。过度梗塞也可以被认为是假阳性。
当两个词都来自相同词根而不是不同词干时,就会发生词干不足。词根不足可以解释为假阴性。
词干的应用:
- 词干用于诸如搜索引擎之类的信息检索系统中。
- 它用于确定领域分析中的领域词汇。
有趣的事实:Google搜索在2003年采用了一个词。以前,对“鱼”的搜索不会返回“钓鱼”或“鱼”。
一些词干算法是:
- 波特的Stemmer算法
它是1980年提出的最流行的词干提取方法之一。它基于这样的思想,英语中的后缀是由较小和较简单的后缀组成的。该词干提取器因其速度和简单性而闻名。 Porter Stemmer的主要应用包括数据挖掘和信息检索。但是,其应用仅限于英语单词。同样,词干组映射到相同的词干,并且输出词干不一定是有意义的词。该算法本质上相当冗长,并且被认为是最古老的词干分析器。
例如: EED-> EE的意思是“如果单词中至少有一个元音和辅音加EED的结尾,则将结尾改为EE”,因为“同意”变为“同意”。
Advantage: It produces the best output as compared to other stemmers and it has less error rate.
Limitation: Morphological variants produced are not always real words.
- 洛文斯·斯特默(Lovins Stemmer)
Lovins在1968年提出的建议是从单词中删除最长的后缀,然后对该单词进行重新编码以将该词干转换为有效单词。
示例:坐->坐->坐
Advantage: It is fast and handles irregular plurals like 'teeth' and 'tooth' etc.
Limitation: It is time consuming and frequently fails to form words from stem.
- 道森·斯坦默(Dawson Stemmer)
它是Lovins词干分析器的扩展,其中后缀以其长度和最后一个字母索引的相反顺序存储。
Advantage: It is fast in execution and covers more suffices.
Limitation: It is very complex to implement.
- 克罗维兹·斯特默(Krovetz Stemmer)
它是由Robert Krovetz在1993年提出的。步骤如下:
1)将单词的复数形式转换为单数形式。
2)将单词的过去时转换为现在时,并删除后缀“ ing”。
例如: ‘children’->’child’
Advantage: It is light in nature and can be used as pre-stemmer for other stemmers.
Limitation: It is inefficient in case of large documents.
- 施乐Stemmer
例子:- ‘孩子’->’孩子’
- ‘了解’->’了解’
- ‘whom’->’who’
- ‘最好’->’好’
- N-格拉姆·斯特默
n-gram是从单词中提取的n个连续字符的集合,其中相似的单词将具有较高比例的n-gram。
示例: n = 2的“ INTRODUCTIONS”变为:* I,IN,NT,TR,RO,OD,DU,UC,CT,TI,IO,ON,NS,S *
Advantage: It is based on string comparisons and it is language dependent.
Limitation: It requires space to create and index the n-grams and it is not time efficient.
- 雪球梗:
与Porter Stemmer相比,Snowball Stemmer也可以映射非英语单词。由于它支持其他语言,因此可以将“雪球词干”称为多语言词干。 Snowball提取器也从nltk包中导入。该词干器基于一种称为“ Snowball”的编程语言,该语言可处理小字符串,并且是使用最广泛的词干器。 Snowball提取器比Porter Stemmer更具攻击性,也被称为Porter2 Stemmer。与Porter Stemmer相比,由于添加了改进,Snowball提取器的计算速度更快。
- 兰开斯特·斯特默(Lancaster Stemmer):
与其他两个茎杆相比,Lancaster茎杆更具攻击性和活力。词干提取器确实更快,但是处理小单词时该算法确实令人困惑。但是它们不如Snowball Stemmers高效。 Lancaster词干提取器在外部保存规则,并且基本上使用迭代算法。
参考:茎算法的比较研究