首页 > 解决方案 > 如何对 20newsgroups_vectorized 数据集进行向量运算?

问题描述

当我20newsgroups_vectorized通过

newsgroups = fetch_20newsgroups_vectorized(subset='all')
labels = newsgroups.target_names
target = newsgroups.target
target = pd.DataFrame([labels[i] for i in target], columns=['label'])
data = newsgroups.data

data<class 'scipy.sparse.csr.csr_matrix'>形状 (18846, 130107)

如何按目标名称对数据进行子集化(例如,仅提取'rec.sport.baseball')并对那些稀疏行向量使用向量运算(例如,计算平均向量或距离)?

标签: vectorscikit-learntext-database

解决方案


不幸的是,按目标名称对数据进行子集化选项在 中不可用,fetch_20newsgroups_vectorized但在 中可用 fetch_20newsgroups,只是您必须自己对数据进行矢量化。

这是你如何做到的。

from sklearn.datasets import fetch_20newsgroups
from sklearn.feature_extraction.text import TfidfVectorizer
newsgroups_train = fetch_20newsgroups(subset='all',
                                      categories=['rec.sport.baseball'])
vectorizer = TfidfVectorizer()
vectors = vectorizer.fit_transform(newsgroups_train.data)
print(vectors.shape)
# (994, 13986)

在这里阅读更多


推荐阅读