如何将TFIDF特征与其他特征结合

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

我创建了两组特征:

A) 双-gram项频-逆文档频率

B) 使用pattern.en (https://www.clips.uantwerpen.be/pages/pattern-en) 获得的每个文档相关的大约20个特征,如文本的主观性、极性、停用词数量、动词数量、主语数量、语法关系等…

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


回答:

我不确定你是在技术上询问如何在代码中组合两个对象,还是在理论上询问接下来该怎么做,所以我将尝试回答这两个问题。

从技术上讲,你的TFIDF只是一个矩阵,其中行是记录,列是特征。因此,要进行组合,你可以将新特征作为列附加到矩阵的末尾。可能你的矩阵是一个稀疏矩阵(来自Scipy),如果你使用sklearn来做的话,所以你必须确保你的新特征也是一个稀疏矩阵(或者使其他变为密集矩阵)。

这就给你提供了训练数据,至于接下来该怎么做就有点棘手了。你的双-gram频率矩阵的特征将是稀疏的(我这里不是在谈论数据结构,我只是说你会有很多0),而且它将是二进制的。而你的其他数据是密集且连续的。这在大多数机器学习算法中都可以运行,尽管预测可能会主要由密集变量主导。然而,通过一些特征工程,我过去使用树集成构建了几个分类器,这些分类器使用了结合了一些更密集变量的词频变量,并提供了增强的效果(例如,一个分类器查看Twitter个人资料并将其分类为公司或个人)。通常,当我至少能将密集变量分箱为二进制(或分类然后热编码为二进制)时,我发现效果更好,这样它们就不会占主导地位。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注