1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Watson Knowledge Studio(WKS)のアノテーション作業手順 その1

Last updated at Posted at 2018-04-15

#1. 1. 待ち合わせ日時を含む100件以上のメールを用意する
前回からの続きです。
精度を向上させるために試行錯誤を繰り返していくと、結果的に少なくとも100件以上のメールが必要になると考えられます。個人で100件以上のメールを集めたり、作成したりするのは大変ですので、周囲の皆様の協力を得る必要があります。この場を借りてお礼申し上げます。

#2. 最初に数十件程度でモデルを作成する
要は、延々とDocumentsに含まれる日付に関する単語をクリックして(=選択して)、EntityとしてDATEを割り当てて、という繰り返し作業が精神的に辛くてしょうがないので、精度が適当でもよいので、とにかく数十件程度でGround truthを作成して、プレアノーテションを実行してみよう、という意図です。単語の出現頻度が1単語/textくらいだったら許容範囲ですが(それでも、100件以上をアノテーションすると終わりの見えない作業できついが)、打ち合わせ候補日時などなどでテキストの最初から終わりまで読んで10件以上をアノテーションする、これが延々と続くと思うと本当に辛い。当然ですが、プレアノテーションの結果、全く関係ない単語がDATEとしてアノテーションされてしまったり、DATEとしてアノテーションされるべき単語が手つかずだったりすることは、よくあります。それは、プレアノテーションのためのGround truthの精度に依存しています。経験的には、あまりにもシンプルすぎる文面は不適切です。なるべく、複雑でアノテーション対象になる単語が多く含まれる文面が望ましいです。かといって、Ground truthの精度を上げるために作業量を増やすとプレアノテーションの意味がなくなってしまいます。結局、適当に数十件程度に決めます。
なお、WKSによるプレアノテーションは、この記事で扱っているヒューマンアノテーションによるGround truthだけでなく、辞書、ルールベースでも可能です。そして、日付を抽出する場合は、ルールベースは有効な手段です(が、今回は取り扱っておりません)。

##2.1 Workspace作成とType SystemのUpload 
IBM Cloudにログインし、WKSのWorkspaceを作成します(Language of documentsでJapaneseを選択しています)。
002.png

そして、Asset & Tools - Entity TypesでUploadをクリックし、事前にローカルにダウンロードしていたen-klue2-types.jsonをドラッグアンドドロップでType SystemとしてUploadします。
003.png

Type Systemとはアノテーションの元ネタになるもので、DATE、TIME、LOCATIONなど、文章中の単語の属性を意味します(主観的解釈であり、当然、それだけではありません)。正確な定義は、こちらに記載されています。en-klue2-types.jsonはIBMが広範囲なニュース記事の分析結果に基づいてチュートリアル用に提供しているType Systemです。自分で最初からType Systemを定義することは可能ですが、アノテーション中に、その都度、属性の定義を追加してアノテーションして、途中から定義が納得できなくなってやり直すことになる、など本当に本当に大変なので、まずは、チュートリアル用のen-klue2-types.jsonを使用します。
004.png

##2.2 DocumentのUploadからモデル作成
DocumentをUploadします。複数のテキストファイルを選択し、ドラッグアンドドロップします。
005.png

次にAnnotation setを作成します。Base setにUploadした一連のDocumentが指定されていることを確認します。Overlapは複数のメンバーでアノテーションを実施する際に重複する割合です。例えば、10件のファイルを2人でアノテーションすると場合にOverlapを100%に設定すると、メンバーごとに10件のテキストファイルをアノテーションすることになります。複数のメンバーで同一のファイルをアノテーションすることになるので非効率かもしれませんが、最終的にアノテーションの内容がメンバー同士で一致しないと次の処理に進めないようになっているのでアノテーションの精度が向上します。適当なSet nameとして、ここではSet1と設定します。
005.1.png

次にSet1にアノテーションを追記するためにTaskを作成します。
007.png

作成時にAnnotation setとしてSet1を選択します。
006.png

Set1タスクが作成されたら、Set1タスクをクリックして開きます。
008.png

Annotateをクリックして各ファイルに対してアノテーションを追加します。具体的には、文中の日付に関する単語を選択し、Entity-TypeでDATEを設定します。画像ではDATEとしてアノテーションされる単語は"6月29日(木)"のみですが、メールによっては、10個以上存在する場合、本当に疲弊しました。これが、プレアノテーションを行うきっかけになりました。さておき、アノテーションが完了したら、Saveします。Completeを選択することも可能ですが、やり直す場合は全DocumentをSubmit後にRejectする必要があるようです。不便ですので、ここではSaveしておいて、すべてのDocumentのアノテーションが終了したらまとめてSubmit all documentを選択します。アノテーションに関するキー操作(削除、undo、redoなど)についてはこちらのTipsで説明されています。なお、↓の画像におけるメール文面はサニタイズしてまして、登場人物はすべて仮名です。
009.png

全てのDocumentに関するアノテーションが完了したらSubmit all documentsをクリックします。
010.png

その後、Train and evaluateに進むためにAccept処理をする必要があります。Accept処理自体は複数メンバーでアノテーション作業を実施している状況で、メンバー間のアノテーション不整合が発生した場合に、解消されたことを確認して次の処理に進めるために存在します。Back to Workspaceをクリックし、再度日付抽出(Workspace)に入りなおします(そうしないと本環境ではAccept処理の画面が出てきませんでした)。
011.png

次にModel Management-PerformanceでTrain and evaluateを選択、アノテーションが完了しているSet1を選択し、Train and evaluateをクリックします。
013.png
014.png

Train and evaluateが完了したら、PrecisionやRecallの値が表示されます。また、Current version InsightsのBottom 10をクリックするとTop 10に表示が変わります。今回はDATEのみをアノテーションしていますのでDATEの横棒しか表示されていませんが、実際にはアノテーションを行ったEntityがリストされます。Detailed statisticsをクリックするとモデルに関する詳細を参照できます。この時点で、プレアノテーションを行うためのモデルが完成しました。
015.png

次に残りのメールに対してアノテーションを実施しますが、その前にModel Management - Versionsを開き、Snapshotを取得しておきます。作成されたモデルがどのように変化するかを把握したり、やり直したりできるようにするためです。

に続きます。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?