让我们从一个简单的问题开始吧。假设我有一个350字母的句子,并希望将句子分成“好心情”桶或“坏心情”桶。
设计算法以解决句子的最佳方法是什么?
答案 0 :(得分:5)
用心情对一堆句子进行手工分类。然后将它们喂入朴素的贝叶斯分类器。使用SpamBayes之类的东西作为起点。
答案 1 :(得分:1)
一个简单/天真的建议是首先将每个句子分成单个单词,或者使用正则表达式并扫描来自“肯定”列表的特定单词(例如“喜欢”,“快乐”,“可以” ,“做”等等和“否定”列表(“不喜欢”,“悲伤”,“不能”,“不要”),制定出在每个句子中更为普遍的,并相应地进行解决。
根据您的要求和数据集,这可能已足够,或者您可能希望调查更高级的技术,例如Bayesian filtering。
答案 2 :(得分:1)
根据句子的范围和所需的准确性,这可能是一个非常难的问题。关于情绪分析的学术论文很多;一个好的开始可能是here - 一篇简短而经典的论文。
我建议采取的步骤将逐渐导致更好更好的分类器:
手动分类一些文档,并使用它们来训练现成的算法。我建议使用SVM(例如使用LibSVM in WEKA或SVMLight),但如上所述,Naive bayes或决策树也可能有效。
手工分类更多文档,并从基于单字组的模型转移到更复杂的模型,例如: bigram或基于词性的。这可以通过TagHelper tools轻松完成,它将使用这些技术将您的文本转换为WEKA就绪文件。这将为每个术语的情绪添加一些背景(例如"不""坏" vs."不坏")。
最后,您可以添加自定义规则和词典,这将为您的算法添加特定于域的知识。它们可能表示为同一分类引擎的附加功能,或者作为额外的分类步骤。
答案 3 :(得分:1)
这称为Sentiment Analysis,维基百科文章对可用技术有很好的描述。一个简单的方法是使用Google Prediction API,并用一组积极,消极和中立的情绪句子训练它。
答案 4 :(得分:0)
答案 5 :(得分:0)
尝试从一堆这样的句子中学习机器。使用一些功能,例如表情符号作为情绪的指标。观察质量并添加/修改功能集。