如何实现自己的词表进行情感分析?

数据挖掘 scikit-学习 nlp 情绪分析
2022-03-04 03:18:43

我已经完成了对我感兴趣的文本的网络抓取和清理,并且我还有想要应用到它的情感词列表。但是,我有一些概念和实施问题。

我的情绪词列表是分配给特定特征(例如否定、肯定等)的词的数据框。我目前有一个列表,其中每个元素都是等待分析的文本块。我不知道从这里去哪里。从我目前看到的资源来看,他们将他们的文本放在另一个模块的情感词列表中,该模块会为您处理它并简单地为您提供结果。

我需要澄清以下内容:

  1. 我的情绪词列表包含词,它们在特定特征(例如正面和负面)上为 True(1)/False(0)。因此,在我正在分析的文本中,如果它包含也在我的情感词列表中的词,它们将连同它们的频率一起被添加到文档矩阵中。整体的正面和负面将与正面和负面词的频率成正比。我是否正确理解了这一点?

  2. 我该如何实施呢?我不确定如何在 Count Vectorizer 中使用词汇参数。

from sklearn.feature_extraction.text import CountVectorizer
vc=CountVectorizer(vocabulary=sentiment_words)
vectors=vc.fit_transform(cleaned_text)

功能名称最终成为我用作自变量的功能。

(vc.get_feature_names())
['word',
 'negative',
 'positive',
 'uncertainty',]

特征名称应该是我的情感词列表中包含的实际词,对吧?我假设我需要更改情绪词列表数据框,但我不确定如何继续。另外,这里如何分配整体的正面和负面指标?

我对此很陌生,所以任何形式的澄清都会很棒!谢谢!

1个回答

一种相对简单的方法是计算正面和负面词的出现次数。然后看看哪个计数更大。

创建情感词列表数据框不是最好的方法。数据帧在内存中很大,字符串在内存中很大。最好创建一个哈希表,也就是 Python dict,以减少内存中的数据大小。

分配正面和负面指标的最常见选项是:

  1. 使用现有指标,例如TextBlob 的情绪
  2. 分配您自己的指标分数。