用R识别/区分两个句子
下面是我的数据示例 身份证地址用R识别/区分两个句子,r,text,matrix,similarity,R,Text,Matrix,Similarity,下面是我的数据示例 身份证地址 Table1:User table id address 1 mont carlo road,CA 2 mont road,IS 3 mont carlo road1-11,CA Table 2(The output I wanna get) Similarity Matrix id 1 2 3 1 2 3 3 1 3 1~3 very similar~very dissim
Table1:User table
id address
1 mont carlo road,CA
2 mont road,IS
3 mont carlo road1-11,CA
Table 2(The output I wanna get)
Similarity Matrix
id 1 2 3
1
2 3
3 1 3
1~3 very similar~very dissimilar
我的问题是如何通过表1中的地址识别案例之间的相似性,然后输出一个结果,如R中的表2所示的相似矩阵。重点是如何计算R中两个句子之间的比较,然后设置一个尺度来衡量一对句子之间的相似性,最后输出一个矩阵。您可能对R包中实现的矩阵感兴趣。例如:
library(stringdist)
address <- c("mont carlo road,CA", "mont road,IS", "mont carlo road1-11,CA")
stringdist(address[1], address[2], method="lv")
[1] 8
库(stringdist)
地址我也会使用stringdist
包,但会使用outer
和cut
来完成工作:
library(stringdist)
dat <- data.frame(
address = c("mont carlo road,CA", "mont road,IS", "mont carlo road1-11,CA"),
id = 1:3
)
m <- outer(dat[["address"]], dat[["address"]], stringdist, method="jw")
m[lower.tri(m)] <- cut(m[lower.tri(m)], 3, labels=1:3)
m[upper.tri(m)] <- cut(m[upper.tri(m)], 3, labels=1:3)
dimnames(m) <- list(dat[["id"]], dat[["id"]])
diag(m) <- NA
m
## 1 2 3
## 1 NA 3 1
## 2 3 NA 3
## 3 1 3 NA
库(stringdist)
谢谢你的建议。我正在寻找R中的详细方法/算法。请参阅我的答案与此问题的链接: