一尘不染

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

algorithm

我假设需要使用自然语言处理器来解析文本本身,但是对于基于用户所写文本来检测用户情绪的算法,您有何建议?我怀疑它会非常准确,但是我仍然很感兴趣。

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


阅读 197

收藏
2020-07-28

共1个答案

一尘不染

这是称为情感分析的自然语言处理领域的基础。尽管您的问题很笼统,但肯定不是愚蠢的-
例如,此类研究是由Amazon对产品评论中的文字进行的。

如果您对此很认真,则可以通过以下方式实现一个简单的版本-

  1. 获得积极/消极情绪的语料库 。如果这是一个专业项目,您可能需要花费一些时间并自己手动注释一个语料库,但是如果您急于或只是想先尝试一下,那么我建议您看看Bo Pang和Lillian Lee的情感极性语料库。研究。使用该语料库的问题在于,它不是针对您的域而定制的(特别是,语料库使用电影评论),但是它仍然适用。

  2. 将数据集分为正或负的句子 。对于情感极性语料库,您可以将每个评论分为其复合句子,然后将总体情感极性标签(正或负)应用于所有这些句子。将该主体分为两部分-90%用于培训,10%用于测试。如果您使用的是Weka,则可以为您处理语料库的拆分。

  3. *在单词级别上将 *机器学习算法 (例如SVM,朴素贝叶斯,最大熵)应用于训练语料库。该模型称为单词袋模型,它只是将句子表示为由其组成的单词。这是许多垃圾邮件过滤器运行的模型。为了很好地介绍机器学习算法,有一个名为Weka的应用程序,该应用程序实现了这些算法的范围,并为您提供了可与它们一起使用的GUI。然后,您可以根据尝试使用该模型对测试语料库进行分类时所犯的错误,来测试机器学习模型的性能。

  4. 将这种机器学习算法应用于您的用户帖子 。对于每个用户帖子,请将帖子分成句子,然后使用您的机器学习模型对它们进行分类。

因此,是的,如果您对此很认真,那么即使没有以前在计算语言学方面的经验,也可以实现。这将是很多工作,但是即使使用基于单词的模型也可以实现良好的结果。

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


小笔记 -

  1. 仅将一段文本分割为句子是NLP的一个领域,称为句子边界检测。有许多工具(OSS或免费工具)可以执行此操作,但是对于您的任务,只需在空格和标点符号上进行简单拆分即可。
  2. SVMlight也是另一个要考虑的机器学习者,实际上,他们的归纳SVM与我们正在寻找的功能相似,它试图用1000个肯定的例子和1000个否定的例子来分类哪些Reuter文章涉及“企业收购”。
  3. 将句子变成特征进行分类可能需要一些工作。在此模型中,每个单词都是一个功能-这需要对句子进行标记化,这意味着单词和标点符号必须彼此分开。另一个技巧是将所有单独的单词标记小写,以使“我恨你”和“我恨你”最终都被认为是相同的。有了更多数据,您可以尝试并且还包括大写是否有助于对某人是否生气进行分类,但我认为至少对于最初的尝试而言,单词应该足够了。

编辑

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

2020-07-28