文本特征工程有哪些常见做法?
简化版
文本特征工程可从词/字符 n-gram、TF-IDF、长度与词典统计到预训练 embedding;选择取决于数据量、语种、延迟和任务。词表、IDF、分词器必须只在训练集拟合并版本化,防止泄漏与线上分词漂移。
详细版
-
TF-IDF 强调当前文档高频、全语料低频的词。
-
字符 n-gram 对拼写变化和中文短文本常更稳。
-
清洗不能删掉否定词、标点等任务信号。
-
预训练向量需处理截断、OOV 和推理成本。
-
稀疏线性基线通常是文本任务的重要对照。
完整版教学
一、表示方法决定保留哪种文本结构
Bag-of-words 丢顺序但数据效率高,n-gram 补有限局部顺序;embedding 捕获分布语义但可能更贵。
没有一种“高级表示”在所有任务胜出。
垃圾文本分类的字符 TF-IDF 可能比未充分微调的大模型更稳定。
二、底层机制与公式
tfidf(t,d)=tf(t,d)*log((N+1)/(df(t)+1))
feature_dim roughly vocabulary or hash buckets
三、带数字的推演
N=1000,某词出现在 10 篇,平滑 IDF 约 log(1001/11)=4.51;若出现在 900 篇,约 log(1001/901)=0.105,常见词权重显著更低。
四、方案对比
| 方案/对象 | 核心特点 | 代价或边界 |
|---|---|---|
| 词/字符 TF-IDF | 快、可解释 | 稀疏且长程语义弱 |
| Hashing n-gram | 无词表、流式友好 | 碰撞且难反查 |
| 预训练 Embedding | 语义强 | 成本和域偏移 |
五、执行流程
划分数据 -> 训练集 fit 清洗/词表/IDF -> 变换验证
-> 稀疏基线 -> embedding 对照 -> 保存分词器/词表 -> 线上一致性测试
六、边界条件与工程代价
若先在全量语料 fit IDF,验证集词频会影响训练表示;即使不看标签也破坏严格评估。
中文分词词典升级会改变 token 序列,模型版本必须绑定分词器、正规化和最大长度。
记忆钩子:文本工程先定“切分—分词—词表/IDF—表示”的版本链。
七、常见误区与追问
-
误区:停用词都应删除。 否定、语气和领域高频词可能有预测力。
-
追问:字符 n-gram 何时有用? 拼写噪声、中文短文本和词边界不稳时。
-
误区:TF-IDF 不看标签所以可全量 fit。 它仍使用验证分布统计。
-
追问:如何处理 OOV? 使用 UNK、字符模型或固定哈希空间。
-
追问:如何公平比较 embedding? 固定划分与指标,同时报告延迟、内存和截断率。
八、加强记忆
文本工程先定“切分—分词—词表/IDF—表示”的版本链。
TF-IDF 看词稀有度,embedding 看语义;先进不等于适合。