0

我想对客户的电子邮件做一些分类。简单的nltk情感分析代码使用python3

  1. 是电子邮件快乐或悲伤(情绪分析)
  2. 是与计费或不电子邮件。

我使用Python3,并认为我必须使用NLTK和scikit NLTK - 将有助于理解和阅读文字我beleive scikit - 会做分类(快乐,悲伤和计费或不)

训练数据集1:几个短语......从一个单词到5到6个单词的句子。 (1快乐和0是不快乐)...的几个例子如下

  • Apprecaite的help..1
  • 伟大job..1
  • Awesome..1
  • 可怕。 0.0
  • 别扭...... 0
  • 放缓... 0

训练数据集2:几句INDI cating结算相关的问题..(以下几个例子)在我的账单

  • 问题
  • 结算费
  • 我的账单过高
  • 付款拒绝

现在,这似乎是从概念立场上直接前进 哪里可以找到一些基本代码,这将告诉我

  1. 我如何使用我自己的训练数据
  2. 如何将电子邮件文本作为输入加载并吐出令人高兴或悲伤的答案......并计费与否。

回答

2

关于您的数据集,您的方法几乎是基于词典的,因为这些项目包含的词很少。

对于计费,基于词典的方法应该是一个好主意。你应该重视电子邮件的主题。

对于情感分析你有两种选择:

  • 机器学习:在这种情况下,你应该使用一个更大的数据集(在我看来,每个项目应该是一个完整的电子邮件)。您可以在this tutorial之后实施朴素贝叶斯分类器。

  • 基于词典的方法:有几种用于情感分析的词典例如SentiWordNet(可从nltk.download()下载),MPQA, SentiStrength,WordNet-Affect via WNAffect,...预处理:标记(nltk.word_tokenize())和POS标记(nltk.pos_tag(text))。你还应该考虑否定(极性转移是否定管理的好方法)。

机器学习提供最好的结果,所以如果你有足够的带注释的电子邮件,这是一个不错的选择。

+0

thx Clemtoy ..!进一步的问题,以后续的基于词汇的方法(计费)。我将要使用NLTK从我的文本中获取完整数据的意义(删除停用词..等等)...然后我只是比较单词与我自己训练数据? (帐单短语?)#1。在我的训练数据中比较单个单词和单个单词......#2比较双数字与我的数据中的两个单词短语...#3在训练数据中比较n(3个单词)克与n个(4个单词)..然后4个单词,直到我想起来,也许7个单词短语是我现在拥有的最大..ex。 “我的账单有一个问题”,所以我想看看并比较一下ngrams? – Kumar

+0

你可以尝试这样做是的! – clemtoy

+0

顺便说一句...除了电子邮件...这将是我的数据的一小部分...多数将是电话转录为文本...将保持我的手指交叉! – Kumar