2016-06-24 7 views
1

У меня возникли проблемы с представлением моих данных в форме, которую примет sklearn Мои исходные данные - несколько сотен строк, и они разделены на один из 5 классов, у меня есть список строк, которые я хотел бы классифицировать, и параллельного списка их соответствующих классов. Я использую GaussianNB()Классифицировать строки через класс с помощью sklearn

Пример данных:

For such a large, successful business, I really feel like they need to be 
either choosier in their employee selection or teach their employees to 
better serve their customers.|||Class:4 

Что представляет данную «особенность» и классификация

Естественно, струны сами должны быть преобразованы в векторы до их использования в классификатор, я попытался использовать DictVector для выполнения этой задачи

dictionaryTraining = convertListToSentence(data) 
vec = DictVectorizer() 
print(dictionaryTraining) 
vec.fit_transform(dictionaryTraining) 

Однако для того, Todo это, я должен ATTAC ч фактическая классификация данных в словаре, в противном случае я получаю ошибку 'str' object has no attribute 'items' Я понимаю, что это потому, что .fit_transform требуются функции и индексы, но я не совсем понимаю, цель Indice

fit_transform(X[, y]) Learn a list of feature name -> indices mappings and transform X. 

Мой вопрос состоит в , как я могу взять список строк и список чисел, представляющих их классификацию, и предоставить их классификатору gaussianNB(), чтобы я мог представить его с подобной строкой в ​​будущем и оценит класс строк?

+0

Вы можете поделиться формат данных в '' dictionaryTraining переменной? –

+0

Формат не работает, если я не задал формат строки -> классификация, но, очевидно, что это не то, что требует классификатор – kxdan

ответ

1

Поскольку ваши входные данные находятся в формате необработанного текста, а не в формате словаря, например {"word": number_of_occurrences,} Я считаю, что вы должны пойти с CountVectorizer, который разделит ваш текст ввода на пробел и преобразовать его на требуемые входные векторы.

Простой пример такого преобразования будет:

from sklearn.feature_extraction.text import CountVectorizer 
corpus = ['This is the first document.', 'This is the second second document.', 
      'And the third one.', 'Is this the first document?',] 
x = CountVectorizer().fit_transform(corpus) 
print x.todense() #x holds your features. Here I am only vizualizing it 
+0

, есть ли у вас пример о том, как я собираюсь взять список строк и параллельный список строковых классификаций, превратите их в countvectorisor и введите в классификатор? – kxdan

+0

Я обновил ответ. – geompalik