按心情调整句子

时间:2011-07-29 08:00:58

标签: algorithm nlp sentiment-analysis document-classification

让我们从一个简单的问题开始吧。假设我有一个350字母的句子,并希望将句子分成“好心情”桶或“坏心情”桶。

设计算法以解决句子的最佳方法是什么?

6 个答案:

答案 0 :(得分:5)

用心情对一堆句子进行手工分类。然后将它们喂入朴素的贝叶斯分类器。使用SpamBayes之类的东西作为起点。

答案 1 :(得分:1)

一个简单/天真的建议是首先将每个句子分成单个单词,或者使用正则表达式并扫描来自“肯定”列表的特定单词(例如“喜欢”,“快乐”,“可以” ,“做”等等和“否定”列表(“不喜欢”,“悲伤”,“不能”,“不要”),制定出在每个句子中更为普遍的,并相应地进行解决。

根据您的要求和数据集,这可能已足够,或者您可能希望调查更高级的技术,例如Bayesian filtering

答案 2 :(得分:1)

根据句子的范围和所需的准确性,这可能是一个非常难的问题。关于情绪分析的学术论文很多;一个好的开始可能是here - 一篇简短而经典的论文。

我建议采取的步骤将逐渐导致更好更好的分类器:

  1. 手动分类一些文档,并使用它们来训练现成的算法。我建议使用SVM(例如使用LibSVM in WEKASVMLight),但如上所述,Naive bayes或决策树也可能有效。

  2. 手工分类更多文档,并从基于单字组的模型转移到更复杂的模型,例如: bigram或基于词性的。这可以通过TagHelper tools轻松完成,它将使用这些技术将您的文本转换为WEKA就绪文件。这将为每个术语的情绪添加一些背景(例如"不""坏" vs."不坏")。

  3. 最后,您可以添加自定义规则和词典,这将为您的算法添加特定于域的知识。它们可能表示为同一分类引擎的附加功能,或者作为额外的分类步骤。

答案 3 :(得分:1)

这称为Sentiment Analysis,维基百科文章对可用技术有很好的描述。一个简单的方法是使用Google Prediction API,并用一组积极,消极和中立的情绪句子训练它。

答案 4 :(得分:0)

您可以使用Weka工具来训练一些在您的情况下效果很好的分类器。我建议尝试J48算法,我认为这是用于训练决策树的C4.5算法的实现。

答案 5 :(得分:0)

尝试从一堆这样的句子中学习机器。使用一些功能,例如表情符号作为情绪的指标。观察质量并添加/修改功能集。