文本预处理一般包括哪些常见步骤?
📅 2026/7/23 3:39:21
👁️ 阅读次数
📝 编程学习
文本预处理是自然语言处理(NLP)的基础环节,目标是将原始文本转化为适合模型或算法处理的规范化形式。常见步骤如下:
1. 文本清洗
去除对分析无意义的噪声内容:
- 去除 HTML 标签:网页抓取的文本常含
<p>、<div>等标签 - 去除特殊字符:如
@、#、&等符号 - 去除表情符号:视任务而定,情感分析可能需要保留
- 去除多余空白:多个空格、换行符、制表符合并为单个空格
- 大小写统一:英文文本通常全部转为小写,减少词表规模
2. 分词
将连续文本切分为有意义的语言单元:
- 英文:按空格和标点切分,如
"I love NLP"→["I", "love", "NLP"] - 中文:需要专门的分词工具(如 jieba、HanLP、THULAC),如
"自然语言处理"→["自然", "语言", "处理"] - 子词分词:BPE、WordPiece、SentencePiece 等方法,平衡词表大小和未登录词问题
3. 去除停用词
过滤掉频率高但信息量低的词:
- 英文:
the、is、at、which、on - 中文:
的、了、在、是、我
注意:并非所有任务都需要去停用词。情感分析中"不"、"没有"等否定词可能携带关键信息。
4. 词形归一化
将不同形态的词还原为统一形式,主要针对英语等屈折语:
| 方法 | 说明 | 示例 |
|---|---|---|
| 词干提取 | 截取词缀,规则粗暴 | running→run,better→bet |
| 词形还原 | 基于词典,还原为词元 | better→good,running→run |
词形还原比词干提取更准确,但需要词性标注辅助,计算成本更高。
5. 词性标注
为每个词标注语法类别(名词、动词、形容词等):
- 辅助词形还原选择正确词元
- 帮助消歧(如
book作名词"书" vs 动词"预订") - 为句法分析和信息提取提供基础
6. 去除低频词 / 高频词
- 低频词:仅出现 1-2 次的词,通常是拼写错误或专有名词,增加词表噪声
- 高频词:在几乎所有文档中都出现的词,区分度低(类似停用词的扩展)
- 常用工具:TF-IDF 权重过滤
7. 文本向量化
将文本转化为数值向量,供模型使用:
- 词袋模型:统计词频,忽略语序
- TF-IDF:词频-逆文档频率,降低常见词权重
- 词嵌入:Word2Vec、GloVe、FastText,捕捉语义关系
- 上下文嵌入:BERT、ELMo,根据上下文动态生成向量
8. 其他可选步骤
- 拼写纠错:修正拼写错误(如
recieve→receive) - 缩写展开:
don't→do not,can't→cannot - 数字处理:统一为占位符
<NUM>或转为文字 - 命名实体识别:识别人名、地名、机构名等
- 句法分析:依存句法树、成分句法树
步骤选择原则
原始文本 │ ├─ 文本清洗 ──→ 去标签/特殊字符/空白 ├─ 分词 ──────→ 切分为词单元 ├─ 去停用词 ──→ 过滤无信息量词 ├─ 词形归一化 → 词干提取/词形还原 ├─ 词性标注 ──→ 标注语法类别 ├─ 去低频/高频 → 精简词表 └─ 向量化 ────→ 转为数值表示并非所有步骤都是必需的,需根据具体任务和语种灵活组合。例如:
- 文本分类:清洗 → 分词 → 去停用词 → TF-IDF
- 机器翻译:分词 → 子词切分(BPE),通常不去停用词、不做词形还原
- 情感分析:清洗 → 分词 → 保留否定词 → 词嵌入
编程学习
技术分享
实战经验