使用 fastText 进行文本分类的文本预处理

Text preprocessing for text classification using fastText

使用 fastText 进行监督文本分类时,哪种文本预处理会产生最佳结果?

官方文档显示只有一个 simple prepocessing 由小写字母和分隔标点符号组成。词形还原、停用词删除、屏蔽数字等经典预处理会有帮助吗?

没有统一的答案。这在很大程度上取决于您要解决的任务、您拥有的数据量以及文本使用的语言。通常,如果您有足够的数据,您所需要的就是您所描述的简单标记化。

Lemmatization:FastText 从字符 n-grams 的嵌入计算词嵌入,它应该涵盖大多数(至少欧洲)语言,因为你没有非常小的数据。在这种情况下,词形还原可能会有所帮助。

删除停用词:这取决于任务。如果任务是基于 grammar/syntax,你绝对不应该删除停用词,因为它们构成了语法。如果任务更多地依赖于词汇语义,删除停用词应该会有所帮助。如果您的训练数据足够大,模型应该学习不会影响分类的无信息停用词嵌入。

屏蔽数字: 如果您确定您的任务不会因知道这些数字而受益,则可以屏蔽它们。通常,问题是数字在训练数据中不经常出现,所以你没有为它们学习合适的 weights/embeddings。在 FastText 中不是那么多,它将从它们的子字符串的嵌入中组成它们的嵌入。这将使它们最终可能无法提供信息,不会影响分类。