1. 中文文本清洗的必要性
在自然语言处理(NLP)项目中,原始文本数据往往包含大量无实际意义的词汇,这些词汇不仅会增加计算负担,还可能影响模型对关键信息的捕捉。中文文本尤其如此,像"的"、"了"、"啊"这类高频虚词几乎出现在每个句子中,但对语义理解帮助有限。这就是为什么我们需要进行文本清洗,而停用词表就是最常用的工具之一。
哈工大停用词表是国内公认比较权威的中文停用词集合,收录了1200多个常见停用词。我第一次使用这个词表是在做一个电商评论情感分析项目时,原始准确率只有78%,清洗掉停用词后直接提升到83%。这让我深刻体会到,好的数据预处理往往比复杂的模型调参更有效。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 准备工作与环境搭建
2.1 获取哈工大停用词表
哈工大停用词表可以从其语言技术平台(LTP)官网下载,也可以直接使用我整理好的版本。这个词表采用UTF-8编码,每行一个停用词,格式非常规整。建议新建一个stopwords文件夹专门存放这类资源文件。
python复制# 停用词表示例片段
啊
阿
哎
哎呀
哎哟
唉
俺
俺们
按
按照
2.2 Python环境配置
推荐使用Python 3.6+版本,主要依赖库是jieba(用于中文分词)和tqdm(进度条显示)。如果你用Anaconda,可以直接用以下命令安装:
bash复制pip install jieba tqdm
我习惯在代码开头统一设置编码,避免中文路径问题:
python复制# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
3. 核心代码实现
3.1 加载停用词表
这里有个坑要注意:不同操作系统下的文件路径写法不同。我在Windows和Mac上都测试过,建议使用os.path.join来处理路径:
python复制import os
from tqdm import tqdm
def load_stopwords(stopwords_path):
stopwords = []
with open(stopwords_path, 'r') as f:
for line in f:
