You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NLP预处理困惑:停用词移除与词干提取的顺序疑问

针对Twitter情感分析中停用词与否定词处理的解决方案

1. 停用词移除对负面评论的影响

直接移除停用词肯定会破坏负面语义,比如你举的例子i food was not good,如果把"not"当成停用词删掉,就变成了"food good",完全扭曲了原本的负面情感。所以绝对不能把否定词(not、no等)加入停用词表,必须保留这类词。

2. 缩略否定词的处理方法

像wasn't、don't这类缩略词,核心是先做缩略词展开,把它们转换成完整的否定结构:

  • wasn't → was not
  • don't → do not
  • can't → can not
    你可以自己维护一个常用缩略词映射表,或者用NLP工具的内置模块来自动展开。展开后就能识别出"not"这类否定词,进而在停用词过滤时保留它们。

另外,进阶一点的做法是标记否定语境:在否定词后面的所有词(直到下一个标点或分句)前加上否定前缀,比如"wasn't good"展开后变成"was not good",再处理成"was not_good"。这样模型能明确区分"good"和"not_good"的语义差异,比单纯保留"not"效果更好。

3. 词干提取与停用词过滤的顺序

你之前考虑先做词干提取再移除停用词确实不合理,正确的预处理顺序应该是:

  • 第一步:文本清洗(去除特殊符号、URL等)
  • 第二步:缩略词展开(处理wasn't这类词)
  • 第三步:分词
  • 第四步:停用词过滤(排除否定词)
  • 第五步:词干提取/词形还原
    原因很简单:如果先做词干提取,部分缩略词可能被处理得混乱,而且停用词表都是基于完整词汇的,先过滤停用词能减少后续词干处理的冗余。

额外建议

针对Twitter数据集的特殊性,还可以注意:

  • 处理表情符号:比如😠、😢这类表情本身带有强烈情感,不要当成垃圾字符删掉,可以转换成文本标记(比如:angry:)
  • 处理@提及和话题标签:如果不需要用户信息,可以移除@用户名,但话题标签#BadFood这类可以保留并拆分(比如#BadFood → "bad food")

内容的提问来源于stack exchange,提问作者Suhas Gajanana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 03:16:01