特征工程核心是将语言模糊性转化为模型可稳定理解的数值结构,关键在语义粒度、稀疏性与任务目标的精准控制;需重视清洗、分词归一化、适配任务的向量化、结构化特征补充及稀疏降维。

文本处理中特征工程的核心,不是 堆砌模型,而是把语言的模糊性转化成模型能稳定理解的数值结构。关键不在“多”,而在“准”——准确定义语义粒度、准确控制稀疏性、准确对齐下游任务目标。
分词与归一化:别跳过清洗,先守住底线
中文无天然空格,英文大小写、标点、缩写混杂,不统一就等于喂错数据。分词不能只用 jieba 或 NLTK 默认切分,要结合业务调整:
- 领域专有名词需强制保留(如“bert-base”“iot设备”加进自定义词典)
- 数字、邮箱、URL 统一替换为占位符(NUM、EMaiL、URL),避免噪声干扰向量空间
- 全角转半角、小写化、去多余空白——看似琐碎,但影响 TF-IDF 权重和相似度计算稳定性
向量化:根据数据规模和任务选“轻重”方案
不是所有任务都需要 BERT 嵌入。小样本分类、规则可解释场景,传统方法更稳更快:
- 词袋(BoW)+ TF-IDF:适合短文本分类(如客服工单意图识别),配合 n -gram= 2 能捕获部分搭配(“不能登录”比单字“不能”“登录”更有判别力)
- 预训练词向量平均(如word2Vec、FastText):适合中等长度文本,对 OOV 词用子词(subword)回退,比 BoW 保留更多语义
- 句向量微调(Sentence-BERT、SimCSE):仅当任务强依赖句子级语义(如语义检索、聚类),且有标注数据支撑微调时启用
结构化特征补充:让纯文本“长出上下文锚点”
纯词向量容易忽略文本的“非语言信号”。加入可控结构特征,常带来显著提升:
- 文本长度、平均词长、标点密度(感叹号 / 问号占比)、大写字母比例(反映正式程度)
- 关键词命中数(如 金融 文本中“逾期”“违约”“催收”是否出现)——用正则或 AC 自动机构建高效匹配
- 情感极性得分(用 SnowNLP 或 finBERT 抽提)+ 主题分布(LDA 前 5 主题概率)——作为辅助维度拼接到向量后
稀疏控制与降维:高维≠高性能,留够泛化余地
TF-IDF 动辄上万维,直接输入模型易过拟合,尤其训练样本少于 1000 条时:
- 先用 max_features=5000 截断低频词(DF0.95 的全去掉)
- 再对稀疏矩阵做 TruncatedSVD(非 PCA),保留 200–500 维,保持语义方向性
- 若后续接树模型(XGBoost/LightGBM),可改用 feature hashing(HashingVectorizer)+ 单独训练类别 编码 器,内存友好且抗新词冲击
基本上就这些。特征工程不是一步到位的工序,而是和模型验证反复对齐的过程——每次加一个特征,必须看它在验证集上的 ΔF1 或 AUC 是否真实有效。不复杂但容易忽略。