使用 r 库 stringdist 进行文本挖掘

text mining with r library stringdist

我已经准备好下一个匹配两个字符串的算法。

library(stringdist)

qgrams('perimetrico','perimetrico peri',q=2)

   pe ri tr er im me o  et ic co  p
V1  1  2  1  1  1  1  0  1  1  1  0
V2  2  3  1  2  1  1  1  1  1  1  1

在我看来,这是统计出现次数的正式实现。

stringdist('perimetrico','perimetrico peri', method='qgram', q=2)

5

但我对这个解决方案不太满意。这就是为什么我要计算第一个结果,例如以下方式:

pe=1
ri=1
tr=1
er=1
im=1
me=1
o=0
et=1
ic=1
co=1
p=0

因此,最终结果将是 9/11 = 82% 匹配

使用应用(对每一行)计算 0 出现的次数,然后从 1 中减去该数字。

library(stringdist)
foo <- qgrams('perimetrico','perimetrico peri',q=2)
apply(foo, 1, function(x) 1 - mean(x == 0))

       V1        V2 
0.8181818 1.0000000 

或者您可以四舍五入(对于 0.82)并乘以 100(对于 82 百分比)

apply(a, 1, function(x) round(1 - mean(x == 0), 2) * 100)

 V1  V2 
 82 100