NLP学习路线图(十一):词干提取与词形还原

article/2025/8/21 22:55:01

引言:文本预处理的必要性

在自然语言处理(NLP)任务中,原始文本数据往往包含大量噪声和冗余信息。例如,单词的时态变化(“running”与“ran”)、复数形式(“cats”与“cat”)或派生词(“happily”与“happy”)会对模型理解语义造成干扰。为了提升模型性能,词干提取(Stemming)词形还原(Lemmatization)成为文本预处理中至关重要的步骤。本文将通过理论解析与代码实践,深入探讨这两种技术的原理、差异及应用场景。

一、词干提取(Stemming):快速但粗糙的归一化方法

1.1 什么是词干提取?

词干提取通过启发式规则将单词简化为词干(Stem),即去除词缀(前缀、后缀)后的基本形式。例如:

  • “running” → “run”

  • “flies” → “fli”

  • “happily” → “happi”

注意:词干不一定是合法的英语单词(如“fli”)。

1.2 常见词干提取算法

Porter Stemmer(1980)
  • 特点:基于简单规则(如删除“-ing”后缀),速度快,适合英文。

  • 示例

    from nltk.stem import PorterStemmer
    stemmer = PorterStemmer()
    print(stemmer.stem("running"))  # 输出 "run"
    Snowball Stemmer(多语言支持)
  • 特点:Porter的改进版,支持多语言(如法语、西班牙语)。

  • 示例

    from nltk.stem import SnowballStemmer
    french_stemmer = SnowballStemmer("french")
    print(french_stemmer.stem("mangerons"))  # 输出 "mang"
    Lancaster Stemmer(激进型)
  • 特点:规则更激进,可能导致过度截断。

  • 示例

    from nltk.stem import LancasterStemmer
    stemmer = LancasterStemmer()
    print(stemmer.stem("maximum"))  # 输出 "maxim"

1.3 词干提取的优缺点

  • 优点:计算速度快,无需依赖外部词典。

  • 缺点:结果可能不符合语言规范(如“flies”→“fli”),无法区分同形词(如“university”与“universe”均可能归并为“univer”)。

二、词形还原(Lemmatization):精准但复杂的词元归并

2.1 什么是词形还原?

词形还原通过词典与形态学分析将单词还原为词元(Lemma),即字典中的标准形式。例如:

  • “better” → “good”

  • “is” → “be”

  • “mice” → “mouse”

2.2 词形还原的关键步骤

  1. 词性标注(POS Tagging):确定单词在上下文中的词性(如动词、名词)。

  2. 词典查询:根据词性匹配词元(如“running”作为动词还原为“run”,作为名词可能保留原形)。

2.3 常用工具:WordNet与spaCy

基于WordNet的还原(NLTK库)
from nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
# 需指定词性(默认为名词)
print(lemmatizer.lemmatize("running", pos='v'))  # 输出 "run"
print(lemmatizer.lemmatize("running", pos='n'))  # 输出 "running"

 spaCy的自动化处理

import spacy
nlp = spacy.load("en_core_web_sm")
doc = nlp("He is running in the park.")
print([token.lemma_ for token in doc])  
# 输出 ['he', 'be', 'run', 'in', 'the', 'park', '.']

2.4 词形还原的优缺点

  • 优点:结果准确,符合语言规范。

  • 缺点:依赖词性标注与词典,计算成本较高。


三、词干提取 vs. 词形还原:如何选择?

维度词干提取词形还原
输出结果词干(可能非法)词元(合法单词)
处理速度慢(需词性标注)
依赖资源词典与词性标注工具
适用场景信息检索、快速预处理文本生成、语义分析

实战建议:

  • 搜索引擎:使用词干提取提升召回率(如搜索“run”可匹配“running”)。

  • 情感分析:优先词形还原以保留准确语义(如“better”还原为“good”)。

  • 多语言场景:Snowball Stemmer支持非英语,而词形还原需要特定语言词典。


四、实际应用案例

案例1:新闻分类任务

# 使用词形还原预处理文本
def preprocess(text):doc = nlp(text)return [token.lemma_.lower() for token in doc if not token.is_stop and token.is_alpha]

案例2:搜索引擎优化

# 结合词干提取构建倒排索引
from nltk.tokenize import word_tokenize
def build_index(docs):index = {}for doc_id, text in docs.items():tokens = word_tokenize(text)stems = [porter.stem(token) for token in tokens]for stem in stems:index.setdefault(stem, set()).add(doc_id)return index

五、未来趋势与总结

随着预训练语言模型(如BERT)的普及,传统文本预处理的重要性有所下降,但在资源受限场景(如嵌入式设备)或特定领域(如医疗文本)中,词干提取与词形还原仍具价值。未来的发展方向可能包括:

  • 混合方法:结合词干提取的速度与词形还原的准确性。

  • 跨语言统一处理:解决低资源语言的形态学分析问题。

总结:词干提取与词形还原是NLP流水线的基石,理解其原理与适用场景将助力开发者构建更高效的文本处理系统。


http://www.hkcw.cn/article/AcDOgNEUXN.shtml

相关文章

多人目击野猪闯进学校小区 意外访客引发关注

5月28日,杭州山水人家小区闯进了一只野猪。据网友称,这只野猪是从小区北门进入的,在小区里乱转了很久。中午时分,几名执勤的小区保安证实了这一情况。他们表示,早上8点多,确实有一头野猪从小区北门旁边的花坛窜出来,随后跑进了小区。物业办公室的工作人员也确认了此事,…

One Year~

入局 作为科班学生,没事就在CSDN闲逛,只作为旁观者的身份去体会别人的好文。当时也没想着说去自己写一些博客记录学习过程。相信大多数同学和我有一样的心理。 但在看鱼皮哥的课程时,发现他有着写文档和博客的习惯,整理自己的思路…

SL3038 宽耐压150V降压12V2.5A、5V2.5A降压恒压电源芯片

在工业自动化、智能交通和消费电子领域,电源管理的稳定性与效率始终是核心挑战。SL3038 作为一款专为高电压场景设计的开关降压型 DC-DC 控制器,凭借其150V 宽输入耐压、双路精准输出及多重安全防护特性,重新定义了电源芯片的性能标杆。 核心…

Docker 本地化部署FireCrawl

1.FireCrawl 本地化部署教程 (1)Step1:已经安装Docker 和 Docker Compose。 (2)Step2:克隆 FireCrawl 项目到本地指定目录下 git clone https://github.com/mendableai/firecrawl.gitcd firecrawlcd ap…

如何将图像插入 PDF:最佳工具比较

无论您是编辑营销材料、写报告还是改写原来的PDF文件,将图像插入 PDF 都至关重要。幸运的是,有多种在线和离线工具可以简化此任务。在本文中,我们将比较一些常用的 PDF 添加图像工具,并根据您的使用场景推荐最佳解决方案&#xff…

APM32微控制器键盘PCB设计实战教程

APM32微控制器键盘PCB设计实战教程(第2期) 一、APM32小系统介绍 使用apm32键盘小系统开源工程操作 APM32是一款与STM32兼容的微控制器,可以直接替代STM32进行使用。本教程基于之前开源的APM32小系统,链接将放在录播评论区中供大…

AI 工具赋能并列图制作:从数据输入到可视化的零门槛流程

在数据驱动决策的时代,将复杂的数据转化为直观、易懂的可视化图表至关重要。并列图作为一种常用的数据可视化形式,能够清晰地对比多组数据,助力人们快速洞察数据差异与趋势。过去,制作并列图往往需要掌握专业软件,如 E…

高精度、高效率:正面吊箱号识别系统如何实现精准识别

在现代港口和物流管理中,集装箱号码的快速准确识别是提升运营效率的核心环节。基于先进的OCRAI技术的正面吊箱号识别系统,能够实现99%以上的识别准确率,平均识别时间仅需20毫秒,为港口自动化管理提供了强有力的技术支撑。那么&…

记者暗访神药骗局黑色产业链 揭露“包治百病”谎言

记者暗访神药骗局黑色产业链揭露“包治百病”谎言!近日,有网友反映一款名为“AKG”的产品被宣传为能治愈各种疾病,包括癌症和尿毒症等重症。该产品还承诺通过发展下线可实现年收入3000万元。有直肠癌晚期患者每天服用“AKG”6至8片。为了调查这一现象,记者前往青岛、南宁等…

嵌入式软件--stm32 DAY 8.5 基础复习总结

1.时钟树 在数据手册里面,有一张密密麻麻的图,正是时钟系统里的时钟树。 对于时钟,我们注意有两点。一个是系统时钟SYSCLK,一个是依赖外部晶振生成的RTC. RTC以外部低速晶振作为时钟源或者外部高速晶振128分频后作为时钟源,又或者…

Astra学习之-如何修改Header-logo和favicon图标

Astra学习之修改Header-logo 上傳網站圖示會使用佈景主題的訂定來設計,所以不同主題的「網站圖示」位置也會不同。 以下我使用「Astra 佈景主題」來做示範: 點選上方「自訂」點選「網站識別」Site identify點選「選取網站圖示」在選取圖片&#xff0c…

成都鼎讯雷达模拟器,重塑电磁对抗新生态

在现代战争中,雷达作为 “电磁之眼”,左右着战场态势的感知与攻防节奏。而如何构建逼真的雷达干扰与目标环境,成为检验雷达性能、锤炼作战能力的关键。成都鼎讯依托前沿技术,重磅推出雷达目标与干扰模拟器,凭借强大的功…

cf2059B

原题链接:https://codeforces.com/contest/2059/problem/B 题目背景: 将一个长度为 n 的数组 a 划分为 k 个数组,再将所有偶数索引的数组合并成 b 数组,定义代价为 的最小索引 i ,可得到的最小代价为多少。 思路&am…

DMBOK对比知识点对比(1)

1.CDGP各章活动 章节一级

4060显卡什么水平 4060显卡参数介绍

NVIDIA的GeForce RTX 40系列显卡基于最新的Ada Lovelace架构,提供了前所未有的图形处理能力和效率。其中,RTX 4060定位中高端市场,针对那些寻求卓越性能同时又注重成本效益的用户群体。那么,4060显卡什么水平呢?本文将…

4. Qt对话框(2)

在上节中已经学习了对话框的确认和取消,本节内容继续接上节完成登录对话框实例并得到登录信息。 本文部分ppt、视频截图原链接:[萌马工作室的个人空间-萌马工作室个人主页-哔哩哔哩视频] 1 实现登录对话框 1.1 功能需要 得到登录信息,需要…

第三节 独立按键模块

目录 一、独立按键介绍 二、C语言知识 1.C51数据运算 2.C51基本语句 三、程序设计 1、独立按键控制LED灯 2、独立按键控制LED状态 3、独立按键控制LED显示二进制 4、独立按键控制LED位移 一、独立按键介绍 轻触按键:相当于是一种电子开关,按…

财管2 - 财务预测(内含增长率,可持续增长率)

1.内含增长率 概念:内含增长率是没有可动用的金融资产,且外部融资为零时的销售增长率。 计算方法:根据外部融资销售增长比的公式,令外部融资额占销售增长百分比为0,求销售增长率即可 a) 融资总需求 预计销售收入的…

Vue-列表渲染

列表渲染 指令: v-for语法:v-for"(item,index) in list" :key"index":key : 强烈建议使用数据中唯一标识,避免数据乱序后渲染差错问题 数组 数据 persons:[{id:001,name:刘德华,age:18},{id:002,name:张学友,age:18}…

Browser-Use实践

构建一个包含 3 轮对话的上下文,调用 API 获取最终回复 and 发送一张图片并获取描述。 自行探索,并使用 Browser-use Web-UI 自带的录制功能,将书生大模型操作浏览器过程录制下来,放到作业中。 安装虚拟环境 conda create -n I…