我已经从https://developers.google.com/freebase/data?hl=en下载了Freebase转储,但我对文件的关系感到困惑。
我知道转储的格式是<subject> <predicate> <object> .。如果我想提取Freebase的别名子集,比如http://www.freebase.com/common/topic/alias?instances&lang=en,我如何才能做到这一点?我已经尝试过滤包含中间或‘/公用/主题/别名’的行,但是结果不是我想要的。
有什么库可以解析Freebase吗?谢谢!
后续行动:
我还有两个问题。
type.object.name是对象的名称)发布于 2015-12-22 18:41:41
Freebase数据转储是RDF,所以任何RDF解析库都应该可以工作,但是zgrep要快得多。一个小问题是,Freebase属性/common/topic/alias的谓词是<http://rdf.freebase.com/ns/common.topic.alias>,斜杠转换为句点/点。
要只过滤英文别名,可以使用如下命令:
$ zgrep -E "common.topic.alias>.*@en\t\.$" freebase-rdf-2015-04-19-00-00.gz这将使您的输出看起来如下:
<http://rdf.freebase.com/ns/m.0100c5g> <http://rdf.freebase.com/ns/common.topic.alias> "Pulska yo"@en .
<http://rdf.freebase.com/ns/m.0101107q> <http://rdf.freebase.com/ns/common.topic.alias> "Unforgiven 2002"@en .
<http://rdf.freebase.com/ns/m.01016v4g> <http://rdf.freebase.com/ns/common.topic.alias> "Ain't Nuthin' But A \"G\" Thang, Rene"@en .
...如果要使用所有语言的别名,只需使用:
$ zgrep -E "common.topic.alias>" freebase-rdf-2015-04-19-00-00.gzhttps://stackoverflow.com/questions/34411035
复制相似问题