对文本挖掘和准备token的态度,不相关的词,准确率低

数据挖掘 分类 文本挖掘 朴素贝叶斯分类器 分类器
2022-02-26 20:40:45

出于相当大的项目的目的,我正在对一些文档进行文本挖掘。我的步骤很常见:

  1. 全部小写
  2. 代币化
  3. 停用词表和停用词
  4. 词形还原
  5. 词干
  6. 其他一些步骤,例如删除符号。

然后我准备词袋,制作 DTF 并使用 SVM 和朴素贝叶斯分类为 3 个类。

但是我得到的准确率并不算太高(50-60%)。我认为这可能是因为在所有步骤之后的单词数组中仍然有很多非常不相关的单词,例如文档中的名字和姓氏。在这种情况下是什么态度?在预处理期间可以做些什么来使分类器以更高的精度更好地工作?

我正在考虑准备一些词典,其中包含与我所在地区相关的所有单词,但这可能太难了,肯定会遗漏一些重要的单词。

有什么建议可以在这里做吗?

1个回答

这个问题非常广泛,所以一般的答案是:这取决于您的数据的具体情况以及您要解决的问题。一般的想法是分析正在发生的事情:

  • 鉴于数据中的指示,是否真的可以解决问题?仅考虑数据中的信息,人类专家的准确率会超过 50-60% 吗?如果是,他们将使用哪些线索,这些潜在线索是否可以直接用作学习算法的特征?
  • 数据大小与特征大小之间的比率:如果没有足够的实例,算法就没有足够的泛化能力。如果特征太多,算法可能会过拟合(即,将数据中偶然发生的事情视为重要模式)。当然,如果没有足够的特征,算法就没有做出准确预测所需的指示。

常见的尝试:

  • 删除很少出现的特征(这里是单词),因为它们无济于事并且可能导致过度拟合。
  • 如果问题似乎是单词信息不够丰富,尝试使用二元组甚至三元组……但要小心避免过度拟合,特征的数量可能会增加很多。
  • 使用权重(例如 TFIDF)帮助学习算法专注于相关特征。
  • 根据任务,更复杂的方法可能是相关的:主题建模、消歧技术、语法......