我正在编写一个Java程序(分类器),它读取给定的文本文件并输出相关情绪(正负或中性)。
程序计算这三个类别(正、负或中性)的三个概率。考虑到这三个概率,我想给这篇文章一个分数(最多10分)。
示例-如果假设,
P(Positive) = 0.0006
P(Negative) = 0.0001
P(Neutral) = 0.0002那么很明显,这篇文章是非常正面的,因此评分应该是高的,即8或更高。
PS -概率不等于1,而且是非常小的数字(在~10^-(100)的范围内)
有人能指出有什么算法可以帮助我给文章打分吗?
谢谢
编辑我不能简单地取比率。例如
P(Positive) = 1.2*E(-117)
P(Negative) = 4.7*E(-112)
P(Neutral) = 9.3*E(-110)上面显示的概率差别很大。因此,取比率将是毫无意义的。
发布于 2013-03-31 14:19:31
大约6个月前,我在亚马逊的评论上做了一些类似的事情(估算准确性的基本事实是明星评级)。
您可以使用纸袋模型来完成这项任务--即每个单词都是一个特性。这会导致一个很高维度的问题--这可能会影响学习时间。
从原始数据中提取特性之后,您可以使用具有高维问题的下降的分类算法之一。我测试了支持向量机 (线性和高斯核)和朴素-贝斯。我发现支持向量机的得分要好得多--当我在Amazon上测试时,这两个内核之间没有统计学意义。
在我的学习算法中,我使用了三个可能值(类)的标称分类器--pro/中性/反对。
我还发现,使用特征选择 (降低维数)对于朴素-贝叶斯是非常有用的,但对支持向量机则没有多大帮助。
一些更重要的注意事项:
结果表明:支持向量机对正面评价的准确率为85%,对负面评价的准确率为80%。真正的问题是中立性,我们得到了70%,而赞成和反对的错误也主要是因为分类器把它归类为“中性”,几乎没有(少于5%)被归类为赞成/反对,而它们正好相反。
发布于 2013-03-31 15:46:13
如果您使用的是朴素贝叶斯,在某个点上,您将计算出给定示例在某个类中的概率(或日志概率),在您的情况下是负的、正的或中性的。也许你可以把这个概率乘以10才能得到你的评分?
https://stackoverflow.com/questions/15730254
复制相似问题