我在以Sklearn会接受的形式显示我的数据时遇到问题我的原始数据是数百个字符串,这些数据被分类为5个类之一,我我想分类的字符串列表,以及它们各自的类的并行列表。我正在使用GaussianNB()
示例数据:
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)
但是,为了待此久,我必须将数据的实际分类附加到字典中,否则我会得到错误'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()
分类器,以便我将来可以在将来使用类似的字符串,并将估算字符串类?
,因为您的输入数据为原始文本的格式,而不是以字典的格式,例如{'word'':number_of_occurrences,}我相信您应该使用countvectorizer,该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