【发布时间】:2018-06-19 12:21:06
【问题描述】:
我有一个原始文档列表,已经过滤并删除了英文停用词:
rawDocument = ['sport british english sports american english includes forms competitive physical activity games casual organised ...', 'disaster serious disruption occurring relatively short time functioning community society involving ...', 'government system group people governing organized community often state case broad associative definition ...', 'technology science craft greek τέχνη techne art skill cunning hand λογία logia collection techniques ...']
我用过
from sklearn.feature_extraction.text import TfidfVectorizer
sklearn_tfidf = TfidfVectorizer(norm='l2', min_df=0, use_idf=True, smooth_idf=False, sublinear_tf=False)
sklearn_representation = sklearn_tfidf.fit_transform(rawDocuments)
但我有一个
<4x50 sparse matrix of type '<class 'numpy.float64'>'
with 51 stored elements in Compressed Sparse Row format>
我无法解释结果。那么,我是在使用正确的工具还是需要改变方式?
我的目标是获取每个文档中的相关单词,以便与查询文档中的其他单词进行余弦相似度。
提前谢谢你。
【问题讨论】:
-
做
sklearn_representation.todense(),你会得到一个矩阵。由于内存原因,输出是一个稀疏矩阵。您必须将其转换为密集矩阵。对于大型数据集,不建议这样做 -
sklearn_representation.todense()等于sklearn_representation.toarray()?我无法解释为什么我的矩阵中有这些值,以及[0][3]中的值与哪个词相关。 -
你不会直接得到这个。执行
sklearn_tfidf.get_feature_names()获取单词名称,这些将是您的列标题,然后每一行都只是一个文档。您必须自己整合这些信息
标签: python scikit-learn tf-idf tfidfvectorizer