関口宏司のLuceneブログ

OSS検索ライブラリのLuceneおよびそのサブプロジェクト(Solr/Tika/Mahoutなど)について
<< Heliosearch/Solrオフヒープフィルタ | main | word2vec for Lucene ご紹介 >>
テキストアノテーションツール brat がすごい件

brat は OSS のテキストアノテーションツールである。GUI(ビジュアルと操作性)とできあがりのアノテーション情報のわかりやすさ(シンプルなフォーマットが自作NLPプログラムから扱いやすい!)、導入の簡単さがすばらしいのでここで紹介しよう。

brat のインストール

Apache などの Web サーバ上で動かして本格的に使う方法と、個人的にさくっと立ち上げて使う方法があり、ここでは後者を紹介する。この場合インストールは簡単で、brat を適当なディレクトリにダウンロードして展開する。

$ mkdir work
$ cd work
$ wget http://weaver.nlplab.org/~brat/releases/brat-v1.3_Crunchy_Frog.tar.gz
$ tar xvzf brat-v1.3_Crunchy_Frog.tar.gz
そして、次のようにインストールのスクリプトを実行して質問に答えれば終わりである。
$ cd brat-v1.3_Crunchy_Frog
$ ./install.sh
# brat にログインするユーザ名を新規設定する。
Please the user name that you want to use when logging into brat
editor
# パスワードを入れる。
Please enter a brat password (this shows on screen)
annotate
# メールアドレスを入れる。
Please enter the administrator contact email
example@brat.org

コーパスの準備

次にアノテーションを入れる対象のコーパスを data ディレクトリの下に用意する。ここでは livedoorニュースコーパスを使った例を示す。

$ wget http://www.rondhuit.com/download/ldcc-20120915.tar.gz
$ tar xvzf ldcc-20120915.tar.gz
コーパスファイルは UTF-8 で保存され、.txt の拡張子でなければならない。さらに、次のようにアノテーションを実行する .txt ファイルひとつひとつに対応する空の .ann ファイルをあらかじめ用意しておく必要がある。
$ find text -name '*.txt' | sed -e 's|¥.txt|.ann|g' | xargs touch

固有表現タグ設定と brat の起動

brat は係り受けのような構造的アノテーションもつけることができるが、本記事では固有表現タグをつける例を示す。デフォルトの状態でもいくつかの固有表現タグが設定されているが、ここでは独自タグを設定してみる。livedoorニュースコーパスを tar で展開したときにできた text ディレクトリの直下に、次のように2つの設定ファイルを作成する。

$ cd text
$ cat > annotation.conf <<EOF
> [entities]
> ORGANIZATION
> FACILITY
> PERSON
> TITLE
> LOCATION
>
> [relations]
> [events]
> [attributes]
> EOF
$
$ cat > visual.conf <<EOF
> [labels]
>
> [drawing]
> ORGANIZATION bgColor:#8fb2ff                                                                                                                
> FACILITY bgColor:#aaaaee                                                                                                                    
> PERSON bgColor:#ffccaa                                                                                                                      
> TITLE bgColor:#7fe2ff                                                                                                                       
> LOCATION bgColor:#6fffdf                                                                                                                    
> EOF
最初の設定ファイルはタグの設定、2つめはタグの色の設定である。なおこれらは必要最低限の設定である。設定ファイルを完璧に設定したい方は、brat ディレクトリ内に設定ファイルがあるので、そちらを参照していただきたい。

以上の設定が終われば、brat をスタンドアロンモードで起動できる。なお、brat は Python で書かれているので、Python の環境が必要である。
$ cd ../..
$ python standalone.py

brat へのログイン

上の起動時に表示された URL http://127.0.0.1:8001 にブラウザからアクセスする。すると、次のような画面が表示される。

brat 起動後

まだログインしていないのでここは一旦 [Cancel] をクリックする。そして上のブルーの部分にマウスポインタを持って行くと、右上にログインボタンが現れるのでクリックする。すると、次のログイン画面が表示されるので、前のインストール時に指定したユーザ情報(editor / annotate)を使ってログインする。

brat ログイン画面

brat を使ってテキストアノテーション

ログインしたらコーパスコレクションを選択する。それにはタブキーを押下するか、上のメニューから [Collection] を選んでクリックする。すると、次のコーパスコレクション選択画面になる。

brat コレクション選択画面

ここでは text ディレクトリの下の movie-enter ディレクトリの下から適当なファイルを選択する。すると、そのテキストファイルが表示されるので、その中の「宮崎あおい」に PERSON タグをつけるためマウスドラッグする。すると、次のようにタグ一覧がポップアップ表示される。

brat タグ一覧表示

ここでは当然 PERSON を選択して [OK] をクリックする。これを繰り返していくと、次のようにテキストがアノテーションされる。

brat によるアノテーション済みテキスト

シンプルなテキストアノテーション情報

このときすでに、サーバサイドの対応する .ann ファイルには次のようにアノテーション情報がシンプルなフォーマットで記録されている。

$ cat movie-enter-5840081.ann
T1	PERSON 81 86	宮崎あおい
T2	PERSON 87 90	堺雅人
T3	TITLE 1046 1048	さん
T4	PERSON 447 450	堺雅人
T5	PERSON 975 977	宮崎
T6	TITLE 977 979	さん
T7	PERSON 980 981	堺
T8	TITLE 981 983	さん
T9	PERSON 1021 1023	宮崎
T10	PERSON 1196 1197	堺
T11	PERSON 1245 1247	宮崎
T12	PERSON 1254 1255	堺
T13	PERSON 947 949	宮崎
タグをつけた順番で記録されているので、プログラムで読み込むときは、3〜4列でソートする必要があるだろう。

SolrMahoutのトレーニングコース、ただいま2月の受講者を募集中です!

Mahout トレーニングコース受講者のインタビュー記事はこちら

| 関口宏司 | NLP | 08:37 | comments(0) | trackbacks(0) |









http://lucene.jugem.jp/trackback/478
+ Solrによるブログ内検索
+ PROFILE
 123456
78910111213
14151617181920
21222324252627
28293031   
<< May 2017 >>
+ LINKS
検索エンジン製品 - 比較のポイント
商用検索エンジンを購入した企業担当者は読まないでください。ショックを受けますから・・・
>>製品比較 10のポイント
+ Lucene&Solrデモ
+ ThinkIT記事
+ RECOMMEND
Apache Solr入門 ―オープンソース全文検索エンジン
Apache Solr入門 ―オープンソース全文検索エンジン (JUGEMレビュー »)
関口 宏司,三部 靖夫,武田 光平,中野 猛,大谷 純
+ RECOMMEND
Lucene in Action
Lucene in Action (JUGEMレビュー »)
Erik Hatcher,Otis Gospodnetic,Mike McCandless
FastVectorHighlighterについて解説記事を寄稿しました。
+ RECOMMEND
+ SELECTED ENTRIES
+ RECENT COMMENTS
+ RECENT TRACKBACK
+ CATEGORIES
+ ARCHIVES
+ MOBILE
qrcode
+ SPONSORED LINKS