Я пытаюсь сделать мульти метку классификации; Набор данных в основном заголовок столбца содержит заголовки сообщений и теги столбец содержит теги. Количество тегов для поста не фиксировано. Набор данных выглядит следующим образом:
и код, который я написал:
X_train, y_train = train['title'].values, train['tags'].values
X_val, y_val = validation['title'].values, validation['tags'].values
##I did some preprocessing on the data(eg.lowering, removing stop words etc.) then:
tfidf=TfidfVectorizer(ngram_range=(1,2),min_df=2,max_df=.9,token_pattern='(\S+)').fit(X_train)
X_train=tfidf.transform(X_train)
X_test=tfidf.transform(X_test)
X_val=tfidf.transform(X_val)
from sklearn.preprocessing import MultiLabelBinarizer
mlb = MultiLabelBinarizer(classes=sorted(tags_counts.keys()))##tags_counts.keys are all the tags contained in the dataset
y_train = mlb.fit_transform(y_train)
y_val = mlb.fit_transform(y_val)
model=OneVsRestClassifier(LogisticRegression(C=10)).fit(X_train_tfidf, y_train)
y_val_predicted_labels_tfidf = classifier_tfidf.predict(X_val[0])
это предсказание дает мне массив всех нулей, что означает, что оно я не предсказывал ни одного тега в этой записи, и когда я использую обратное, чтобы получить теги в виде буквы следующим образом:
, я получил пустое предсказание [()]
. Есть идеи?