如何将 TFIDF 功能与其他功能相结合

How to combine TFIDF features with other features

我有一个经典的 NLP 问题,我必须将新闻分类为假新闻或真实新闻。

我创建了两组特征:

A​​) Bigram Term Frequency-Inverse Document Frequency

B) 使用 pattern.en (https://www.clips.uantwerpen.be/pages/pattern-en) 作为文本的主观性、极性、#stopwords、#verbs、#subject、关系语法等获得的与每个文档相关的大约 20 个特征。 .

将 TFIDF 特征与其他特征结合起来进行单个预测的最佳方式是什么? 非常感谢大家。

不确定您是从技术上询问如何在代码中组合两个对象,还是理论上应该做什么,所以我会尝试同时回答这两个问题。

从技术上讲,您的 TFIDF 只是一个矩阵,其中行是记录,列是特征。因此,您可以将新功能作为列添加到矩阵的末尾进行组合。如果您使用 sklearn 执行此操作,则您的矩阵可能是一个稀疏矩阵(来自 Scipy),因此您必须确保您的新特征也是一个稀疏矩阵(或使另一个密集矩阵)。

这给了你你的训练数据,就如何处理它而言,它有点棘手。您从二元组频率矩阵中获得的特征将是稀疏的(我在这里不是在谈论数据结构,我只是说您将有很多 0),并且它将是二进制的。而您的其他数据是密集且连续的。这将 运行 在大多数机器学习算法中保持原样,尽管预测可能由密集变量主导。然而,通过一些特征工程,我在过去使用树集成构建了几个分类器,这些分类器结合了术语频率变量和其他一些更密集的变量,并给出了提升的结果(例如,查看推特配置文件并分类的分类器他们作为公司或个人)。通常,当我至少可以将密集变量分类为二进制(或分类然后热编码为二进制)时,我会找到更好的结果,这样它们就不会占主导地位。