2016-10-29 16 views
1

Я нашел хороший пример классификатора Наивного Байеса от here. Я не могу понять шаги.Работа алгоритмов машинного обучения для анализа настроений

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. ветчина, спам?

Основная цель - понять, как работает алгоритм ML. Я новичок в анализе настроений. Надеюсь, кто-то поможет.

ответ

1

Проведенный вами образец кода использует данные бессмысленности для обучения классификатора.

Что:

  1. функции в коде выше?
  2. "a": 4, "b": 1, "c": 0?
  3. ветчина, спам?

Массив train_data содержит функции, названные "а", "б" и "с". Категории классификации - «ветчина» и «спам». Анализ настроений может использовать категории «положительные» и «отрицательные».

  1. Фактические данные для настроений?

В этой демонстрации нет фактических данных о настроениях.

Помните, что вы не узнаете ничего о том, как алгоритм обучения работает из этого фрагмента. Он просто показывает вам API в черный ящик, который обучает классификатор. Чтобы узнать о механическом обучении, прочитайте о том, как работает обучение. Чтобы узнать, как обучать классификатор (не зная, как обучение работает за кулисами), начните с книги Chapter 6 книги NLTK.

+0

@alixis Что такое '4',' 1' и '0' в' ({"a": 4, "b": 1, "c": 0}, "ham") ' – Amar

+1

Они бессмысленные значения глупостей. – alexis

+0

О, хорошо для глупого человека. :) – Amar