用于情绪分析的机器学习算法的工作

时间:2016-10-29 20:23:23

标签: nlp nltk sentiment-analysis opennlp naivebayes

我从here找到了一个很好的 Naive Bayes Classifier 示例。我无法理解这些步骤。

from nltk.classify import SklearnClassifier
from sklearn.naive_bayes import BernoulliNB
from sklearn.svm import SVC
train_data = [({"a": 4, "b": 1, "c": 0}, "ham"),
      ({"a": 5, "b": 2, "c": 1}, "ham"),
      ({"a": 0, "b": 3, "c": 4}, "spam"),
          ({"a": 5, "b": 1, "c": 1}, "ham"),
          ({"a": 1, "b": 4, "c": 3}, "spam")]
classif = SklearnClassifier(BernoulliNB()).train(train_data)
test_data = [{"a": 3, "b": 2, "c": 1},
             {"a": 0, "b": 3, "c": 7}]
classif.classify_many(test_data)
['ham', 'spam']
classif = SklearnClassifier(SVC(), sparse=False).train(train_data)
classif.classify_many(test_data)
['ham', 'spam']

什么是:

  1. 上面代码中的功能?
  2. 情绪的实际数据?
  3. “a”:4,“b”:1,“c”:0?
  4. ham,垃圾邮件?
  5. 基本目的是了解ML算法的工作原理。 我是情感分析的新手。我希望有人会帮忙。

1 个答案:

答案 0 :(得分:1)

您发布的代码示例使用无意义数据来训练分类器。

  

什么是:

     
      
  1. 上面代码中的功能?
  2.   
  3. " a":4," b":1," c":0?
  4.   
  5. ham,垃圾邮件?
  6.   

数组train_data包含名为" a"," b"和" c"的功能。 分类类别是" ham"和#"垃圾邮件"。情感分析可能会使用类别"积极"和"否定"。

  
      
  1. 情绪的实际数据?
  2.   

此演示中没有实际的情绪数据。

请注意,您无法从此代码段了解学习算法的工作原理。它只是向您展示训练分类器的黑匣子的API。要了解机器学习,请阅读有关培训的工作原理。要学习如何训练分类器(不知道训练如何在幕后工作),请从NLTK书的Chapter 6开始。