【发布时间】:2017-06-19 13:29:49
【问题描述】:
我有 100 个文档(每个文档都是该文档中单词的简单列表)。现在我想创建一个 TF-IDF 矩阵,这样我就可以按排名创建一个小的单词搜索。我使用 tfidfVectorizer 进行了尝试,但在语法中迷失了方向。任何帮助将非常感激。问候。
编辑:我将列表转换为字符串并将它们添加到父列表中:
vectorizer = TfidfVectorizer(vocabulary=word_set)
matrix = vectorizer.fit_transform(doc_strings)
print(matrix)
这里 word_set 是可能的不同单词的集合,而 doc_strings 是一个列表,其中包含每个文档作为字符串;但是,当我打印矩阵时,我得到如下输出:
(0, 839) 0.299458532286
(0, 710) 0.420878518454
(0, 666) 0.210439259227
(0, 646) 0.149729266143
(0, 550) 0.210439259227
(0, 549) 0.210439259227
(0, 508) 0.210439259227
(0, 492) 0.149729266143
(0, 479) 0.149729266143
(0, 425) 0.149729266143
(0, 401) 0.210439259227
(0, 332) 0.210439259227
(0, 310) 0.210439259227
(0, 253) 0.149729266143
(0, 216) 0.210439259227
(0, 176) 0.149729266143
(0, 122) 0.149729266143
(0, 119) 0.210439259227
(0, 111) 0.149729266143
(0, 46) 0.210439259227
(0, 26) 0.210439259227
(0, 11) 0.149729266143
(0, 0) 0.210439259227
(1, 843) 0.0144007295367
(1, 842) 0.0288014590734
(1, 25) 0.0144007295367
(1, 24) 0.0144007295367
(1, 23) 0.0432021886101
(1, 22) 0.0144007295367
(1, 21) 0.0288014590734
(1, 20) 0.0288014590734
(1, 19) 0.0288014590734
(1, 18) 0.0432021886101
(1, 17) 0.0288014590734
(1, 16) 0.0144007295367
(1, 15) 0.0144007295367
(1, 14) 0.0432021886101
(1, 13) 0.0288014590734
(1, 12) 0.0144007295367
(1, 11) 0.0102462376715
(1, 10) 0.0144007295367
(1, 9) 0.0288014590734
(1, 8) 0.0288014590734
(1, 7) 0.0144007295367
(1, 6) 0.0144007295367
(1, 5) 0.0144007295367
(1, 4) 0.0144007295367
(1, 3) 0.0144007295367
(1, 2) 0.0288014590734
(1, 1) 0.0144007295367
这是否正确,如果正确,我如何在特定文档中搜索给定单词的排名。
【问题讨论】:
标签: python python-3.x matrix information-retrieval tf-idf