可以使用R/python/Map reductor计算单词的共现



我有一个180列、200000行的庞大数据库。为了更好地说明,我有一个180 x 200000的矩阵。每个矩阵都是一个个个位数。我需要找到他们的同现次数。例如,我有一个5列的数据,值为1,2,3,4,5。我需要在数据库中找到(1,2)、(1,3)、(1,4)、(1.5)、(2,3)(2,4)、(2.5)、(3,4)(3,5)、(4,5)发生的次数。你能给我一个解决这个问题的方法吗?我接触过R和python。因此,任何使用这些方法的建议都会非常有帮助。这也可以使用AWS地图还原器来完成吗?这些行中的任何帮助或指针也会有所帮助。

对的计数只是单线态计数的乘积。

在我一岁的MacBook Pro上使用R:需要5秒

生成200000行180列的矩阵,其元素为数字:

mat<-矩阵(样本(0:9180*20000,repl=T),nc=180)

现在每行中的表格数字:

选项卡<-sapply(0:9,函数(x)rowSums(mat==x))

现在找到每行中的配对计数:

cp<-combn(0:9,2,函数(x)选项卡[,1+x[1]]*选项卡[,1+1x[2])

对行求和:

colSums(cp)

验证第一行的结果:

tab2<-表(matrix(mat[1,],nr=180,nc=180),matrix

all(tab2[lower.tri(tab2)]=cp[1,])

最新更新