-1

すべてのエンティティを含む圧縮された 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 は、すべての子要素にコンテンツを持つ各エンティティです。タイトルは /type/object/name です。テキストは、 によって行われたトピックの途中の画像です"https://usercontent.googleapis.com/freebase/v1/image"%s"\n", id。テキストは、エンティティの /common/document/text です。ファクトとそのファクトの子は、年齢、生年月日、身長などのファクトであり、検索のナレッジ パネルに表示されるファクトです。

これは、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.
4

1 に答える 1

0

エンティティは通常、Freebase オブジェクトの同義語であり、複数の言語のラベルがある (またはラベル/テキストがまったくない) 可能性があるため、質問を解読するのが難しいという Joshua Taylor に同意します。

質問を「圧縮された Freebase ダンプから英語以外のテキストをすべてフィルター処理するにはどうすればよいですか?」のように言い換えると、実際に回答できるものになります。

RDF では、すべての文字列が言語でラベル付けされているため、

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

これは、英語でLauréat呼ばれる Freebase タイプのフランス語名であることがわかりAward Winnerます。

英語以外のラベルを除外するには、zgrep を使用して、"@... に一致するが "@en. これにより、すべてのタイプ、プロパティ、数値、および英語のラベル/説明が得られますが、少なくとも 1 つの英語のラベルがないオブジェクトは除外されません (質問の別の解釈)。そのレベルのフィルタリングを行うには、おそらく grep よりも強力なものが必要になるでしょう。

于 2014-09-18T17:22:08.270 に答える