【问题标题】:Detecting users emotions by analyzing the text [closed]通过分析文本来检测用户情绪[关闭]
【发布时间】:2015-03-15 05:14:21
【问题描述】:

我正在做一个通过文本检测用户情绪的项目?我是这个领域的新手,我仍在寻找从文本中检测情绪的最佳算法。建议我有一个好的方法来做到这一点?

【问题讨论】:

  • 你也可以在这里提交这个问题:programmers.stackexchange.com
  • @ThomasMcLeod 我认为这个问题在Software Engineering 上不会受到当前形式的欢迎。它显示没有事先研究,并要求“最好的”,这可能是主观的。

标签: data-mining text-mining


【解决方案1】:

你可以用简单的方式:

  1. 建立一个列表,让我们说出 300 条带有各自情感的引语。

我已经玩完了这种游戏 => 无聊
大小并不代表一切 => 防御
我会给你带来所有的痛苦 => 愤怒
财富不偏爱傻瓜 => 建议

  1. 现在制作一个过滤器,只从每个短语中选择重要的单词,删除不会影响含义的单词

  2. 创建一个从 0 到 100 的范围,让我们创建例如 5 种适合 0-20 21-40 41-60 61-80 81-100 的情绪。每种情绪都会在一个范围内填充。例如,一个好的范围是: coolness -> happiness -> normal -> bored -> sad

  3. 现在,对于第 2 步中的每个重要单词,您必须在 0-100 范围内指定一个最能描述情绪的数字(例如:非常高兴是 1 小高兴是 20 小悲伤是 81 非常悲伤是100)

  4. 现在您将拥有类似于数字的引号,并且您可以将情绪放入数字数组中

  5. 现在您可以使用神经网络(您将使用您的数组训练 NN,对于新条目,它会尝试“说出”似乎是什么情绪。

    李>

假设您找到了一个用于训练和测试神经网络的工具,如下所示。

每个输入都是你的“情绪数组”的数字,输出是一个二进制数。如果你想代表一个 0-4(从酷到悲伤)的范围,那么你将需要 3 个输出(3 位 = 8 个可能的数字,因为 2 位我们只能代表 4 个数字)

您的神经网络的训练文件如下所示:

i1 i2 i3 i4 输出
21 27 01 07 1
01 07 02 91 5
15 27 31 40 3
16 01 07 55 4

字面意思是:对于代表这些情绪的这组输入,我必须向其他行显示 1(快乐)和相同的想法

这个文件会有很多行训练(我上面说过 300 行),训练的结果将是神经网络的权重被校准到你的“人工智能”

当然,输出取决于您的数据和过滤器的质量。

你还必须研究你的神经网络有多少输入,有多少层等等。

【讨论】:

  • 谢谢你的方法..
  • 感谢您的回答...您可以在这里输入您的电子邮件地址吗..或者您可以发送邮件到nishihettiarachchi@gmail.com
【解决方案2】:

如果必须这样做,我会将其分为两步:

  1. 从字典中制作/创建情绪表达/单词(如快乐、愤怒、坏或悲伤)的列表/数据库。我不确定,但可能已经有一些来自字典的 API 否则你可以自己维护。 例如 : http://www.thesaurus.com/browse/sad http://www.psychpage.com/learning/library/assess/feelings.html

  2. 检查用户的文本是否包含这些悲伤/坏词。

您可以通过捕获文本中任何此类单词的计数来创建用户的文本配置文件。最后,您可以根据这些计数进行预测。

【讨论】:

  • 我想过这样做,但问题是对于任何给定的情感都有很多单词。我正在寻找一种可以将句子分成单独部分并检查它们的特殊单词的方法。类似的东西
  • 我虽然问题是定义一个词,如果它是特殊的(表示一些情绪)。这可能会有成本,但并行运行应该是线程安全的。所以我的一个进程将逐字打破陈述,n个线程将检查这些词是否有一些情感暗示。将语句分成子部分应该很容易。有什么问题吗?
猜你喜欢
  • 1970-01-01
  • 2015-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-14
相关资源
最近更新 更多