メタデータでテキスト文書に注釈を付ける方法は?


18

多くのテキスト文書(自然言語、構造化されていない)がある場合、それらに何らかのセマンティックメタデータで注釈を付ける可能な方法は何ですか?たとえば、短いドキュメントを考えてみましょう。

I saw the company's manager last day.

それから情報を抽出できるようにするには、追加データで注釈を付けてあいまいさを軽減する必要があります。このようなメタデータを見つけるプロセスは問題ではないため、手動で行われると想定します。問題は、これらのデータをさらに便利に/効率的に分析できるように、これらのデータをどのように保存するかです。

可能なアプローチはXMLタグを使用することです(以下を参照)が、冗長すぎるようで、テキストドキュメントにそのようなメタデータを保存するためのより良いアプローチ/ガイドラインがあるかもしれません。

<Person name="John">I</Person> saw the <Organization name="ACME">company</Organization>'s
manager <Time value="2014-5-29">last day</Time>.

SGMLの主な目的の1つ(その子孫であるXMLにも同じことが言えます)は、テキストドキュメント(POS およびセマンティックタグ)にタグを付ける手段を提供することでした。
鹿ハンター

どのような種類のメタデータを追加するかについて、より具体的/制限的ですか?あなたの2つの例では、XMLタグと同じ一般的な表現力を持つ、より冗長な方法があるとは思いません。
ojdo 14年

@ojdoメタデータの大部分は、曖昧さをなくすため(相対時間など)、または特別なエンティティ(つまりFK)を指定するためのものです。
アミールアリアクバリ14年

2
過去にbrat.nlplab.orgを使用しました。多くの異なるタイプの注釈のための素晴らしいインターフェースがあります。注釈は別の.annotファイルに保存されます。このファイルは、注釈が付けられる単語とドキュメント内での位置のリストです。
user1893354 14年

@ user1893354とても参考になりました!特別に使用されている「ブラットスタンドオフフォーマット」は、私のニーズに非常に適しているようです。必要に応じて回答を投稿することをお勧めします。
アミールアリアクバリ

回答:


15

個人的には、NLPフィールドに固有ではないものと、このレベルのメタデータを超えて移動し始めてもツールとして使用できるほど十分に一般的なものを使用することを推奨します。特に、開発環境に関係なく使用できる形式と、それが関連する場合(トークン化など)に基本構造を保持できる形式を選択します。

奇妙に思えるかもしれませんが、私は正直に提案しJSONます。非常によくサポートされており、多くの構造をサポートしており、十分な柔軟性がないため、十分に強力でないためにそこから移動する必要はありません。たとえば、次のようなものです。

{'text': 'I saw the company's manager last day.", {'Person': [{'name': 'John'}, {'indices': [0:1]}, etc...]}

ここでNLP固有のフォーマットよりも優れている1つの大きな利点はJSON、あらゆる環境で解析できることです。とにかくフォーマットを編集する必要があるため、JSONは短い距離を与える非常に簡単な編集に適しています。他の形式に。

必要に応じて、トークン化情報を暗黙的に保存することもできます。

{"text": ["I", "saw", "the", "company's", "manager", "last", "day."]}

編集:メタデータのマッピングを明確にすることは非常にオープンですが、ここに例があります:

{'body': '<some_text>',
 'metadata': 
  {'<entity>':
    {'<attribute>': '<value>',
     'location': [<start_index>, <end_index>]
    }
  }
}

それがお役に立てば幸いです。さらに質問がある場合はお知らせください。


Web開発者として、JSONは私にとって完全に合理的なように思えますが、単語をエンティティにマッピングする正確な形式について詳しく説明していただけますか?
アミールアリアクバリ14年

@AmirAliAkbari回答を更新して詳細を追加しました。
インディコ14年

7

通常、タグが重複する可能性があるため、XMLタグを使用してこの方法でドキュメントにタグを付けることは望ましくありません。

UIMAGATEおよび同様のNLPフレームワークは、テキストとは別のタグを示します。例えば、各タグ、PersonACMEJohnなどのタグが開始する位置と終了位置として記憶されます。したがって、tagのACME場合、位置11で始まり位置17で終わるように格納されます。


7

ガキの注釈ツールは、私のコメントのとおり、あなたのために役に立つかもしれません。私はそれらの多くを試してみましたが、これは私が見つけた最高のものです。優れたユーザーインターフェイスがあり、さまざまな種類の注釈をサポートできます。注釈は、各注釈と元のドキュメント内の場所を含む個別の.annotファイルに保存されます。ただし、最終的にスタンフォードNERツールなどの分類器に注釈を送りたい場合は、何らかの操作を行ってデータを受け入れ可能な形式に変換する必要があります。


1

存在するすべてのデータを記述するのは非常に難しい作業ですが、データモデルを使用できます:http : //schema.org/、ここで情報の構造タイプです。以前の実行は、MarkUpテクノロジーを実装することを目的としていたため、タスクに役立つ可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.