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

General Matrix computation in Python, 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 是文档 j 中单词 i 的词频计数。而b向量是为每个词预先计算的IDF值,例如如果在7个不同的文档中使用词j,则b_j是1/7。

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

使用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]]