9 文本预处理之词干提取与词形还原
在文本预处理的过程中,词干提取
与词形还原
是两个重要的步骤。这两个技术帮助我们将单词归一化,以提高后续文本分析的效果。接下来,我们将详细探讨这两种技术的原理、实现方法及其应用案例。
词干提取
定义
词干提取
是指将词语还原到其词干形式的过程。词干通常是单词的基本形式,可以认为是词语去掉后缀的结果。例如,单词“running”、“runner”和“ran”都可以归约为它们的词干“run”。词干提取的目的是将不同形式的相同词汇合并为一个统一的表示。
原理
词干提取通常依赖于一些启发式规则,使用下述算法
,如:
- Porter算法:这一经典算法通过一系列的规则来去除词语中的后缀。
- Lancaster算法:更激进的算法,去除词语后缀的规则较多。
实现示例
以下是一个使用Python中的NLTK库进行词干提取的示例:
1 | import nltk |
输出结果
1 | 原始词汇: ['running', 'runner', 'ran', 'easily', 'fairly'] |
从输出可以看到,running
和easily
的词干被提取为相应的基本形式,但runner
和fairly
并没有完全去掉后缀。这也正是词干提取的局限性,它有时可能无法返回完全合理的词语。
词形还原
定义
词形还原
指的是将单词转换为其基本形式(或原型)的过程,通常涉及到语法和词义的分析。在这个过程中,running
会被还原为run
,而better
会被还原为good
。与词干提取不同,词形还原注重语义而非形式。
原理
词形还原通常依赖于丰富的词汇库,以便判断不同形态的单词之间的关系。主要算法包括:
- WordNet词典:广泛应用于词形还原,支持多种语言的词汇。
- SpaCy库:强大的自然语言处理库,具有内置的词形还原功能。
实现示例
以下是一个使用Python中的SpaCy库进行词形还原的示例:
1 | import spacy |
输出结果
1 | 原始词汇: ['running', 'ran', 'better', 'good'] |
从输出结果可以明显看出,词形还原不仅将形式相似的单词还原为相同的基础形式,还可以处理更复杂的词汇变化,例如将better
还原为good
。
小结
在文本预处理阶段,词干提取
和词形还原
都有其独特的重要性。词干提取关注词语的形态变化,而词形还原则更倾向于语义一致性。选择哪个方法取决于具体的任务需求。
随着我们深入了解文本预处理的其他技术,比如词向量
的词袋模型
,我们将能够更好地理解文本数据,并为后续的分析做好准备。
9 文本预处理之词干提取与词形还原