#python #scikit-learn
#python #scikit-learn
Вопрос:
Почему я продолжаю получать эту ошибку? Я пробую и другие коды, но как только он использует get_feature_names_out
функцию, он выдает эту ошибку.
Ниже приведен мой код:
from sklearn.datasets._twenty_newsgroups import fetch_20newsgroups
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB # fast to train and achieves a decent F-score
from sklearn import metrics
import numpy as np
def show_top10(classifier, vectorizer, categories):
feature_names = vectorizer.get_feature_names_out()
for i, category in enumerate(categories):
top10 = np.argsort(classifier.coef_[i])[-10:]
print("%s: %s" % (category, " ".join(feature_names[top10])))
newsgroups_train = fetch_20newsgroups(subset='train')
print(list(newsgroups_train.target_names))
cats = ['alt.atheism', 'sci.space', 'rec.sport.baseball', 'rec.sport.hockey']
newsgroups_train = fetch_20newsgroups(subset='train', categories=cats)
print(list(newsgroups_train.target_names))
print(newsgroups_train.filenames.shape)
vectorizer = TfidfVectorizer()
vectors = vectorizer.fit_transform(newsgroups_train.data)
print(vectors.shape)
Ответ №1:
Вероятно, это связано с тем, что вы используете более старую версию scikit-learn, чем та, для которой был написан этот код.
get_feature_names_out
является методом класса sklearn.feature_extraction.text.TfidfVectorizer
начиная с scikit-learn 1.0. Ранее вызывался аналогичный метод get_feature_names
.
Поэтому вам следует обновить свой пакет scikit-learn или использовать старый метод (не рекомендуется).
Комментарии:
1. Спасибо, чувак, я только что понял, что мой pycharm использует более старую версию sklearn.