基于词与标签相关性的情感分析特征选择

时间:2020-09-15 16:04:44

标签: python correlation sentiment-analysis

在对带有标签(1-5类)的194k条审阅文本的数据集进行的情感分析中,我试图减少基于单词与标签的相关性的特征(单词),从而可以训练分类器。

使用带有默认参数设置的sklearn.feature_extraction.text.CountVectorizer,我可以获得86.7万个功能。在执行fit_transform时,我得到了一个CSR稀疏矩阵,尝试使用toarray()将其放入数据框。

不幸的是,大小为(194439,86719)的数组会导致内存错误。我想我需要它在数据框中,以便计算与df.corr()的相关性。在下面找到我的编码:

corpus = data['reviewText']
vectorizer = CountVectorizer(analyzer ='word')
X = vectorizer.fit_transform(corpus)
content = X.toarray()         # here comes the Memory Error
vocab = vectorizer.get_feature_names()
df = pd.DataFrame(data= X.toarray(), columns=vocab)
corr = pd.Series(df.corrwith(df['overall']) > 0.6)
new_vocab = df2[corr[corr == True].index]    # should return features that we want to use

有没有一种方法可以通过相关性进行筛选,而不必将格式更改为数据帧? 多数朝着在df上使用相关性的方向发展的帖子不必处理大量数据。

1 个答案:

答案 0 :(得分:0)

我发现还有其他方法可以基于相关性来实现特征选择。使用SelectKBest和计分功能f_regression。