Watson Knowledge StudioのTutorialをやってみた （前編）

#はじめに

[Watson Knowledge Studio](https://www.ibm.com/marketplace/cloud/supervised-machine-learning/jp/ja-jp)（以下、WKS）は、[IBM Watson](https://www.ibm.com/smarterplanet/jp/ja/ibmwatson/)において、特定の業界に特化して用いられる言葉のニュアンス、意味や関係を理解する機械学習モデルを、開発者と専門家が協力して作成するクラウド・ベースのアプリケーションです。

[Watson Developer Cloud](http://www.ibm.com/watson/developercloud/)にはすでに[WKSのチュートリアル](http://www.ibm.com/watson/developercloud/doc/wks/wks_tutorials.shtml#tut_less5)が用意されています。本記事では前後編にわたり、このチュートリアルを実施します。

#チュートリアルの前に

[Watson](https://www.ibm.com/smarterplanet/jp/ja/ibmwatson/)はベースとして保有している知識があるため、学習にかかるコストを少なく抑えることができます。しかし、各業界や専門分野（流通、製造、金融、医療、保険、法律・・・）の知識をはじめから完全に習得しているわけではないため、それぞれの分野の専門家の手で新たに学習させる必要があります。WKSはそのような作業を支援するツールです。

WKSには次のような特長があります。

- **直感的なユーザーインターフェース**：WKSでは、わかりやすく可視化された直感的な最新のユーザーインターフェースが提供されています。これにより、操作に不慣れな初心者でも、高度なコーディングなどをすることなく、かんたんに機械学習モデルの正解データを作成することができます。

- **共同作業によるモデルの改善**：WKSでは、対象分野の専門知識や自然言語の微妙な違いをWatsonに入力する作業を複数の専門家で協力して実施し、各専門家が入力した内容を比較したり妥当性を確認したりすることができます。これにより、機械学習モデルの精度を向上させることができます。

- **機械学習によるモデルの改善**：WKSでは、機械学習を活用して学習データの拡張を行います。これにより、人間が一から十まですべてWatsonに覚え込ませる必要はなく、ある程度の量だけを学習させるだけで十分となり、少し異なる知識であれば自動的に類推し応用してくれるようになります。

- **多くのWatsonソリューションとの連携**：WKS上で作成したモデルは、他の多くのWatson製品と連携することができます。たとえば、モデルを[Watson Explorer](http://www.ibm.com/smarterplanet/jp/ja/ibmwatson/explorer.html)にインポートすると、そのモデルをドキュメントの分析に使用することができ、モデル内の単語の種類や単語間の関係などの情報から、様々な角度からの分析結果を自動的に作成してくれるようになります。

WKSを使用する流れはおおまかに次のようになります。

1. **ドキュメントのインポート**：対象となる業界のドキュメントを集めたものをWKSにインポートします。
2. **既存ドキュメントのアノテーション]**：そのドキュメントに登場する単語の分類([entity](#entity-type))と単語間の関係([relation](#relation-type))を定義する[type system](#type-system)を作成し、このtype systemに基づいてドキュメントに登場する単語に正解データを付与（[アノテーション](#アノテーション)）します。
（例）`犬(dog)`を「ペット(PET)」に分類する。

3. **モデルの学習**：正解データを利用してモデルの反復学習を行い、モデルの精度を改善します。
4. **新しいドキュメントのアノテーション**：得られたモデルを利用して、未知の新しいドキュメントをアノテーションします。
（例）`犬(dog)`を「ペット(PET)」に分類していたことから、`ハムスター（hamster）`も「ペット(PET)」に分類する。


![WS000097.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/001e36f4-9198-e5fe-53dd-3d310f067499.jpeg)

ここで、いくつか出てきた用語について解説します。

※entity, relationは以下の記事でも登場しましたが、後述する通り、本記事で登場するものは同じ概念と考えて差し支えないものです。

 - [Watson ConversationのTutorialを日本語でやってみた （前編）](http://qiita.com/sukusuku_watson_editorial_room/items/2ab2b4738e31b276b91e)
 - [Watson ConversationのTutorialを日本語でやってみた （後編）](http://qiita.com/sukusuku_watson_editorial_room/items/e3111d2ccce996db7feb)

##アノテーション

アノテーションとは、ドキュメントに含まれるテキストに対して「正解データ」を付与する作業です。

例として、チュートリアルで用いるドキュメント[`documents-new.csv`](https://github.com/watson-developer-cloud/doc-tutorial-downloads/raw/master/knowledge-studio/documents-new.csv)（英語）のTechnology - gmanews.tv`の一部（日本語訳）を以下に示します。

>NCR, which counts **IBM** **founder** **Thomas Watson** as one of its early employees,...
>**IBM**の**創始者**である**トーマス・ワトソン**を初期の従業員の1人として数えているNCRは、・・・

WKSにおけるアノテーションは、たとえば、上記ドキュメントのテキストに対して、

- `IBM`は「組織（ORGANIZATION）」の一種である。→分類
- `トーマス・ワトソン（Thomas Watson）`は「人（PERSON）」の一種である。→分類
- `トーマス・ワトソン（Thomas Watson）`は`IBM`の創始者（founder）である。→関係
- ……

といった、単語の分類(entity)や単語間の関係(relation)といった情報を付与する作業になります。このような、単語の分類や単語間の関係の種類を定義するのが、後述のtype systemと呼ばれるものです。

アノテーションを行う主体をアノテーターといいます。とくに、人間の手でアノテーションを実施する場合はヒューマン・アノテーター、機械学習によりアノテーションを実施する場合は機械学習アノテーターなどと呼びます。

WKSではドキュメントのアノテーションをGUIで行うことができます。各単語の分類は色分けして表示され、各単語間の関係は単語を結ぶ矢印によって表示されます。これらの設定はマウスによるテキスト選択やボタン操作によって手軽に実施することができます。下の図は、先ほどご紹介したテキストを実際にアノテーションしている例です。`IBM`は`組織(Organization)`、`トーマス・ワトソン(Thomas Watson)`は`人(PERSON)`に分類され、`トーマス・ワトソン(Thomas Watson)`は`IBM`の`創始者(founder of)`として矢印で関連付けられています。
![WS000040.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/0b201c14-77f2-802b-9fb9-1a31d2e129a3.jpeg)

##Type System
type systemは、アノテーションの際にドキュメントに付与する情報の種類の定義であり、単語の分類を表すentity typeと、異なるentity間の関係を表すrelation typeからなります。

![type_system.png](https://qiita-image-store.s3.amazonaws.com/0/146022/b32a33ae-0f49-d721-f3a5-929ed51d7bdc.png)

###Entity Type

entity typeは単語の種類を分類したものです。以下例を示します。
- `メアリー(Mary)`, `ボブ(Bob)`, `トーマス・ワトソン(Thomas Watson)`, `オバマ大統領(President Obama)`などは、`人(PERSON)`entity typeとしてアノテーションされます。
- `IBM`, `Google`, `Microsoft`は、`組織(ORGANIZATION)`entity typeとしてアノテーションされます。

entity typeは以下2つの属性によって、さらに細かく分類されます。

- **Role**: entity typeを文脈によって定義づけるものです。
- **Entity Subtype**: entity typeをさらに分類するものです。

例として、チュートリアルで用いるKLUE type system(※)[`en-klue2.zip`](https://github.com/watson-developer-cloud/doc-tutorial-downloads/raw/master/knowledge-studio/en-klue2.zip)の52個のentity typeのうち一部を以下に示します。
※KLUE(Knowledge from Language Understanding and Extraction)はニュース記事のコレクションに基づいたtype systemであり、多くの機械学習モデルにおける基本的なtype systemとして利用されています。

| Entity Type Name | Roles | Subtypes | 
|:--|:--|:--|
| GPE(※1) | GPE, LOCATION, ORGANIZATION, PEOPLE, PERSON, PERSONPEOPLE | OTHER, UNSPECIFIED, AREA, COUNTRY |
| MONEY | MONEY | OTHER, UNSPECIFIED, WORTH, GAINLOSS |
| ORGANIZATION(※2) | ORGANIZATION, FACILITY, PEOPLE, PRODUCT, TICKER, TITLEWORK | OTHER, UNSPECIFIED, MULTIGOV, GOVERNMENT, COMMERCIAL, EDUCATIONAL, POLITICAL, RELIGIOUS, SPORTS, MILITARY |
| … | … | … |

<!---
| PERSON | PERSON |   |
| PEOPLE | PEOPLE |   |
たとえば、「Maryがフランスに行った」という文の「フランス」という言葉は、`GPE`entityでアノテーションされます。しかし、この文脈のフランスはMaryにとっては目的地でもあるため、`LOCATION`をRoleとして追加することでentity typeを修飾します。また、`GPE`entityのsubtypeとしては、`AREA`, `COUNTRY`などが含まれます。
--->

※1 [GPE(Geo-Political Entity)](https://en.wiktionary.org/wiki/geopolitical_entity):なんらかの政治的構造に関連する地理的領域のこと。

※2 1つのentityに対して、複数のentity subtypeやroleを定義できます。以下例を示します。

- `組織(ORGANIZATION)`entityのroleには、`組織(ORGANIZATION)`の他にも`施設(FACILTY)`などが含まれています。`IBM`という単語は`組織(ORGANIZATION)`entity typeとしてアノテーションされますが、`IBMで研修をおこなう`という文では`施設`という役割を果たしています。

<!--
- `組織(ORGANIZATION)`entityのroleには、`組織(ORGANIZATION)`の他にも、`施設(FACILTY)`, `PEOPLE(人々)`などが含まれています。`IBM`という単語は`組織(ORGANIZATION)`entity typeとしてアノテーションされますが、`IBMで研修をおこなう`という文では`施設`という役割を、`IBMに仕事を依頼する`という文では`PEOPLE`という役割をそれぞれ果たしています。
-->

- `組織(ORGANIZATION)`entityのsubtypeには、`政府(GOVERNMENT)`、`教育(EDUCATIONAL)`、`宗教(RELIGIOUS)`などが含まれています。`国会(parliament)`、`大学(university)`、`教会(church)`などは`組織(ORGANIZATION)`entity typeとしてアノテーションされるとともに、`国会(parliament)`は`政府(GOVERNMENT)`、`大学(university)`は`教育(EDUCATIONAL)`、`教会(church)`は`宗教(RELIGIOUS)`entity subtypeとしてアノテーションされます。

<!--
分野に関連性があるとみなすテキストの範囲です。
たとえば、自動車に関するtype systemでは、`エアバッグ`、`フォードエクスプローラー`、`チャイルドシート`などが関連するmentionとなり得ます。

- **Mention Type**: 品詞によってmentionを修飾します。
 - `NAM`：固有名詞
 - `NOM`：一般名詞
 - `PRO`：代名詞
 - `NONE`：上記3つのいずれでもない。

- **Mention Class**: 具体的なものか、一般的なものか、否定的なものかによってmentionを修飾します。
 - `SPC`：具体的なmention。"the book"、「9月に発生したハリケーン」など。
 - `GEN`：一般的なmention。"a book"、「ハリケーンが通常秋に発生する」など。
 - `NEG`：否定的なmention。"no book"など。

アノテーターの学習の際、アルゴリズムは否定的な例と肯定的な例の両方から学ぶことができるので、両方のmentionをマークすることは重要です。
-->

###Relation Type

2つのentity間の順序付けられた関係を定義します。以下例を示します。
- `メアリーはIBMで働いている(Mary works for IBM)`という文からは、`～で働いている(employedBy)`relation typeがアノテーションされます。
- `IBMの創始者であるトーマスワトソン(IBM founder Thomas Watson)`という文からは、`～の創始者である(founderOf)`relation typeがアノテーションされます。

例として、チュートリアルで用いるKLUE type system[`en-klue2.zip`](https://github.com/watson-developer-cloud/doc-tutorial-downloads/raw/master/knowledge-studio/en-klue2.zip)の2177個のrelation typeのうち一部を以下に示します。

| Relation Type | First Entity Type / Role | Second Entity Type / Role | 
|:--|:--|:--|
| colleague | PEOPLE, PERSON, PERSONPEOPLE | PEOPLE, PERSON, PERSONPEOPLE |
| employedBy | PEOPLE, PERSON, GPE, PERSONPEOPLE | GPE, WEB, PERSONPEOPLE, PERSON, PEOPLE, ORGANIZATION
| founderOf | GPE | ORGANIZATION |
| founderOf |PERSON, PEOPLE, PERSONPEOPLE | FACILITY, ORGANIZATION, WEB, GPE |
| … | … | … |

一部のrelation typeでは、entityの順序が重要になります。以下、例を示します。
- `～で働いている(employedBy)`relation typeでは、`メアリーはIBMで働いている(Mary employedBy IBM)`は有効ですが、`IBMはMaryで働いている(IBM employedBy Mary)`は無効です。
- `～の同僚である(colleague)`relation typeでは、`メアリーはボブの同僚である(Mary colleague Bob)`も`ボブはメアリーの同僚である(Bob colleague Mary)`も有効です。

<!--
| siblingOf | ANIMAL | ANIMAL |
| siblingOf | PERSONPEOPLE, PEOPLE, PERSON | PERSONPEOPLE, PEOPLE, PERSON |
| spouseOf | ANIMAL | ANIMAL |
| spouseOf | PERSONPEOPLE, PEOPLE, PERSON | PERSONPEOPLE, PEOPLE, PERSON |
-->

##辞書

辞書には、ドキュメントで使用される単語の見出し語とその類義語、品詞が含まれています。

例として、チュートリアルで用いる、`ORGANIZATION`entityに対する辞書データ[`dictionary-items-organization.csv`](https://github.com/watson-developer-cloud/doc-tutorial-downloads/raw/master/knowledge-studio/dictionary-items-organization.csv)の一部を以下に示します。

| Lemma（見出語）     | Surface Forms（類義語）                | Part of Speech（品詞） | 
|:--------------------|:---------------------------------------|:-----------------------|
| Apple               | Apple Inc., Apple                      | Noun（名詞）           |
| British Academy     | BAFTA/LA, British Academy              | Noun（名詞）           |
| Burger King         | Burger King Holdings Inc., Burger King | Noun（名詞）           |
| …                   | …                                      | …                      |

#チュートリアル

いよいよ、チュートリアルを実施します。

[チュートリアル](http://www.ibm.com/watson/developercloud/doc/wks/wks_tutorials.shtml#tut_less5)は下記のような13個のLessonから構成されています。
本記事ではこの[チュートリアル](http://www.ibm.com/watson/developercloud/doc/wks/wks_tutorials.shtml#tut_less5)を下記の通り前後編に分けて実施します。

- 前編（今回）
 - Lesson 1: ユーザーロールの割り当ての確認
 - Lesson 2: プロジェクトの作成
 - Lesson 3: type system の作成
 - Lesson 4: ドキュメントの追加
 - Lesson 5: ドキュメントセットの作成
 - Lesson 6: 辞書の追加
- 後編（次回）
 - Lesson 7: 辞書ベースアノテーターによる事前アノテーション
 - Lesson 8: アノテーション・タスクの作成
 - Lesson 9: ドキュメントのアノテーション
 - Lesson 10: アノテーター間合意分析
 - Lesson 11: アノテーション済ドキュメント間の競合の解消
 - Lesson 12: 機械学習アノテーターの作成
 - Lesson 13: 機械学習アノテーターによる事前アノテーション

推奨環境は次のとおりです。

- ブラウザ：Mozilla Firefox, Google Chrome（最新版）

##Lesson 1: ユーザーロールの割り当ての確認

WKSユーザーとして登録されているすべてのユーザーIDを一覧表示させ、チュートリアル中の作業を実施する上で必要な権限が付与されているか確認します。

各ユーザーIDは、次の3つの役割のいずれかを持ちます（権限は上にいくほど強くなります）。

1. **SUPER_USER**：WKSインスタンス上の**すべての**プロジェクトで「アノテーションプロセスマネージャ（※）」として機能し、さらにヒューマン・アノテーターとしても機能します。
2. **MASTER_ADMINISTRATOR**：WKSインスタンス上の**自分が作成した**プロジェクトで「アノテーションプロセスマネージャ」として機能し、さらにヒューマン・アノテーターとしても機能します。
3. **HUMAN_ANNOTATOR**：ヒューマン・アノテーターとして機能しますが、割り当てられたドキュメントセットのみを表示できます。

※**アノテーションプロセスマネージャ**は、プロジェクトの作成にはじまり、ドキュメントセットに対するヒューマン・アノテーターの割り当て、アノテーションの承認や競合の解消、機械学習アノテーションの実行などを行うことができます。

実際のプロジェクトでは複数の`HUMAN_ANNOTATOR`によってアノテーションが実施されますが、このチュートリアルでは`SUPER_USER`権限をもつユーザーID1つのみを使用することとします。

>1. [WKSインスタンス](https://gateway.watsonplatform.net/wks/api/sbs-dashboard/)にアクセスします。
>2. 右上の`Menu`から`Settings`をクリックして`User Account Management`ページを開きます。
>![WS000024.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/2fa7dcda-1715-3942-df18-03e87db6cf91.jpeg)
>3. 自分のユーザーIDが`SUPER_USER`ロールをもつことを確認します。
>![WS000026_modified.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/68f6c3f5-6c74-6846-27d9-f1905f0a1416.jpeg)

##Lesson 2: プロジェクトの作成

プロジェクトを作成します。

プロジェクトは、type system、ドキュメント、辞書、ヒューマン・アノテーターによって追加されるアノテーションなど、機械学習アノテーターを作成するために必要なすべての要素を定義するものです。

>1. `Create New Project`をクリックします。
>![WS000002.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/119a2b60-938d-2fbb-23a8-d3f363ca5ce3.jpeg)
>2. プロジェクトの詳細を下記のように設定し、`Save`をクリックします。
>    - `Project Name`欄：`マイ・プロジェクト`
>    - `Project descrription`欄：`Watson Knowledge Studio チュートリアル・プロジェクト`
>    - `Language of Documents`：`English`
>![WS000003.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/7a6d1410-a607-59d6-e879-8291d4c38e6b.jpeg)

##Lesson 3: Type Systemの作成

type systemを作成します。本チュートリアルではサンプルとしてKLUE type system[`en-klue2.zip`](https://github.com/watson-developer-cloud/doc-tutorial-downloads/raw/master/knowledge-studio/en-klue2.zip)をダウンロードしてインポートします。
さらにそれに対して編集をかけてみます。ここでは、`MONEY`entity typeのroleから`AWARD`roleを削除してみます。

>1. [`en-klue2.zip`](https://github.com/watson-developer-cloud/doc-tutorial-downloads/raw/master/knowledge-studio/en-klue2.zip)をダウンロードします。

>2. `Type System`ページにてImportをクリックします。
>![WS000004.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/9420a6dd-b584-b98b-f602-5caadfce2203.jpeg)

>3. ダウンロードした[`en-klue2.zip`](https://github.com/watson-developer-cloud/doc-tutorial-downloads/raw/master/knowledge-studio/en-klue2.zip)をウインドウ内へドラッグアップドロップして、`Import`をクリックします。
>![WS000004.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/d5faaafc-64f3-2771-9612-b1883cf4e7fc.jpeg)
>インポートされたtype systemが表に表示されます。
>![WS000006.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/f2fc9b5b-7f37-3904-7a60-a8ddba72190c.jpeg)

>4. `MONEY`entity typeを検索して表示し、`MONEY`行内をダブルクリックします。
`Roles`列の`AWARD`行の削除(`Delete a role`)アイコンをクリックして、Saveをクリックします。
>![WS000007.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/866e45e8-ccad-71e7-6c01-89ece1735c15.jpeg)
>↓
>![WS000008.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/e432c95c-bbb4-01c5-db6c-bda5bc595c8a.jpeg)
>↓
>![WS000009.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/c8708d37-9369-db1f-c780-f97e1d3bd602.jpeg)
>↓
>![WS000010.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/84cb0094-f999-7c9f-ad0a-7d814bdf8446.jpeg)

##Lesson 4: ドキュメントの追加

ドキュメントを追加します。本チュートリアルではサンプルとしてドキュメント[`documents-new.csv`](https://github.com/watson-developer-cloud/doc-tutorial-downloads/raw/master/knowledge-studio/documents-new.csv)をダウンロードしてインポートします。

>1. [`documents-new.csv`](https://github.com/watson-developer-cloud/doc-tutorial-downloads/raw/master/knowledge-studio/documents-new.csv)をダウンロードします。
>2. `Documents`ページにて`Import`をクリックします。
>![WS000011.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/24f8f47c-3d0b-24f4-dc92-b06b4fcd4c04.jpeg)
>3. ダウンロードした[`documents-new.csv`](https://github.com/watson-developer-cloud/doc-tutorial-downloads/raw/master/knowledge-studio/documents-new.csv)をウインドウ内へドラッグアップドロップして、`Import`をクリックします。
>![WS000012.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/490ca757-e19d-fe8a-a778-3be7b7a57ad4.jpeg)
> インポートされたドキュメントが表に表示されます。
>![WS000013.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/7f48d025-0d2f-4e58-55a1-bc45c5f45c3a.jpeg)

##Lesson 5: ドキュメントセットの作成


Lesson 4でインポートしたドキュメントからドキュメントのひとかたまり（ドキュメントセット）を作成し、そのドキュメントのひとかたまりに対して、それをアノテーションする担当者（ヒューマン・アノテーター）を割り当てます。

実際のプロジェクトでは、ヒューマン・アノテーターごとにアノテーションの差異が出るため、同一ドキュメントから複数のドキュメントセットを作成してそれぞれを異なるヒューマン・アノテーターに割り当てることがよくあります。しかし、複数のユーザーIDが使用できない場合は、複数のドキュメントセットを同じヒューマン・アノテーターに割り当てることができます。このチュートリアルでは、2つのドキュメントセットを作成し、同じユーザーを2つのドキュメントセットに割り当てています。

なお、次回（後編）で扱うLesson 10: アノテーター間合意分析において、アノテーター間スコアを使用して各アノテーターごとのアノテーションを比較するには、少なくとも2人のヒューマン・アノテーターを異なるドキュメントセットに割り当てる必要があります。また、ドキュメントの一部がドキュメントセット間で重複するように指定する必要があります。

>1. `Documents`ページにて`Create Set`をクリックします。
>![WS000014.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/f45ea866-574f-bee7-a88d-c67858e9e764.jpeg)

>2. `Create Documents Sets`ウインドウにて、`(+)Add another set and human annotator`をクリックして新たなドキュメントセット用の欄を追加します。
>さらに、作成する新しいドキュメントセットごとに、必要な情報を下記のように指定し、`Save`をクリックします。
>    - `Overlap`欄：100
>    - `Annotator`欄：sample_user
>    - `Set Name`欄：Set 1
>    - `Annotator`欄：sample_user
>    - `Set Name`欄：Set 2
>![WS000015.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/5952ac4c-0e79-0c4c-811a-b792fd8909e2.jpeg)

>新しいドキュメントセットが作成され、`Documents`ページの表に表示されます。
>![WS000016.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/0bbd9e24-052b-94b3-0921-e70234c1cf31.jpeg)

<!--
デフォルトでは、`Create Documents Sets`では、すべての文書を含む基本セットと、新しいドキュメントセットの情報を指定できるフィールドが表示されます。
-->

上記設定では、2つのドキュメントセット`Set 1`、`Set 2`が作成され、それぞれにヒューマン・アノテーターとして`sample_user`を割り当てています。さらに`Overlap`欄に100を指定することにより、すべてのドキュメントが新しいドキュメントセットに含まれて、すべてのアノテーターによってアノテーションされるようになります。

なお一般に、ドキュメント$N$個をドキュメントセット$M$個に分割する場合に`Overlap`欄に$p(=0,1,…,100)$を指定すると、元のドキュメント$N$個のうち$p$％がすべてのドキュメントセットに含まれ、残りが$M$等分されて各ドキュメントセットに含まれるようになります。

<!--
なお一般に、ドキュメント$N$個をドキュメントセット$M$個に分割する場合に`Overlap`欄に$p(=0,1,\dots,100)$を指定すると、元のドキュメント$N$個のうち$p$％、すなわち$N\frac{p}{100}$個がすべてのドキュメントセットに含まれ、残りの$N\frac{100-p}{100}$個が$M$等分されて各ドキュメントセットに含まれるようになります。すなわち、各ドキュメントセットに含まれるドキュメントの個数はあわせて$N\frac{p+(100-p)/M}{100}$個になります。
チュートリアルでは`Overlap`欄に100を指定しているため、すべてドキュメント$N=14$個が2つのドキュメントセット`Set 1`、`Set 2`含まれることとなり、各ドキュメントセットに含まれドキュメントの個数は$N=14個$になります。すなわち、すべてのドキュメントがすべてのアノテーターによってアノテーションされるようになります。
-->

##Lesson 6: 辞書の追加

辞書を追加します。さらに、追加した辞書に、見出語の`IBM`を新たに追加します。

WKSに辞書を追加する際は、CSV形式のファイルを用意します。
今回のチュートリアルでは、[`dictionary-items-organization.csv`](https://github.com/watson-developer-cloud/doc-tutorial-downloads/raw/master/knowledge-studio/dictionary-items-organization.csv)という辞書ファイルをダウンロードして使用します。

>1. [`dictionary-items-organization.csv`](https://github.com/watson-developer-cloud/doc-tutorial-downloads/raw/master/knowledge-studio/dictionary-items-organization.csv)をダウンロードします。
>2. `Documents`ページにて`+`アイコンをクリックして辞書を追加し、各欄に以下を入力して、`Save`をクリックします。
>  - `Name`欄：`Test Dictionary`
>  - `Entity Type`欄：`ORGANIZATION`
>![WS000017.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/762c87a9-33f2-bcf5-215e-b7f936f30942.jpeg)
>3. `Import`をクリックします。
>![WS000018.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/6d3fdf4f-fc60-9f03-49dc-93ffd222cd5e.jpeg)
>4. ダウンロードした[`dictionary-items-organization.csv`](https://github.com/watson-developer-cloud/doc-tutorial-downloads/raw/master/knowledge-studio/dictionary-items-organization.csv)をウインドウ内へドラッグアップドロップして、`Import`をクリックします。
>![WS000019.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/31247ca8-adb4-5bc7-55ec-70c4bf0cd7ce.jpeg)
>10. `Add Entry`をクリックし、各欄に以下を入力して、`Save`をクリックします。
>  - `Surface Forms`列に`IBM`および`International Business Machines Corporation`と入力します。
>  - ラジオボタンを`IBM`にセットします。
>  - `Part of Speech`欄にて`Noun`を選択します。
>![WS000098.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/9b79e3ef-6e75-67c6-3134-450292a9f5b6.jpeg)
>↓
>![WS000103.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/20fa93bf-62d9-b333-a6a2-a3092ae3ccaf.jpeg)
>↓
>![WS000099.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/f58f684e-97a7-3989-c7c7-5fba9f2bbec4.jpeg)
>↓
>![WS000100.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/98081ffb-c7b2-b67e-ee8f-79f77f5281cf.jpeg)
>↓
>![WS000101.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/b1688f6d-caa0-202f-dfc0-4b86d95cdd05.jpeg)
>↓
>![WS000102.JPG](https://qiita-image-store.s3.amazonaws.com/0/146022/3ee6b11b-0828-2bc4-4701-84d07de876e5.jpeg)

#おわりに（後編に向けて）

今回（前編）では、WKSプロジェクトを作成して、type system作成、ドキュメント追加、ドキュメントセット作成、辞書の追加を実施しました。ここまでの手順で、ドキュメントのアノテーションの準備が整ったことになります。

次回（後編）では、この状態からアノテーションを実施します。

#お問い合わせ
ご質問がございましたら、こちらにもお問い合わせいただけます。

すくすくワトソン編集室: eb17685@jp.ibm.com