gpt4 book ai didi

go - 将 freebase 数据转储修剪为仅英文实体

转载 作者:数据小太阳 更新时间:2023-10-29 03:37:44 24 4
gpt4 key购买 nike

我有一个压缩的 freebase 数据转储,其中包含所有实体。我如何使用 grep 或其他工具将数据转储修剪为仅包含英文实体?

这是我试图让 rdf 转储看起来像的东西:http://play.golang.org/p/-WwSysL3y3

<card>
<title></title>
<image></image>
<text></text>
<facts>
<fact></fact>
<fact></fact>
<fact></fact>
</fact>
</card>

其中 card 是在所有子元素中都有内容的每个实体。标题是/类型/对象/名称。文本是由 "https://usercontent.googleapis.com/freebase/v1/image"%s"\n", id 完成的主题中间的图像。 Text 是实体的/common/document/text。和事实及其事实 child 作为事实,如年龄、出生日期、高度,这些事实显示在搜索的知识面板中。

这是我在 Go (Golang) 中尝试将 rdf 解析为 xml 的尝试。如果有人可以帮助我获得这种形式的 rdf,我将不胜感激。

这是我正在尝试做的算法或逻辑:

For every entity written in english:

parse the `type/object/name`property's and write that to the xml file in the `<title></title>` element.

parse the mid and add that to `https://usercontent.googleapis.com/freebase/v1/image`and then write the result to the xml file in the <image></image> element.

parse the common/document/text property and writes its value to the <text></text> element.

And lastly, for each fact about the entity, write them to the <fact></fact> elements in the XML file, which are all children of the <facts></facts> element.

最佳答案

我同意 Joshua Taylor 的观点,这个问题很难解读,因为 entity 通常是 Freebase 对象的同义词,它可能有多种语言的标签(或者根本没有标签/文本)。

如果我们将问题改写为“如何从压缩的 Freebase 转储中过滤所有非英语文本?”,它就变成了我们可以实际回答的问题。

在 RDF 中,所有字符串都标有它们的语言,所以如果我们看到类似

ns:award.award_winner   rdfs:label      "Lauréat"@fr.

我们可以看出 Lauréat 是 Freebase 类型的法语名称,在英文中称为 Award Winner

要过滤掉非英文标签,请使用 zgrep 过滤那些匹配“@...但不匹配”@en 的行。这将为您提供所有类型、属性、数字和英文标签/描述,但不会排除那些至少没有一个英文标签的对象(您的问题的另一种可能解释)。要执行该级别的过滤,您可能需要比 grep 更强大的工具。

关于go - 将 freebase 数据转储修剪为仅英文实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25870358/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com