Java 评级文章-情绪分析
我正在开发一个Java程序(分类器),它读取给定的文本文件并输出相关的情绪(积极的、消极的或中性的) 该程序计算三类(正、负或中性)的三种概率。考虑到这三种可能性,我想给这篇文章打分(最多10分) 示例- 如果假设Java 评级文章-情绪分析,java,algorithm,math,probability,sentiment-analysis,Java,Algorithm,Math,Probability,Sentiment Analysis,我正在开发一个Java程序(分类器),它读取给定的文本文件并输出相关的情绪(积极的、消极的或中性的) 该程序计算三类(正、负或中性)的三种概率。考虑到这三种可能性,我想给这篇文章打分(最多10分) 示例- 如果假设 P(Positive) = 0.0006 P(Negative) = 0.0001 P(Neutral) = 0.0002 然后很明显,这篇文章是高度积极的,因此评级应该是高ie 8或以上 PS-概率加起来不等于1,并且是非常小的数字(在~10^-(100)范围内) 有人能指出什
P(Positive) = 0.0006
P(Negative) = 0.0001
P(Neutral) = 0.0002
然后很明显,这篇文章是高度积极的,因此评级应该是高ie 8或以上
PS-概率加起来不等于1,并且是非常小的数字(在~10^-(100)范围内)
有人能指出什么算法可以帮我给文章打分吗
谢谢
编辑 我不能简单地计算比率。比如说
P(Positive) = 1.2*E(-117)
P(Negative) = 4.7*E(-112)
P(Neutral) = 9.3*E(-110)
上面显示的概率变化很大。因此,采用比率将毫无意义。大约6个月前,我在亚马逊的评论中也做了类似的事情(估计准确度的基本事实是星级评级) 您可以为此任务使用,即每个“单词”都是一个功能。这会导致高维度的问题,这可能会影响学习时间 从原始数据中提取特征后,可以使用一个具有高维问题的特征。我测试了(线性和高斯核)和。我发现SVM的得分要高得多——当我在Amazon上测试时,这两个内核之间没有统计学意义 对于我的学习算法,我使用了带有3个可能值(类)的标称分类器——pro/neutral/Anticle 我还发现使用(降维)对朴素贝叶斯非常有帮助,但对支持向量机没有太大帮助
一些更重要的注释:
我的结果是:使用支持向量机,正面评论的准确率为85%,负面评论的准确率为80%。真正的问题是中立型,我们得到了70%,赞成和反对的错误也主要是因为分类器将其分类为“中立型”,几乎没有一个(少于5%)被分类为赞成/反对,而它们正好相反。如果你使用朴素贝叶斯,在某个点上你会计算概率(或对数似然性)一个给定的例子在某个类中,在你的例子中是否定的、肯定的或中立的。也许你可以把概率乘以10得到你的评分 我认为这与编程无关。最好访问stats.stackexchange.com@leonbloy。我是StackOverflow的新手,将在stats.stackexchange.com上发布这个问题。如果{正,负,中性}是样本空间,那么严格地说,这里你没有处理概率度量,因为它们的P(x)和不等于1;这在这里似乎不相关,可能也不相关(因此,如果不相关,显然可以忽略这一点),但取决于你对P值的处理,如果你假设P是一个概率度量,你可能会遇到麻烦。@G.Bach你是对的,这些是每一类的可能性。我粗略地把它们称为概率。如果你翻阅一些与情绪分析相关的研究论文,你会发现这些概率加起来永远不会等于1。这意味着可能会有另一个类别,即“未分类”的文档不属于其他类别。因为我们只想估计文档可能属于哪一类,所以我们可以忽略另一类,从这三类中选择最合适的。PS-我正在使用机器学习来训练分类器。无论如何,谢谢!谢谢你,阿米特!出于某些原因,我正在与NaiveBayes合作。我们的项目似乎相似。但我必须做的另一件事是生成评级,而不是测试给定的评级(如您的案例)。使用bag of words模型可以简化文档的表示,但如何使用它生成10分的分数?你知道有哪种算法能在给定3类概率的情况下帮助生成评级/分数吗?@AnkitRustagi我用过。在监督学习中,您需要有一个初始的训练数据,并使用它生成分类器(这称为学习过程)。通常,在这个模型中学习需要几千个样本(经验法则)。有时可以做的一件事是将这项任务外包,将其分成10块(例如),让人们为你对火车数据的看法进行分类(当然要收费)。谢谢@justin!实际上,我得到的概率是非常小的数字。这可能是因为我用大约100篇文章训练了分类器。我发现每个类大约有30000个单词(不是唯一的)。因此,由于没有大量独特的单词,我得到的可能性通常在~10^(-100)的范围内。所以简单地乘以10在这里是行不通的!