【问题标题】:How to parse freebase quad dump using Amazon mapreduce如何使用 Amazon mapreduce 解析 freebase quad 转储
【发布时间】:2012-03-07 14:11:37
【问题描述】:

我正在尝试从 freebase 中提取电影信息,我只需要电影的名称、导演和演员的姓名和 ID。

我发现使用 freebases 主题转储很难做到这一点,因为没有引用导演 ID,只有导演姓名。

这项任务的正确方法是什么?我需要使用亚马逊云以某种方式解析整个四边形转储吗?还是有什么好办法?

【问题讨论】:

    标签: mapreduce freebase elastic-map-reduce


    【解决方案1】:

    您确实需要使用四元转储,但它小于 4 GB,并且不需要 Hadoop、MapReduce 或任何云处理。一台像样的笔记本电脑应该没问题。在几年前的笔记本电脑上,这个简单的命令:

    time bzgrep '/film/' freebase-datadump-quadruples.tsv.bz2 | wc -l
    10394545
    
    real    18m56.968s
    user    19m30.101s
    sys 0m56.804s
    

    在 20 分钟内提取并计算所有引用电影域的内容。即使您必须多次通过文件(很可能),您也可以在不到一个小时的时间内完成整个任务,这意味着不需要强大的计算资源。

    您需要遍历中间节点(Freebase 中的 CVT)来获取演员,但您的其余信息应直接连接到主题电影节点。

    汤姆

    【讨论】:

      【解决方案2】:

      首先,我完全同意汤姆的观点和他的建议。我经常使用 UNIX 命令行工具从 Freebase 数据转储中提取“有趣”的数据片段。

      但是,另一种方法是将 Freebase 数据加载到本地“图形”存储系统中,并使用该系统提供的 API 和/或查询语言与数据进行交互以进行进一步处理。

      我使用 RDF,因为数据模型非常相似,而且很容易将 Freebase 数据转储转换为 RDF(请参阅:https://github.com/castagna/freebase2rdf)。然后我将它加载到 Apache Jena 的 TDB 存储 (http://incubator.apache.org/jena/documentation/tdb/) 并使用 Jena API 或 SPARQL 进行进一步处理。

      另一种合理且可扩展的方法是在 MapReduce 中实现您需要执行的操作,但这仅在您执行的处理量涉及大部分 Freebase 数据并且它不像计算行那么简单时才有意义。这比使用您自己的机器更昂贵,您需要一个 Hadoop 集群或者您需要使用 Amazon EMR。 (我可能应该写一个 MapReduce 版本的 freebase2rdf ;-))

      我的 2 美分。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-15
        • 1970-01-01
        • 2015-04-01
        相关资源
        最近更新 更多