矩阵与向量相乘得到矩阵
Multiplicating a matrix with a vector results in a matrix
我有一个文档术语矩阵:
document_term_matrix <- as.matrix(DocumentTermMatrix(corpus, control = list(stemming = FALSE, stopwords=FALSE, minWordLength=3, removeNumbers=TRUE, removePunctuation=TRUE )))
对于这个文档术语矩阵,我计算了本地术语和全局术语的权重如下:
lw_tf <- lw_tf(document_term_matrix)
gw_idf <- gw_idf(document_term_matrix)
lw_tf
是与文档术语矩阵 (nxm 具有相同维数的矩阵,并且gw_idf
是大小为 n 的向量。然而,当我 运行:
tf_idf <- lw_tf * gw_idf
tf_idf
的维度又是nxm.
最初,我不希望这种乘法有效,因为维度不一致。但是,鉴于此输出,我现在期望 gw_idf
的维数为 mxm。真的是这样吗?如果是这样:大小为 n
的 gw_idf
向量发生了什么?
矩阵乘法在 R 中通过使用 %*%
而不是 *
完成(后者只是逐元素乘法)。您的推理部分正确,您只是使用了错误的符号。
关于矩阵乘法,只有当第一个矩阵的第二个维度与第二个矩阵的第一个维度相同时,矩阵乘法才有可能。结果维度是第一个矩阵的 dim1 乘以第二个矩阵的 dim2。
在您的例子中,您是在告诉我们您有一个 1 x n
矩阵乘以一个 n x m
矩阵,结果应该是一个 1 x m
矩阵。你可以在这个例子中检查这种情况:
a <- matrix(runif(100, 0 , 1), nrow = 1, ncol = 100)
b <- matrix(runif(100 * 200, 0, 1), nrow = 100, ncol = 200)
c <- a %*% b
dim(c)
[1] 1 200
现在,关于你的具体情况,我真的没有这个制作术语文档的包(如果你能提供一个易于重现的例子会很好!),但是如果你乘以 nxm
矩阵元素(你正在使用 *
,就像我在开始时说的那样)通过 nx1
数组,结果没有意义。您的变量 gw_idf
根本不是数组(也许它只是一个标量),或者您只是得出了错误的结论。
我有一个文档术语矩阵:
document_term_matrix <- as.matrix(DocumentTermMatrix(corpus, control = list(stemming = FALSE, stopwords=FALSE, minWordLength=3, removeNumbers=TRUE, removePunctuation=TRUE )))
对于这个文档术语矩阵,我计算了本地术语和全局术语的权重如下:
lw_tf <- lw_tf(document_term_matrix)
gw_idf <- gw_idf(document_term_matrix)
lw_tf
是与文档术语矩阵 (nxm 具有相同维数的矩阵,并且gw_idf
是大小为 n 的向量。然而,当我 运行:
tf_idf <- lw_tf * gw_idf
tf_idf
的维度又是nxm.
最初,我不希望这种乘法有效,因为维度不一致。但是,鉴于此输出,我现在期望 gw_idf
的维数为 mxm。真的是这样吗?如果是这样:大小为 n
的 gw_idf
向量发生了什么?
矩阵乘法在 R 中通过使用 %*%
而不是 *
完成(后者只是逐元素乘法)。您的推理部分正确,您只是使用了错误的符号。
关于矩阵乘法,只有当第一个矩阵的第二个维度与第二个矩阵的第一个维度相同时,矩阵乘法才有可能。结果维度是第一个矩阵的 dim1 乘以第二个矩阵的 dim2。
在您的例子中,您是在告诉我们您有一个 1 x n
矩阵乘以一个 n x m
矩阵,结果应该是一个 1 x m
矩阵。你可以在这个例子中检查这种情况:
a <- matrix(runif(100, 0 , 1), nrow = 1, ncol = 100)
b <- matrix(runif(100 * 200, 0, 1), nrow = 100, ncol = 200)
c <- a %*% b
dim(c)
[1] 1 200
现在,关于你的具体情况,我真的没有这个制作术语文档的包(如果你能提供一个易于重现的例子会很好!),但是如果你乘以 nxm
矩阵元素(你正在使用 *
,就像我在开始时说的那样)通过 nx1
数组,结果没有意义。您的变量 gw_idf
根本不是数组(也许它只是一个标量),或者您只是得出了错误的结论。