luc*_*ls1 2 trigonometry r cluster-analysis text-mining lsa
我正在尝试使用R语言对类似文档进行聚类.作为第一步,我为我的文档集计算术语 - 文档矩阵.然后我为先前创建的术语 - 文档矩阵创建潜在的语义空间.我决定在我的实验中使用LSA,因为使用term-document矩阵进行聚类的结果非常糟糕.是否可以使用创建的LSA空间构建相异矩阵(使用余弦度量)?我需要这样做,因为我使用的聚类算法需要一个相异矩阵作为输入.
这是我的代码:
require(cluster);
require (lsa);
myMatrix = textmatrix("/home/user/DocmentsDirectory");
myLSAspace = lsa(myMatrix, dims=dimcalc_share());
Run Code Online (Sandbox Code Playgroud)
我需要从LSA空间构建一个相异矩阵(使用余弦测量),所以我可以调用聚类算法如下:
clusters = pam(dissimilartiyMatrix,10,diss=TRUE);
Run Code Online (Sandbox Code Playgroud)
有什么建议?
提前致谢!
为了比较在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)
Run Code Online (Sandbox Code Playgroud)
请参阅http://en.wikipedia.org/wiki/Latent_semantic_analysis,其中您说现在可以使用LSA结果"通过比较向量sk*d_j和sk*d_q来查看相关文档j和q在低维空间中的情况(通常是余弦相似度)."
| 归档时间: |
|
| 查看次数: |
3711 次 |
| 最近记录: |