【问题标题】:simple nltk sentiment analysis code using python3使用python3的简单nltk情感分析代码
【发布时间】:2015-07-10 21:47:01
【问题描述】:

我正在尝试对客户电子邮件进行分类。

  1. 电子邮件是高兴还是悲伤(情绪分析)
  2. 电子邮件是否与计费有关。

我正在使用 Python3,并且认为我必须使用 nltk 和 scikit NLTK - 将有助于理解和阅读我相信的文字 scikit - 将进行分类(快乐、悲伤和计费与否)

训练数据集 1:几个短语……从一个词到一个 5 到 6 个词的句子。 (1 表示高兴,0 表示不高兴)...下面举几个例子

  • 感谢帮助..1
  • 干得好..1
  • 太棒了..1
  • 太可怕了..0
  • 令人困惑...0
  • 慢点...0

训练数据集 2:一些表示计费相关问题的短语..(以下几个示例)

  • 我的账单问题
  • 帐单费用
  • 我的账单太高了
  • 付款被拒

现在从概念的角度来看,这似乎是直截了当的 我在哪里可以找到一些基本代码,这会告诉我

  1. 如何使用自己的训练数据
  2. 如何加载电子邮件文本作为输入并吐出快乐或悲伤的答案...以及是否计费。

【问题讨论】:

标签: python-3.x machine-learning scikit-learn nltk sentiment-analysis


【解决方案1】:

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

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

对于情绪分析,您有两种选择:

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

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

机器学习提供最佳结果,因此如果您有足够多的带注释的电子邮件,这是不错的选择。

【讨论】:

  • 谢谢克莱姆托伊..!关于基于词典的方法的后续问题。(计费)。我将使用 NLTK 从我的文本中获取含义完整的数据(删除停用词..等)......然后我只是将单词与我自己的单词进行比较训练数据? (计费短语?)#1。比较我的训练数据中的单个单词和单个单词....#2 比较我的数据中的 2 个单词短语和 bigram...#3 比较我的训练数据中的 n(3 个单词)gram 和 n(4 个单词).. .然后是 4 个单词,直到我想也许 7 个单词短语是我现在拥有的最大值..ex。 “我对我的账单有疑问”.. 所以猜我看看并比较 ngrams?
  • 你可以尝试这样做!
  • 顺便说一句...除了电子邮件...这将是我数据的一小部分...大部分将是转录为文本的电话...会让我的手指交叉!
猜你喜欢
  • 1970-01-01
  • 2014-01-16
  • 1970-01-01
  • 2015-01-20
  • 1970-01-01
  • 1970-01-01
  • 2017-11-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多