自然言語処理とラピッドアノテーションツール「brat」

AIの発展には学習の精度向上が必須です。そのための基本作業として、画像認識や自然言語処理を行う上での「アノテーション」が重要となります。

ここでは、なぜアノテーションが必要か?と、その作業を効率化するオープンソースライセンスで提供されるラピッドアノテーションツール、「brat」について説明します。

アノテーションとは?

アノテーションとは、対象となるデータに対し、データに関連する「メタデータ」(情報) を付与することを言います。対象となるデータには、

  • テキスト
  • 画像
  • 動画
  • 音声

など様々なフォーマットがあり、それぞれのデータに対して情報を更かしていくことになります。

画像であれば、対象の画像の中で情報を更かしたいエリアを選択し、そのエリアに対するメタデータを付加します。文字であれば、文章を語句ごとに区切り(分かち書きと言います)、それぞれの語句にメタデータを付加します。

AIは、元となるデータそのままでは、何を意味するものかを判別することはありません。データに対して何らかの判断を行うために、アノテーションを行います。このデータにより、「教師あり学習」が行われます。※教師ありなし学習の違いについては割愛。

自然言語処理においては、人名か物質名かで分かれる名詞、動詞と形容詞による感情や背景と行動などをアノテーションすることで、発言や論文に対するアノテーションを行っていきます。

これを複数名で行えるツールが、「brat」です。

bratの特徴

bratは、オープンソースライセンス (MIT) で提供されている自然言語処理向けのアノテーションツールです。

[sc_Linkcard url=”http://brat.nlplab.org/index.html”]

アノテーション作業の効率化が図れるだけでなく、シンプルなフォーマットで出力されることで、多くの自然言語処理環境において活用できることがメリットとなっています。

WindowsやMacOSでも利用できます。早速、bratを利用してみましょう。

AD

bratの利用方法

1. bratをダウンロード

必要なファイルはTOPページからダウンロードします。

バージョンは1.3となっています。

2. bratをインストール

ダウンロードファイルを任意のフォルダにおいて解凍します。「brat-v1.3_Crunchy_Frog」フォルダが現れるので、移動後にインストールを実行します。

$ tar xvzf brat-v1.3_Crunchy_Frog.tar.gz
$ cd brat-v1.3_Crunchy_Frog
$ ./install.sh

ログインに必要なユーザー名・パスワード・メールアドレスを聞かれるので、1つ1つ答えていけば、インストール完了です。

アノテーションをするデータは、「brat-v1.3_Crunchy_Frog」以下の「data」フォルダに配置します。形式は.txtになります。併せて、.txtファイルと同名の.annファイルを用意してください(空でOK)。アノテーションされた情報が.annファイルに保存されます。

3. bratの起動

bratはpythonで実行されます。2.5以上で3では動きません。

$ python2 standalone.py

Serving brat at http://127.0.0.1:8001

bratが起動されたメッセージが表示されたら、「http://127.0.0.1:8001」にブラウザでアクセスします。

無事アクセスできました。

「Document」欄を見ると、いくつかのサンプルtxtが用意されています。「examples」フォルダ内のどれかを開いてみてください。

既にアノテーションされた状態のファイルを確認することができます。追加で何か単語をアノテーションする場合は、ドラックして選択すると…

テキストに対して、どのタイプとしてアノテーションするか?やオプションなども選択できます。アノテーションタイプは、「annotation.conf」ファイルで定義できます。

ルールベースにしろ機械学習にしろ必要なアノテーション作業を、GUIかつ複数人でできるのはかなり便利です。


現在は様々なクラウドサービスによって自然言語処理環境が用意されています。しかしながら、独自の学習環境を構築するケースも少なくない中で、このようなオープンソースツールの利用は検討の余地も高いかと思われます。

バージョンアップが今後されるかは微妙ではありますが、アノテーション設計のトレーニングツールとしても、一度利用してみる価値はあるツールです。