Python 基于词典的情感分析的准确性

Python 基于词典的情感分析的准确性,python,nltk,sentiment-analysis,senti-wordnet,vader,Python,Nltk,Sentiment Analysis,Senti Wordnet,Vader,我正在为我获得的一组Twitter数据执行不同的情绪分析技术。它们是基于词典的(维德情绪和SentiWordNet),因此不需要预先标记的数据 我想知道是否有一种方法(如F-Score、ROC/AUC)来计算分类器的准确性。我知道的大多数方法都需要一个目标来比较结果。简单的答案是否定的,我不这么认为。(因此,如果有人发布方法,我会非常感兴趣。) 使用一些无监督的机器学习技术,您可以获得一些误差度量。例如,自动编码器为您提供MSE(表示低维表示可重构回原始高维形式的准确度) 但对于情绪分析,我所能

我正在为我获得的一组Twitter数据执行不同的情绪分析技术。它们是基于词典的(维德情绪和SentiWordNet),因此不需要预先标记的数据


我想知道是否有一种方法(如F-Score、ROC/AUC)来计算分类器的准确性。我知道的大多数方法都需要一个目标来比较结果。

简单的答案是否定的,我不这么认为。(因此,如果有人发布方法,我会非常感兴趣。)

使用一些无监督的机器学习技术,您可以获得一些误差度量。例如,自动编码器为您提供MSE(表示低维表示可重构回原始高维形式的准确度)

但对于情绪分析,我所能想到的就是使用多种算法,并测量它们在相同数据上的一致性。如果他们都同意某一特定的观点,你就把它标记为更可靠的预测,如果他们都不同意,你就把它标记为不可靠的预测。(这取决于没有一种算法具有相同的偏差,这可能是不可能的。)


通常的方法是标记某些百分比的数据,并假设/希望它能代表整个数据。

我在研究中所做的是从这些推文中随机抽取一个小样本,手动将它们标记为正或负。然后,您可以使用维德或SentiWordNet计算标准化分数,并计算每个分数的混淆矩阵,从而得出您的F分数等


尽管这可能不是一个特别好的测试,因为它取决于您使用的tweet样本。例如,你可能会发现SentiWordNet比维德将更多的事情归类为负面,因此,如果你的随机样本大多为负面,那么它的准确性似乎更高。

你没有告诉我们你正在使用的第三种技术的任何信息:如果它与你的问题无关,“删除对它的提及可能会使问题变得更清晰。”达伦库克第三种技巧是朴素贝叶斯。我已经相应地编辑了这个问题。