9 文本预处理之词干提取与词形还原

在文本预处理的过程中,词干提取词形还原是两个重要的步骤。这两个技术帮助我们将单词归一化,以提高后续文本分析的效果。接下来,我们将详细探讨这两种技术的原理、实现方法及其应用案例。

词干提取

定义

词干提取是指将词语还原到其词干形式的过程。词干通常是单词的基本形式,可以认为是词语去掉后缀的结果。例如,单词“running”、“runner”和“ran”都可以归约为它们的词干“run”。词干提取的目的是将不同形式的相同词汇合并为一个统一的表示。

原理

词干提取通常依赖于一些启发式规则,使用下述算法,如:

  • Porter算法:这一经典算法通过一系列的规则来去除词语中的后缀。
  • Lancaster算法:更激进的算法,去除词语后缀的规则较多。

实现示例

以下是一个使用Python中的NLTK库进行词干提取的示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import nltk
from nltk.stem import PorterStemmer

# 初始化词干提取器
stemmer = PorterStemmer()

# 待处理的词汇
words = ["running", "runner", "ran", "easily", "fairly"]

# 进行词干提取
stems = [stemmer.stem(word) for word in words]

print("原始词汇:", words)
print("词干提取结果:", stems)

输出结果

1
2
原始词汇: ['running', 'runner', 'ran', 'easily', 'fairly']
词干提取结果: ['run', 'runner', 'ran', 'easi', 'fairli']

从输出可以看到,runningeasily的词干被提取为相应的基本形式,但runnerfairly并没有完全去掉后缀。这也正是词干提取的局限性,它有时可能无法返回完全合理的词语。

词形还原

定义

词形还原指的是将单词转换为其基本形式(或原型)的过程,通常涉及到语法和词义的分析。在这个过程中,running会被还原为run,而better会被还原为good。与词干提取不同,词形还原注重语义而非形式。

原理

词形还原通常依赖于丰富的词汇库,以便判断不同形态的单词之间的关系。主要算法包括:

  • WordNet词典:广泛应用于词形还原,支持多种语言的词汇。
  • SpaCy库:强大的自然语言处理库,具有内置的词形还原功能。

实现示例

以下是一个使用Python中的SpaCy库进行词形还原的示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
import spacy

# 加载英文模型
nlp = spacy.load("en_core_web_sm")

# 待处理的词汇
words = ["running", "ran", "better", "good"]

# 进行词形还原
lemmas = [token.lemma_ for token in nlp(" ".join(words))]

print("原始词汇:", words)
print("词形还原结果:", lemmas)

输出结果

1
2
原始词汇: ['running', 'ran', 'better', 'good']
词形还原结果: ['run', 'run', 'good', 'good']

从输出结果可以明显看出,词形还原不仅将形式相似的单词还原为相同的基础形式,还可以处理更复杂的词汇变化,例如将better还原为good

小结

在文本预处理阶段,词干提取词形还原都有其独特的重要性。词干提取关注词语的形态变化,而词形还原则更倾向于语义一致性。选择哪个方法取决于具体的任务需求。

随着我们深入了解文本预处理的其他技术,比如词向量词袋模型,我们将能够更好地理解文本数据,并为后续的分析做好准备。

9 文本预处理之词干提取与词形还原

https://zglg.work/nlp-zero/9/

作者

IT教程网(郭震)

发布于

2024-08-10

更新于

2024-08-11

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论