我正在使用OpenRefine将一些Twitter元数据格式化为一个边缘列表,以便Gephi读取。如果我想研究用户提及关联或用户标签关联,它可以很容易地工作。但现在我想研究共同标签,那么标签在tweet中同时出现的频率是多少?
用OpenRefine (我不是很了解)来做这件事有点棘手,我需要一些帮助。我的数据是csv格式的,有两列:用户的用户名,tweet中使用的以逗号分隔的标签字符串。要使用OpenRefine获得用户标签边缘列表,我在标签列上使用“拆分多值单元格”,然后在用户列上使用"Fill down“(非常简单)。我不知道如何获得hashtag-hashtag边缘列表。我可以在hashtag列上使用“拆分多值单元格”来为tweet中提到的每个hashtag获得一个新行。但是,如何“填充”行才能获得hashtag-hashtag共同出现的所有组合呢?
示例:
数据:
User Hashtags
Dario Data mining, R, OpenRefine期望的结果:
Hashtag 1 Hashtag 2
Data mining R
Data mining OpenRefine
R OpenRefine发布于 2015-03-06 22:29:53
还在OpenRefine谷歌群上发布了:
我认为您可以使用forEach和forRange的组合来实现这一点。在包含逗号分隔的hashtag的单元格上尝试以下转换:
forEachIndex(value.split(","),i,v,forRange(i+1,value.split(",").length(),1,j,v.trim() + ",“+ value.split(",")j.trim()).join("|")).join("|")
这应该会产生一个以竖线分隔的唯一组合列表。然后你可以使用‘拆分多值单元格’
发布于 2015-03-06 05:29:19
这是我的建议。
让我们使用您的示例:
User Hashtags
Dario Data mining, R, OpenRefine1°/在列标签上使用名为“在列中拆分多值单元格”的函数
你应该会得到类似这样的东西:
User Hashtags
Dario Data mining
R
OpenRefine2°/在Hashtags列上尝试此转换:
if((row.record.cells["Hashtags"].value[-1])==value,value+","+(row.record.cells["Hashtags"].value[0]),value+","+(row.record.cells["Hashtags"].value[-1]))3°)根据",“分隔符将您的列拆分为多个列。
这对我很管用。
编辑:
这个解决方案生成一个重复的条目,可以像这样轻松地删除它:
你会得到像这样的东西
1.
Dario
Data mining,Prout|R,Prout|OpenRefine,Prout|Prout,Data mining
2.
Essai
Data mining,R|R,Data mininghttps://stackoverflow.com/questions/28808746
复制相似问题