gpt4 book ai didi

numpy - scipy 中的稀疏矩阵是什么意思?

转载 作者:行者123 更新时间:2023-11-30 08:50:51 24 4
gpt4 key购买 nike

我有一个 NLP 任务,并且正在使用 scikit-learn。阅读tutorials我发现必须对文本进行矢量化,以及如何使用此矢量化模型来提供分类算法。假设我有一些文本,我想将其矢量化如下:

from sklearn.feature_extraction.text import CountVectorizer

corpus =['''Computer science is the scientific and
practical approach to computation and its applications.'''
#this is another opinion
'''It is the systematic study of the feasibility, structure,
expression, and mechanization of the methodical
procedures that underlie the acquisition,
representation, processing, storage, communication of,
and access to information, whether such information is encoded
as bits in a computer memory or transcribed in genes and
protein structures in a biological cell.'''
#anotherone
'''A computer scientist specializes in the theory of
computation and the design of computational systems''']

vectorizer = CountVectorizer(analyzer='word')

X = vectorizer.fit_transform(corpus)

print X

问题是我不理解输出的含义,我看不到与矢量化器返回的文本和矩阵有任何关系:

  (0, 12)   3
(0, 33) 1
(0, 20) 3
(0, 45) 7
(0, 34) 1
(0, 2) 6
(0, 28) 1
(0, 4) 1
(0, 47) 2
(0, 10) 2
(0, 22) 1
(0, 3) 1
(0, 21) 1
(0, 42) 1
(0, 40) 1
(0, 26) 5
(0, 16) 1
(0, 38) 1
(0, 15) 1
(0, 23) 1
(0, 25) 1
(0, 29) 1
(0, 44) 1
(0, 49) 1
(0, 1) 1
: :
(0, 30) 1
(0, 37) 1
(0, 9) 1
(0, 0) 1
(0, 19) 2
(0, 50) 1
(0, 41) 1
(0, 14) 1
(0, 5) 1
(0, 7) 1
(0, 18) 4
(0, 24) 1
(0, 27) 1
(0, 48) 1
(0, 17) 1
(0, 31) 1
(0, 39) 1
(0, 6) 1
(0, 8) 1
(0, 35) 1
(0, 36) 1
(0, 46) 1
(0, 13) 1
(0, 11) 1
(0, 43) 1

此外,当我使用 toarray() 方法时,我不明白输出发生了什么:

print X.toarray()

输出到底意味着什么以及与语料库有什么关系?:

[[1 1 6 1 1 1 1 1 1 1 2 1 3 1 1 1 1 1 4 2 3 1 1 1 1 1 5 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 7 1 2 1 1 1]]

最佳答案

CountVectorizer 生成文档术语矩阵。作为一个简单的例子,我们看一下下面的简化代码:

from sklearn.feature_extraction.text import CountVectorizer

corpus =['''computer hardware''',
'''computer data and software data''']

vectorizer = CountVectorizer(analyzer='word')

X = vectorizer.fit_transform(corpus)

print X

print X.toarray()

您有两个文档(语料库元素)和五个术语(单词)。您可以按如下方式统计文档中的术语:

      | and computer data hardware software
+-------------------------------------
doc 0 | 1 1
doc 1 | 1 1 2 1

并且X以关联方式表示上述矩阵,即从(row, col)到术语频率和X.toarray()的映射将 X 显示为列表的列表。执行结果如下:

  (1, 0)    1
(0, 1) 1
(1, 1) 1
(1, 2) 2
(0, 3) 1
(1, 4) 1
[[0 1 0 1 0]
[1 1 2 0 1]]

正如 @dmcc 所指出的,您省略了逗号,这使得语料库只有一个文档。

关于numpy - scipy 中的稀疏矩阵是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27240608/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com