Python中的通用矩阵计算,TF-IDF

时间:2015-11-03 02:31:08

标签: python matrix tf-idf

在生成TF-IDF模块时,我只是面对这种矩阵向量计算。

A % b = C

[[1,2], [3,4]] % [1/2, 1/3] = [[1/2, 2/3], [3/2, 4/3]]

此处ADocument x Words的矩阵,其中A_ij是文档i中单词j的术语 - 频率计数。并且b向量是每个单词的预先计算的IDF值,例如,如果在7个不同的文档中使用单词b_j,则j是1/7。

人们如何称这种列式乘法? 是否有任何现有的库支持此操作? (Python)的

  • 由于尺寸大而且稀疏性,我一直在csr_matrix中使用scipy来保存矩阵。
  • 我尝试将它们更改为np.array并执行A*b操作,但它在几分钟内没有完成。

1 个答案:

答案 0 :(得分:2)

使用NumPy

元素乘法

import numpy as np
A = np.array([[1, 2], [3, 4]])
b = np.array([1/2, 1/3])
print(A * b)

输出:

[[ 0.5         0.66666667]
 [ 1.5         1.33333333]]

如果是csr_matrix

from scipy.sparse import csr_matrix
x1 = csr_matrix([[1, 2], [3, 4]])
x2 = csr_matrix([1/2, 1/3])
print(x1.multiply(x2).todense())

输出:

[[ 0.5         0.66666667]
 [ 1.5         1.33333333]]