Как показать название предсказанных тегов - PullRequest
0 голосов
/ 08 мая 2020

Я работаю над предсказанием тегов. Вот часть кода:

from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer = TfidfVectorizer(min_df=0.00009, max_features=200000, tokenizer = lambda x: x.split(), ngram_range=(1,3))
X_train_multilabel = vectorizer.fit_transform(X_train['question'])
X_test_multilabel = vectorizer.transform(X_test['question'])
from sklearn.multiclass import OneVsRestClassifier
from sklearn.linear_model import SGDClassifier
clf = OneVsRestClassifier(SGDClassifier(loss='log', alpha=0.00001, penalty='l2'))
clf.fit(X_train_multilabel, y_train)
y_pred = clf.predict(X_test_multilabel)

Я получаю y_pred как разреженную матрицу с единицами и нулями. Теперь мне нужно знать, как предсказать имя тега. Я работал с 1000 тегами. Итак, y_pred имеет 1000 столбцов. Как я могу узнать, какой столбец представляет какой тег.

1 Ответ

0 голосов
/ 08 мая 2020

Вам нужно найти class_labels, это должен быть массив длиной 1000.

Как только вы получите этот список,

tags = ['cat', 'dogs', ...] # len 1000

Затем , вы можете просто выбрать эти теги из своих y_pred,

tag_y = [tags[i] if y_pred[i] == 1 for i in range(1000)]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...