文本特征工程详解:TF-IDF算法、相似度计算与词袋模型演进及PyTorch实现
目录
什么是文本特征工程?
机器看不懂“自然语言处理”这种字符组合,只能处理数值数据——文本特征工程就是把原始文本转成有语义线索的数值向量。
它的核心作用:
- 数值化文本
- 提取有用特征(比如关键词)
- 合理降维(避免稀疏爆炸)
- 尽量保留文本语义
词袋模型(Bag of Words)
词袋是文本向量化的“初代机”:完全忽略词序、语法,只统计每个词在文档里的出现次数,就像把所有词倒进一个袋子里数个数。
极简代码实现
用 sklearn 和中文分词库 jieba 做演示:
优缺点总结
TF-IDF算法详解
TF-IDF是词袋的升级版,给每个词加权重,让在当前文档频繁出现,但在整个语料罕见的词脱颖而出(比如“机器学习”在技术文档里重要,但“的”在所有文档里都没用)。
核心权重逻辑
- 词频(TF):某个词在当前文档里的“存在感”
- 逆文档频率(IDF):某个词在整个语料里的“稀缺度”——越稀缺越重要
- 最终权重:两者相乘
实用Sklearn实现
sklearn 的 TfidfVectorizer 封装了所有细节,还支持ngram、归一化等高级功能:
相似度度量方法
得到文本向量后,最常用的操作就是计算文本相似度——比如文档检索、问答匹配。
1. 余弦相似度(最常用)
余弦相似度看两个向量的夹角大小:夹角越小(越接近0),相似度越高(越接近1)。它不受向量长度影响,最适合TF-IDF这种归一化后的向量。
2. 其他方法对比
极简PyTorch TF-IDF实现
原标题提到PyTorch,这里补一个极简可运行的版本,适合自定义底层逻辑或结合深度学习模型:
实际应用与案例
文档相似度搜索
一个最实用的场景:输入查询,返回最相似的文档。
局限性与现代替代方案
TF-IDF的局限性
- 完全忽略词序
- 无法捕捉语义(“汽车”“车辆”无关)
- 高维稀疏(词汇表大时效率低)
现代替代方案
总结
TF-IDF是NLP文本特征工程的入门必学+实用工具:
- 核心逻辑简单清晰
- 计算效率极高,适合大规模语料
- 仍广泛用于文档检索、关键词提取等场景
- 建议先掌握TF-IDF,再学习现代预训练模型

