通过分析文本检测用户情绪

Detecting users emotions by analyzing the text

我正在做一个通过文本检测用户情绪的项目?我是这个领域的新手,我仍在寻找检测情绪的最佳算法 text.suggest 我是一个很好的方法吗?

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

  1. Make/Create 来自字典的 list/DB 情绪 expressions/words(如快乐、愤怒、糟糕或悲伤)。我不确定,但可能已经有一些来自字典的 API 否则你可以自己维护。 例如 : http://www.thesaurus.com/browse/sad http://www.psychpage.com/learning/library/assess/feelings.html

  2. 检查用户的文本是否包含这些 Sad/Bad 个词。

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

你可以简单的使用:

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

I'm done of this kind of game => Bored
Size doesn't mean everything => Defense
I will bring you all pain => Angry
Fortune doesn't favor fools => advise

  1. 现在过滤 select 每个短语中只有重要的词,删除不会影响意思的词

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

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

  4. 现在你会有像数字一样的引号,你可以把情绪放在数字数组中

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

假设您找到了一个训练和测试 NN 的工具,如下所示。

每个输入都是您 "emotion array" 的数字,输出将是一个二进制数。如果你想表示一个 0-4(从冷到悲伤)的范围,那么你将需要 3 个输出(3 位 = 8 个可能的数字,因为 2 位我们只能表示 4 个数字)

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

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

用文字来说,这意味着:对于代表这些情绪的这组输入,我将必须显示 1(快乐)和对其他行的相同想法

这个文件会有很多训练行(我上面说的是 300 行),训练的结果将是根据您的 "artificial inteligence"

校准的神经网络的权重

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

此外,您还必须研究您的神经网络将有多少输入、多少层等等。