结合 ML 算法的文本和数字列

Combining Text and Numerical Columns for ML Algorithm

这里我正在处理一个情绪分类问题,我必须在其中预测推文是正面的、负面的还是中立的。这是我的数据集的一瞥:

tweet_id   airline_sentiment_confidence   negativereason   negativereason_confidence   airline   name   retweet_count   text   tweet_created   tweet location   user_timezone   airline_sentiment
Tr_tweet_1   1.000                          NaN             NaN                        Virgin America    0             tweets   date               Location        Time             Positive
Tr_tweet_2   0.3846                         NaN             0.7033                     Virgin America    0             tweets   date               Location        Time             Negative
Tr_tweet_3   0.6837                         Bad flight      0.3342                     Virgin America    0             tweets   date               Location        Time             Negative
Tr_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% 的准确性非常低,结果证明这是一个纯粹的 NLP 问题。然而,如果我能以某种方式使用它们,其他功能肯定会提高我的准确性。

我想知道如何将 negativereason 等其他数字列和文本列作为特征与我的 text 列相结合,以提高准确性。

或者这里有什么堆叠的方法吗?就像结合 Tfidf 的预测,然后再次用其余数字列进行预测?

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

如您所述,解决此问题的一种方法是堆叠。您可以将每条推文表示为特征向量,其中向量中的每个位置代表一个 word/term,其值是该词的 tf-idf 值。然后,您可以将每条推文的 tf-idf 向量与您拥有的剩余数字列连接起来,并将这些向量中的每一个堆叠在一起以获得矩阵(一旦有了矩阵,您就可以开始尝试不同的机器学习模型!)

一些注意事项,一旦每条推文都有一个 tf-idf 向量,运行 降维算法(如 PCA)可能有意义,因为你将处理一个大而稀疏的向量.此外,根据您的数据,规范化每个连接的向量可能是有意义的(例如,使所有内容都具有 0-1 的值)。最后,通常个别推文的文本信息不够丰富。您可能需要考虑将相似的推文聚合在一起以获得更好的结果。