0

有一些序列数据需要比较。预期的输出是距离矩阵,它显示了每个序列与其他序列的相似程度。以前,我ngram.NGram.compare在 Python 中使用过,现在我想切换到 R。我找到ngrambiogram打包,但我无法找到生成预期输出的确切函数。

假设这是数据

a <- c("ham","bam","comb")

输出应该是这样的(每个项目之间的距离):

#      ham    bam   comb
#ham    0     0.5   0.83
#bam   0.5     0     0.6
#comb  0.83   0.6     0

它是输出的等效 Python 代码:

a = ["ham","bam","comb"]
import ngram
[(1 - ngram.NGram.compare(a[i],a[j],N=1))  
                          for i in range(len(a)) 
                          for j in range((i+1),len(a)) ]
4

1 回答 1

1

你可以stringdistmatrixstringdist包中使用。检查stringdist-metrics文档哪些指标可用。

a <- c("ham","bam","comb")
stringdist::stringdistmatrix(a, a, method = "jaccard")

          [,1] [,2]      [,3]
[1,] 0.0000000  0.5 0.8333333
[2,] 0.5000000  0.0 0.6000000
[3,] 0.8333333  0.6 0.0000000
于 2018-03-12T12:19:34.683 回答