在这里,我正在处理情绪分类问题,我必须在其中预测这些推文是正面的,负面的还是中立的。这是我的数据集的一瞥:
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 如何处理数字列和文本列作为做出良好预测的功能?
答案 0 :(得分:0)
解决这个问题的一种方法是,如您所提到的那样。您可以将每个tweet表示为特征向量,其中向量中的每个位置代表一个单词/术语,其值就是该单词的tf-idf值。然后,您可以将每个tweet的tf-idf向量与剩余的数字列连接起来,并将每个向量堆叠在一起,以获得一个矩阵(一旦有了矩阵,就可以开始尝试其他方法了)机器学习模型!)
一些注意事项,一旦每个推文都有一个tf-idf向量,运行诸如PCA之类的降维算法可能是有意义的,因为您将处理一个大而稀疏的向量。另外,根据您的数据,可能有必要对每个串联的向量进行规范化(例如,使所有内容的值都从0-1开始)。最后,通常个别推文的文字信息不够丰富。您可能需要考虑将类似的tweet聚集在一起以获得更好的结果。