1

我正在使用 OpenRefine 将一些 Twitter 元数据格式化为边缘列表以供 Gephi 读取。如果我想研究用户提及关联或用户标签关联,它很容易工作。但是现在我想研究共同标签,那么标签在推文中共同出现的频率。

在 OpenRefine 中执行此操作(我不太了解)有点棘手,我需要一些帮助。我的数据在 csv 中,有两列:用户的用户名、推文中使用的逗号分隔的主题标签字符串。要使用 OpenRefine 获取用户标签边缘列表,我在标签列上使用“拆分多值单元格”,然后在用户列上使用“填充”(非常简单)。我不知道如何获取 hashtag-hashtag 边缘列表。我可以在主题标签列上使用“拆分多值单元格”来为推文中提到的每个主题标签获取一个新行。但是我如何“填充”这些行以便获得主题标签-主题标签共现的所有组合?

例子:

数据:

User         Hashtags
Dario        Data mining, R, OpenRefine

期望的结果:

Hashtag 1    Hashtag 2

Data mining  R
Data mining  OpenRefine
R            OpenRefine
4

2 回答 2

1

还发布在 OpenRefine Google Group 上:

我认为您可以结合使用 forEach 和 forRange 来做到这一点。在包含逗号分隔主题标签的单元格上尝试以下转换:

forEachIndex(value.split(","),i,v,forRange(i+1,value.split(",").length(),1,j,v.trim() + "," + value。 split(",")[j].trim()).join("|")).join("|")

这应该会生成一个以竖线分隔的唯一组合列表。然后您可以使用“拆分多值单元格”

于 2015-03-06T14:29:52.813 回答
0

这是我的建议。

让我们用你的例子:

User         Hashtags
Dario        Data mining, R, OpenRefine

1°/ 在列 Hashtags 上使用名为“在列中拆分多值单元格”的功能

你应该得到类似的东西:

User         Hashtags
Dario        Data mining
             R
             OpenRefine

2°/ 在 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 mining
  • 然后根据分隔符将单元格拆分为列 |

  • 最后,删除第一个主题标签列。

于 2015-03-05T21:29:19.313 回答