[英]How to get the highest tf-idf values of words for each class after using tfidf.vectorizer
所以我有一个带有 3 个标签的数据集:足球、音乐和电影我使用 tfidf.vectorizer 然后逻辑回归来训练我的模型,现在我想获得每个标签具有最高 tfidf 的 5 个单词的列表。 (足球最高 5 分,音乐最高 5 分……)我找不到获得它们的方法。
这是我拥有的代码
le = preprocessing.LabelEncoder()
y = le.fit_transform(data["Label"])
tfidf = TfidfVectorizer(analyzer = 'word')
X = tfidf.fit_transform(data["text"])
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.1)
lr = LogisticRegression()
lr.fit(X_train, y_train)
lr.score(X_test,y_test)
谢谢您的帮助。
这不是 TFIDF 的工作方式。 矢量化器计算每个文档的单词分数,而不是类别。
要获得每个文档的分数,请使用
X.nonzero()
如果您想获得每个类别的 TFIDF 分数,那么我建议将同一类别的所有文本集中到一个文档中,然后再次运行 TF-IDF。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.