上周我用 jQuery 开发了一个简单的新闻阅读器,解析 JSONP 并将生成的列表插入到网页流中。今天早上有人问我这个问题:“有没有一种智能算法能够‘理解’一个新闻是坏的、好的还是中性的?” 我的回答......“嗯......我不知道。”......这就是我问这个问题的原因:有没有办法实现这样的事情?我唯一能做的就是检查标题是否包含“杀死,炸弹,刺客,洪水,地震,海啸,......”之类的词......还有其他想法吗?您知道是否已经实施了类似的解决方案?谢谢你的帮助!
3 回答
这里是为 twitter 做的,叫做情绪分析。
你需要一个分类算法。有许多不同的选择,例如,请参见此处。Naive Bayes是一个众所周知且易于实施的方法。
在朴素贝叶斯中,您会查看您已经判断为不好的新闻项目中出现的词的频率,以及您已经判断为好的新闻项目中出现的这些词的频率。这些为您提供条件概率 P(word|good) 和 P(word|bad) 的估计,即看到一个单词给定好消息的概率,以及看到一个给定坏消息的单词的概率。
当你看到一个新的新闻时,你会计算出哪些词在新闻中,然后使用贝叶斯定理给你 P(good|words) 和 P(bad|words),本质上是将你的概率相乘。上面计算出您的新闻文章中出现或未出现的字词,以及您预期好消息或坏消息的频率。如果 P(good|words) > P(bad|words) 那么这是个好消息。(如果您有兴趣,我将一些数学放在我不久前写的一个问题中;但是,网络和书籍中有更好的资源。)
朴素贝叶斯是一种众所周知的技术,也用于垃圾邮件过滤。这也很有趣,因为它没有解决什么问题。特别是,它不考虑顺序或上下文或单词。因此,尽管包含作品“飓风”,但“本周没有飓风”可能是个好消息。例如,我猜想在分析新闻文章时,这些考虑可能比推文更重要。无论如何,这是一个有趣的领域,并且已经完成了很多工作。