1

我需要一种可靠且准确的方法来将推文过滤为主观或客观。换句话说,我需要使用训练集在 Weka 之类的东西中构建一个过滤器。

是否有任何可用的训练集可用作 Twitter 消息或其他可转移域的主观/客观分类器?

4

3 回答 3

2

出于研究和非营利目的,SentiWordNet 可以为您提供您想要的。商业许可证也可用。

SentiWordNet:http ://sentiwordnet.isti.cnr.it/

示例 Jave 代码:http ://sentiwordnet.isti.cnr.it/code/SWN3.java

相关论文: http: //nmis.isti.cnr.it/sebastiani/Publications/LREC10.pdf


我会尝试的另一种方法:

例子

推文 1:@xyz 你应该看到黑暗骑士。它真棒。

1) 首先是字典查找 for 的含义。

"u" 和 "awesme" 不会返回任何东西。

2)然后反对已知的缩写/速记并用扩展替换匹配(一些资源:netlingo http://www.netlingo.com/acronyms.php或 smsdictionary http://www.smsdictionary.co.uk/abbreviations

现在原始推文将如下所示:

推文 1:@xyz应该看到黑暗骑士。它真棒。

3)然后在拼写检查器中输入剩余的单词并用最佳匹配替换(对于小单词并不总是理想且容易出错)

相关链接: 寻找 Java 拼写检查器库

现在原始推文将如下所示:

推文 1:@xyz 你应该看到黑暗骑士。它真棒

4) 将推文拆分并输入 SWN3,汇总结果

这种方法的问题在于

a) 否定应在 SWN3 之外处理。

b) 表情和夸张的标点信息会丢失或需要单独处理。

于 2011-08-02T15:11:58.760 回答
2

CMU 某处有情绪训练数据。我不记得链接了。CMU 在 Twitter 和情绪分析方面做了很多工作:

我为 twitter 写了一个英语与非英语的朴素贝叶斯分类器,并制作了一个〜示例开发/测试集,它的准确率为 98%。如果您只是想了解问题,我认为这类事情总是很好,但是像 SentiWordNet 这样的软件包可能会给您一个良好的开端。

问题在于定义是什么使推文成为主观或客观的!重要的是要了解机器学习与算法无关,而更多地与数据质量有关。

你提到 75% 的准确率就是你所需要的……那么召回呢?如果您提供正确的训练数据,您也许能够以较低的召回率获得它。

于 2011-08-02T18:46:18.523 回答
1

DynamicLMClassifierLingPipe 中工作得很好。

http://alias-i.com/lingpipe/demos/tutorial/sentiment/read-me.html

于 2011-08-08T17:13:13.623 回答