结合文本和数值列用于机器学习算法

我正在处理一个情感分类问题,需要预测推文的情感是积极的、消极的还是中性的。以下是我的数据集的一瞥:

tweet_id   airline_sentiment_confidence   negativereason   negativereason_confidence   airline   name   retweet_count   text   tweet_created   tweet location   user_timezone   airline_sentimentTr_tweet_1   1.000                          NaN             NaN                        Virgin America    0             tweets   date               Location        Time             PositiveTr_tweet_2   0.3846                         NaN             0.7033                     Virgin America    0             tweets   date               Location        Time             NegativeTr_tweet_3   0.6837                         Bad flight      0.3342                     Virgin America    0             tweets   date               Location        Time             NegativeTr_tweet_4   1.000                          Can't tell      1.000                      Virgin America    0             tweets   date               Location        Time             Neutral   Tr_tweet_5   1.000                          NaN             NaN                        Virgin America    0             tweets   date               Location        Time             Neutral   

然而,我将text列输入到TfIdf_Vectorizer中,并使用logreg来预测情感。然而,我的准确率非常低,约为68%,这显然是一个纯粹的自然语言处理问题。然而,如果我能以某种方式使用其他特征,我的准确率肯定会提高。

我想知道如何将其他数值和文本列(如negativereason)与我的text列结合起来作为特征,以提高准确率。

或者,这里是否有任何堆叠方法可以使用?例如,结合Tfidf的预测,然后再次使用其余的数值列进行预测?

TL;DR 如何处理数值和文本列作为特征以进行良好的预测?


回答:

正如你提到的,一种方法是堆叠。你可以将每条推文表示为一个特征向量,其中向量的每个位置代表一个词/术语,其值是该词的tf-idf值。然后,你可以将每条推文的tf-idf向量与你拥有的其他数值列连接起来,并将这些向量堆叠在一起形成一个矩阵(一旦你有了矩阵,你就可以开始尝试不同的机器学习模型了!)

有几点需要注意,一旦你为每条推文获得了tf-idf向量,可能需要运行降维算法如PCA,因为你将处理一个大而稀疏的向量。此外,根据你的数据,可能需要对每个连接的向量进行归一化处理(例如,使所有值在0到1之间)。最后,通常单个推文在文本信息上不够丰富。你可能需要考虑将相似的推文聚合在一起以获得更好的结果。

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

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