【发布时间】:2018-02-17 19:22:08
【问题描述】:
我正在尝试计算一个文档术语矩阵的行与另一个文档术语矩阵的行的相似度。
A <- data.frame(name = c(
"X-ray right leg arteries",
"x-ray left shoulder",
"x-ray leg arteries",
"x-ray leg with 20km distance"
), stringsAsFactors = F)
B <- data.frame(name = c(
"X-ray left leg arteries",
"X-ray leg",
"xray right leg",
"X-ray right leg arteries"
), stringsAsFactors = F)
corp1 <- corpus(A, text_field = "name")
corp2 <- corpus(B, text_field = "name")
docnames(corp1) <- paste("A", seq_len(ndoc(corp1)), sep = ".")
docnames(corp2) <- paste("B", seq_len(ndoc(corp2)), sep = ".")
dtm3 <- rbind(dfm(corp1, ngrams=2), dfm(corp2, ngrams=2))
d1 = textstat_simil(dtm3, method = "cosine")
d1 = as.matrix(d1)
d1 = d1[grepl("^A.",row.names(d1)),grepl("^B.",colnames(d1))]
在代码中,我计算组合矩阵的相似度,然后从矩阵中删除不相关的单元格。是否可以在textstat_simil(dtm3, method = "cosine") 中一次比较来自 A 的一个文档?在我正在寻找的表格下方。当我使用as.matrix(d1) 时,矩阵的文件大小也增加了一倍。
B.1 B.2 B.3 B.4
A.1 0.3333333 0.0000000 0.4082483 1.0000000
A.2 0.4082483 0.0000000 0.0000000 0.0000000
A.3 0.4082483 0.7071068 0.0000000 0.4082483
A.4 0.0000000 0.5000000 0.0000000 0.0000000
【问题讨论】: