自然言語処理向けのデータ作成ツールの「doccano」を使ってみたので、まとめる
こんにちは。
最近、仕事で自然言語処理関係のプロジェクトをやっているのですが、その関係でdoccanoというツールを触ってみることになったので、使い方とかをまとめておきます。
doccanoとは
doccanoとは、オープンソースのテキストアノテーションツールです。
以下の三つのアノテーションタスクをすることができます。
- Text Classification
- Sequence Labeling
- Sequence to Sequence
demoサイトは以下から。
RESTful APIなども搭載されているので、結果の取得をAPI経由で行うなどもすることができます。
doccanoをとりあえずローカルで立ち上げてみる
doccanoをローカルでとりあえず試してみます。
pipでインストールして立ち上げる
以下のコマンドだけで立ち上げることができます。
$ pip install doccano $ doccano
これで、 http://0.0.0.0:8000/
にアクセスするとツールを見れます。
簡単ですね。
dockerで立ち上げる
dockerで立ち上げるのもそう難しくなく、以下のコマンドで対応できます。
$ docker pull doccano/doccano $ docker container create --name doccano \ -e "ADMIN_USERNAME=admin" \ -e "ADMIN_EMAIL=admin@example.com" \ -e "ADMIN_PASSWORD=password" \ -p 8000:8000 doccano/doccano docker container start doccano
これで、 http://localhost:8000/
にアクセスするとツールを見れます。
Sequence Labelingを試してみる
今回は、テキスト中の「偉い人」と「そうでない人」を識別するという意味不明なタスクを想定して、その表現部分をアノテーションしていくことをやってみようと思います。
ローカルで立ち上げてログインする
先ほどの方法でローカルで立ち上げます。ここから先は、AWSやGCPなどの環境で立ち上げても同じです。
ユーザー名とパスワードを入れます。
プロジェクトを作成する
入ると、プロジェクトの一覧を見ることができます。最初は、プロジェクトがないので、一覧には何もないですが、今回の私の例ですと、一つプロジェクトが作られています。
今回のアノテーションタスクに関するプロジェクトを立ち上げます。左上のCreateを押すと、以下のようなモーダルが出るので、それに入力します。
プロジェクトを作成して、プロジェクトのページに行くと、以下のような画面が見れます。
左側に、メニューがありますが、それぞれ以下の役割があります。
- Home:各ステップのやることがYoutubeの動画で学べる
- Dataset:AnnotationするデータをImport、Exportすることができ、またAnnotationをデータに対して行うことができる
- Labels:Annotationをするラベルを登録することができる
- Members:Annotationをするメンバーの一覧を確認できる
- Guideline:Annotationのガイドラインをここに記載することができる
- Statistics:Annotationの実施状況を確認することができる
データセットのインポート
早速、データセットのインポートをしてみます。サイドメニューからインポートをします。
以下のようなモーダルが出てくるので、お好きな方法でデータをインポートします。
Createと押すと、データの取り込みが行われます。
ラベルを作成する
今回のアノテーションでつけるラベルを作成します。
Createを押すと、以下のようなモーダルが表示され、必要な情報を記入します。
今回は、偉い人とそうじゃない人を当てるタスクを解きたいので、以下のようなラベルを作成しました。
これで準備完了です。あとはひたすらアノテーションをするだけです。
Annotatonを開始する
左上の「Start Annotation」からでもいいですし、以下の画像にあるようにDatasetの一覧からAnnotationしたいものからスタートしてもいいですし、なんでも大丈夫です。
Annotationをスタートさせると、以下のようにテキストが出てきます。マウスでテキストを洗濯すると、先ほど作成したラベルが表示され、どのラベルにするかを選択することができます。
選択すると、以下のようにラベルがテキストに対して付与されます。
そして、以下のようにラベルを付与した後に間違えたと思ったらバツボタンを押すことで、消すこともできます。
Annotationの実施状況を確認する
Annotationをこのように行っていくのですが、実施した状況については、以下のように統計情報として得ることができます。便利ですね。
Annotationした結果を受け取る
Annotationが終わったら、データをExportすることができます。以下の画面から、Exportを選択して、
モーダルに必要な情報を入力するとExportできます。
以上で一通りの機能については紹介しました。
感想・まとめ
今回のブログで紹介した以外にも、ショートカットキーで操作ができたり、他にも機能としてはいくつかありそう。
ただ、
- 1プロジェクトにつき1MBまでしかデータがImportできないっぽい…?
- Sequence Labelingでラベル付与しなかったものを完了ってするのどうするんだろうという気持ち
というような感じで、ちょいちょいどうしたらいいんだろうっていうところはあったので、使いながら確認して行こうかなーと思っています。
それでは。