python - 使用 tfidf.vectorizer 后如何获取每个类的单词的最高 tf-idf 值
问题描述
所以我有一个带有 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。
推荐阅读
- c# - 使用 Azure 存储模拟器的 HTTPS 重定向
- r - R中的头/尾中断分类算法
- azure - 在 Azure 认知服务上托管的自定义视觉模型的推理在 12 月停止了对我的工作
- html - 子资源完整性和 Nonce 值
- python - 寻找矩形的角
- scala - 空安全“之间” Spark 运算符
- rest - Acumatica REST API - 如何在检索 Stockitem 时包含扩展数据
- python - 用于循环的打印字符串中的索引的Python错误
- python-3.x - 根据多个条件将列添加到数据框(基于另一个数据框的值)
- regex - 使用正则表达式进行 URL 过滤:仅查找字符串的第一个实例,但不以特定的其他字符串为前缀