我正在尝试学习Scikit-learn中的一些分类。但是,我无法弄清楚这个错误意味着什么。
import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer
data_frame = pd.read_csv('data.csv', header=0)
data_in_numpy = data_frame.values
c = CountVectorizer()
c.fit_transform(data_in_numpy.data)
这会引发错误:
NotImplementedError: multi-dimensional sub-views are not implemented
我该如何解决这个问题?我的csv文件中的一条记录如下:
Time Directors Actors Rating Label
123 Abc, Def A, B,c 7.2 1
我认为这个错误是由于在Director或Actors列下有多个值。 任何帮助,将不胜感激。 谢谢,
答案 0 :(得分:0)
根据the docstring,sklearn.feature_extraction.text.CountVectorizer将:
将文本文档集合转换为令牌计数矩阵
那么,我想,为什么你要输入数值?
尝试仅转换字符串(导演和演员):
data_in_numpy['X'] = data_frame[['Directors', 'Actors']].apply(lambda x: ' '.join(x), axis=1)
data_in_numpy = data_frame['X'].values
首先,您可能希望通过删除逗号来清理数据。
data_frame['Directors'] = data_frame['Directors'].str.replace(',', ' ')
data_frame['Actors'] = data_frame['Actors'].str.replace(',', ' ')