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