gpt4 book ai didi

r - 使用 R-lsa 包计算语义空间中文档之间的余弦相似度

转载 作者:行者123 更新时间:2023-12-02 07:37:03 27 4
gpt4 key购买 nike

我正在尝试使用 R 语言对相似文档进行聚类。作为第一步,我为我的文档集计算词条文档矩阵。然后我为之前创建的术语文档矩阵创建潜在语义空间。我决定在我的实验中使用 LSA,因为仅使用术语文档矩阵的聚类结果很糟糕。是否可以使用创建的 LSA 空间构建相异矩阵(使用余弦度量)?我需要这样做,因为我使用的聚类算法需要一个差异矩阵作为输入。

这是我的代码:

require(cluster);
require (lsa);

myMatrix = textmatrix("/home/user/DocmentsDirectory");
myLSAspace = lsa(myMatrix, dims=dimcalc_share());

我需要从 LSA 空间构建相异矩阵(使用余弦度量),因此我可以按如下方式调用聚类算法:

clusters = pam(dissimilartiyMatrix,10,diss=TRUE);

有什么建议吗?

提前致谢!

最佳答案

要比较 LSA 空间中的两个文档,您可以对 $sk$dk 矩阵求叉积,即 lsa() 返回以获取低维 LSA 空间中的所有文档。这是我所做的:

lsaSpace <- lsa(termDocMatrix)

# lsaMatrix now is a k x (num doc) matrix, in k-dimensional LSA space
lsaMatrix <- diag(lsaSpace$sk) %*% t(lsaSpace$dk)

# Use the `cosine` function in `lsa` package to get cosine similarities matrix
# (subtract from 1 to get dissimilarity matrix)
distMatrix <- 1 - cosine(lsaMatrix)

参见 http://en.wikipedia.org/wiki/Latent_semantic_analysis ,它说您现在可以使用 LSA 结果“通过比较向量 sk*d_j 和 sk*d_q(通常通过余弦相似度)来查看相关文档 j 和 q 在低维空间中的程度。”

关于r - 使用 R-lsa 包计算语义空间中文档之间的余弦相似度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15229584/

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