python - 使用R/python/Mapreduce可以计算单词共现吗?

标签 python r

我有一个包含 180 列和 200,000 行的巨大数据库。为了更好地说明,我有一个 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 Map Reducer 来完成吗?有关这些行的任何帮助或指示也会有所帮助。

最佳答案

对的计数只是单例计数的乘积。

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

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

mat <- matrix(sample(0:9,180*200000,repl=T),nc=180)

现在表格中每行的数字:

tab <- sapply( 0:9, function(x) rowSums( mat==x ))

现在找出每行中的对数:

cp <- combn( 0:9, 2, function(x) tab[,1+x[1] ] * tab[,1+x[2] ])

对行求和:

colSums(cp)

验证第一行的结果:

tab2 <- table( matrix(mat[1,], nr=180, nc=180), matrix(mat[1,], nr=180, nc=180, byrow=TRUE))

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

关于python - 使用R/python/Mapreduce可以计算单词共现吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20202179/

相关文章:

r - 传单 renderLeaflet 在 Shiny 时不起作用

r - ggplot 2中的多个条形图

r - 当新列名作为字符向量给出时,将数据分组到 `data.table` 中的好方法

r - 累积平均值不包括当前观察值 - 使用 cummean 和 group_by 同时忽略 NA

python - 选择第二个标签

python - 在 Tkinter 中将滚动条拉伸(stretch)到 Canvas 大小

Python Django RestFramework 路由触发器

r - 显示 R 中收敛的 k 均值算法的所有迭代?

python - 找不到 GRPC channel 选项的文档

c++ - PythonQt 的智能指针