Я хочу обучить 12 моделей для моего анализа настроений, так как у меня есть 4 аспекта и 3 полярности (положительная, нейтральная, отрицательная).но я получил такую ошибку
ValueError: Expected 2D array, got 1D array instead:
array=[].
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.
Я обновил свой код здесь, чтобы сделать его более понятным, вот мой код:
fix = []
for review in dump:
review['text'] = prep(review['text'])
temp = {}
temp['text'] = review['text']
fix.append(temp)
count_vec = []
def count_ngram(index, numb, wrd):
if numb>ngram:
return
new_word= ""
for elem in word_list[index]:
if len(wrd)>0:
new_word = elem+" "+wrd
else:
new_word = elem
if index>0 and numb<ngram:
count_ngram(index-1, numb+1, new_word)
if new_word in vec_index:
count_vec[vec_index[new_word]]+= 1
for elem in fix:
count_vec = [0]*features
words = elem['text'].split()
word_list = []
for word in words:
word_set = set()
length = len(word)
word_set.add(word)
word_list.append(word_set)
l = len(word_list)
for i in range(l):
count_ngram(i, 1, "")
elem['vec'] = count_vec
x_data=[[],[],[],[],[],[],[],[],[],[],[],[],[]]
y_data=[[],[],[],[],[],[],[],[],[],[],[],[],[]]
def check(a):
x_data[a].append(elem['vec'])
if elem[str(a)]>0:
x_data[4+a].append(elem['vec'])
if elem[str(a)]>1:
y_data[4+a].append(1)
else:
y_data[4+a].append(0)
y_data[a].append(1)
else:
y_data[a].append(0)
for elem in fix:
for i in range(4):
check(i+1)
for i in range(12):
model=svm.SVC(kernel='linear')
print("training",i+1)
model.fit(x_data[i+1],y_data[i+1])
Есть ли что-то не так с тем, как я делаюмодель?Первоначально этот код был сделан для изготовления 8 моделей.так что вместо