是否有可能根据文本的结构来猜测用户的心情?

我假设需要使用自然语言处理器来parsing文本本身,但是您有什么build议可以根据他们写的文本来检测用户的情绪? 我怀疑这是非常准确的,但我仍然感兴趣。

编辑:我绝不是语言学或自然语言处理专家,所以我很抱歉,如果这个问题太笼统或愚蠢。

这是自然语言处理领域的基础,称为情感分析 。 虽然你的问题是一般性的,但这当然不是愚蠢的 – 这种研究是由亚马逊在产品评论文本中完成的。

如果你认真对待这个问题,那么简单的版本可以通过 –

  1. 获得积极/消极情绪的语料库 。 如果这是一个专业的项目,你可能需要一些时间,自己手动注释一个语料库,但是如果你急着或者只是想试试这个,那么我build议你看一下Bo Pang和Lillian Lee的情感极性语料库研究。 使用该语料库的问题是它不适合您的域(具体来说,语料库使用电影评论),但它仍然适用。

  2. 将您的数据集分成正面或负面的句子 。 对于情感极性语料库,您可以将每个评论分成复合句子,然后将整体情感极性标记(正面或负面)应用于所有这些句子。 将这个语料库分成两部分 – 90%应该用于训练,10%应该用于testing。 如果你使用Weka,那么它可以处理你的语料库分裂。

  3. 训练语料库中的机器学习algorithm (如支持向量机,朴素贝叶斯,最大熵)应用于单词级别。 这个模型被称为一个单词模型 ,它只是将句子表示为它所组成的单词。 这是许多垃圾邮件filter运行的相同模型。 对于机器学习algorithm的一个很好的介绍,有一个称为Weka的应用程序,实现了一系列这些algorithm,并为您提供了一个GUI。 然后,您可以从尝试使用此模型对您的testing语料库进行分类时所犯的错误中testing机器学习模型的性能。

  4. 将此机器学习algorithm应用于您的用户post 。 对于每个用户post,将post分成几个句子,然后使用您的机器学习模型进行分类。

所以是的,如果你认真对待这个问题的话,那么即使没有计算语言学方面的经验,也是可以实现的。 这将是相当数量的工作,但即使使用基于字的模型,也可以获得好的结果。

如果您需要更多帮助,请随时与我联系 – 我总是乐于帮助其他对NLP感兴趣的人=]


小笔记

  1. 仅仅将一段文本分割成句子就是NLP的一个领域 – 称为句子边界检测 。 有一些工具,OSS或免费的,可以做到这一点,但为了您的任务简单的分割空白和标点应该没问题。
  2. SVMlight也是另外一个机器学习者需要考虑的事实,其实它们的归纳支持向量机(SVM)与我们正在研究的方法有类似的任务 – 尝试将1000个正数和1000个负数例子分类为“公司收购”。
  3. 把句子转换成可以分类的特征可能需要一些工作。 在这个模型中,每个单词都是一个特征 – 这就要求对句子进行标记,这意味着将单词和标点符号彼此分开。 另一个提示是将所有单独的词语标记小写,这样“我恨你”和“我恨你”最终都被认为是相同的。 随着更多的数据,你可以尝试,也包括是否大写有助于分类是否有人生气,但我相信至less应该是一个初步的努力的话。

编辑

我刚刚发现LingPipe实际上有一个关于情感分析的教程,我使用的是我所说的Bo Pang和Lillian Lee Sentiment Polarity语料库。 如果你使用的Java可能是一个很好的工具,即使不是,它也会经历上面讨论的所有步骤。

毫无疑问,可以根据他们input的文本来判断用户的情绪,但这不是一件微不足道的事情。 我能想到的事情:

  • 资本往往意味着激动,烦恼或沮丧,当然是一种情绪反应,但是又有一些新手这样做,因为他们没有意识到这一点,所以你不能假设,没有看他们写了什么(确保它不是全部在帽);
  • 首都实际上只是一种重点。 其他人则使用某些积极的颜色(如红色)或使用粗体或较大的字体;
  • 有些人高度情绪化的时候会犯更多的拼写和语法错误和拼写错误;
  • 扫描表情符号可以给你一个非常清晰的用户感觉的图像,但是再次像是:)可以被解释为快乐,“我告诉过你”,甚至有一个讽刺意义;
  • 咒骂的使用倾向于具有明确的含义,但又不明确。 许多人的口语会定期包含某些四个字母的单词。 对其他一些人来说,他们甚至可能不会说“地狱”,而是说“heck”,所以任何咒骂(甚至是“吮吸”)都是有意义的。
  • 标点符号组(比如@#$ @ $ @)往往会在咒语不一定适当的情况下被replace为咒语,因此不太可能成为口语;
  • 感叹号可能表示惊奇,震惊或恼怒。

你可能想看看书面文本分析的进展,甚至结合多种证据来确定博客的情绪 。

最后,值得注意的是,书面文本通常被认为比实际上更负面。 就像一个例子,这是公司中电子邮件通信的常见问题。

我不敢相信我认真对待这个……假设一个一维的心情空间:

  • 如果文字包含一个诅咒词,-10情绪。
  • 我觉得惊叹会倾向于消极,所以-2情绪。
  • 当我感到沮丧时,我inputVery。 短。 句子。 -5心情。

我越是思考这个问题,就越能清楚地看到,许多这些能指标总体上表明了极端的情绪,但是并不总是清楚什么的情绪。

如果你支持字体,大胆的红色文字可能是愤怒的用户。 绿色正常大小的文本与蝴蝶剪贴画一个快乐的人。

在这个问题上我的记忆力不好,但是我相信我看到了一些关于文本的语法结构和整体语调的研究。 这也可以是简单的单词和情绪expression的单词(以及咒骂很明显)。

编辑 :我注意到,第一个回答的人有大体相似的职位。 对于较短的句子确实有一些认真的想法。

情绪和行为分析是非常严肃的科学。 尽pipe其他答案嘲笑执法机构多年来一直在调查情绪分类的问题。 我所听说的计算机中的用途通常有更多的上下文(时序信息,语音模式,更换频道的速度)。 我认为,通过训练一个来自两个已知群体的样本的neural network,你可以 – 以一定的成功 – 确定用户是否处于特定的情绪中:愤怒而不生气。 祝你好运。

我认为,我的algorithm是相当简单的,但是,为什么不通过文本计算smilics 🙂 vs 🙁

显然,文本“:) 🙂 🙂 :)”parsing为一个快乐的用户,而“:( 🙁 :(”肯定会解决一个悲伤的一个。

我同意ojblass这是一个严肃的问题。

情绪分类是目前语音识别领域的热门话题。 如果你仔细想想,一个交互式语音应答(IVR)应用程序需要处理愤怒的客户,而不是冷静的客户:愤怒的人应该被迅速地路由到具有正确经验和培训的操作人员。 声调是情感的一个相当可靠的指标,足够实用,以使公司渴望得到这个工作。 谷歌“言语情绪识别”,或阅读这篇文章了解更多。

在基于Web的GUI中情况应该没有什么不同。 回到Cletus的评论,文字和语音情感检测之间的类比是有趣的。 如果一个人inputCAPITALS,他们就会被称为“大喊大叫”,就好像他的声音通过语音界面在音量和音高上升一样。 检测types亵渎类似于语言系统中亵渎的“关键词识别”。 如果一个人心烦意乱,他们会使用GUI或语音用户界面(VUI)制造更多的错误,并且可以发送给人。

这里有一个“多模态”情绪检测研究领域。 想象一下,您也可以使用一个Web界面(沿着IBM / Motorola / Opera XHTML + Voice Profile原型实现的方向)。 情绪检测可以基于来自语音和视觉inputforms的提示的组合。

是。

你是否能做到这一点是另一回事。 这个问题似乎起初是AI完成的。

现在,如果你有按键的时间,你应该能够弄清楚。

模糊逻辑会做我猜。 任何方式都可以很容易地从确定用户心情的几条规则开始,然后将“引擎”与更准确和更复杂的规则进行扩展和组合。

如果用户input下面的字符,那么他是超级生气先尝试冷静下来…

`K` `k`