この文書は、IBM Watson® Knowledge Studio 上の IBM Cloud® に関するものです。 以前のバージョンの Knowledge Studio on IBM Marketplace 向けの資料を参照するには、このリンクをクリックしてください。
ルール・ベース・モデルの作成 (試験段階)
このチュートリアルは、文書内で定義したテキスト・パターンを検出するために使用できるルール・ベース・モデルの作成方法を理解するのに役立ちます。
ルール・ベース・モデルは試験的で、実動デプロイメントでの使用を意図していません。 このモデルのサポートは十分な通知期間なしで廃止される場合があります。
ここでは、パターン month day, year
に一致する文書内のテキストを検出できるモデルを作成します。 例えば、このモデルは、May 1, 2010 という日付参照を検出します。 ルール・パターン自体を定義する前に、パターンを作成するのに役立つ成果物を作成します。そのような成果物には、テキスト内で月のメンションを認識する辞書クラスと、年のメンションを認識する正規表現クラスが含まれます。
学習目標
このチュートリアルを完了すると、以下のタスクの実行方法が分かります。
- クラスの作成
- ルールを定義するための文書の追加
- 辞書とクラスの関連付け
- 文字のシーケンスをキャプチャーするための正規表現の定義
- ルールの定義
このチュートリアルを完了するには、約 30 分かかります。 このチュートリアルに関連する他の概念を調べると、完了までの時間が長くなる可能性があります。
始めに
- サポートされているブラウザーを使用していることを確認してください。 詳しくは、ブラウザーの要件を参照してください。
- Knowledge Studio の開始が正常に完了しています。これにはワークスペースの作成、タイプ・システムの作成、辞書の追加が含まれます。
- Admin または Project Manager のいずれかの役割のユーザー ID を、少なくとも 1 つ持っている必要があります。 ユーザー役割については、Knowledge Studio のユーザー役割を参照してください。
結果
ルール・ベース・モデルを作成した後、それを以下のいずれかの方法で使用して、文書内のテキスト・パターンを検出できます。
- 機械学習モデルを作成する前に、文書に事前アノテーションを付ける。
- 他の Watson のサービスまたは製品に、モデルをデプロイまたはエクスポートする。
演習 1: 月の辞書の追加
この演習では、Knowledge Studio でワークスペースに辞書を追加する方法について学習します。 この辞書には、暦の月に関連する用語が含まれています。
このタスクについて
この後の演習では、この辞書に基づいてクラスを定義します。 このクラスを作成すると、文書内で検出された、この辞書内のすべての用語に、関連するクラス・タイプのメンションとして自動的にアノテーションが付きます。 辞書について詳しくは、『ワークスペースへの辞書の追加』を参照してください。
手順
-
次のものをダウンロードします:
dictionary-items-month.csv
ファイルをご使用のコンピューターにダウンロードします。 このファイルには、Knowledge Studio 辞書へのアップロードに適した辞書用語が CSV 形式で含まれています。
-
「アセット (Assets)」>**「辞書 (Dictionaries)」**をクリックします。
-
**「辞書の作成」**ボタンをクリックして、辞書を追加します。
-
**「名前」フィールドに
Month dictionary
と入力し、「保存」**をクリックして辞書を作成します。 新しい辞書が作成され、編集用に自動的に開かれます。 -
辞書ペインで、**「アップロード」**をクリックします。
-
ご使用のコンピューターから
dictionary-items-month.csv
ファイルを選択して、**「アップロード」**をクリックします。ファイルから辞書に用語がインポートされます。
演習 2: サンプル文書の追加
この演習では、定義するルールのタイプを示す言語パターンを含んだ文書を追加する方法について学習します。
このタスクについて
文書の追加について詳しくは、『ルールを定義するための文書の追加』を参照してください。
手順
-
次のものをダウンロードします:
documents-new.csv
ファイルをご使用のコンピューターにダウンロードします。 このファイルには、アップロードに適したサンプル文書が含まれています。
-
「ルール・ベース・モデル」>**「ルール」**をクリックします。
-
「文書 (Documents)」ページ見出しの横にある文書の追加アイコンをクリックします。
-
**「CSV ファイルのアップロード」**タブをクリックします。
-
前にコンピューターにダウンロードした
documents-new.csv
ファイルをクリックして参照し、**「アップロード」**をクリックします。文書のセットがメインの「文書」ページに表示されます。
演習 3: クラスの作成
この演習では、ルールの定義時に使用するクラスの定義方法について学習します。
このタスクについて
クラスについて詳しくは、『ルール』を参照してください。
手順
-
ワークスペースの**「ルール」ページで、右側のパネルの「クラス (Class)」ヘッダーの横にあるクラスの追加**アイコンをクリックします。
-
クラス名として
DictMonth
と入力してから、**「追加」**をクリックします。新規クラスが「クラス」サイド・パネルに表示されます。
演習 4: 辞書とクラスの関連付け
この演習では、ルール・エディターで辞書を使用する方法について学習します。
手順
-
「ルール・ベース・モデル (Rule-based Model)」>**「ルール (Rules)」をクリックしてから、「辞書 (Dictionaries)」**タブをクリックします。
-
前に作成した**「Month dictionary」**を選択します。
-
**「クラス」リストから
DictMonth
を選択して、「保存」**をクリックします。クラスが辞書に関連付けられます。
結果
ルール・エディターに関連付けられた文書の場合、辞書内の用語への参照には DictMonth
クラスのメンションとしてアノテーションが付けられます。 次の演習では、これらの参照にアノテーションが付けられたことを確認します。
演習 5: 文書内のクラス・アノテーションの検出
この演習では、ルール・エディター文書内でクラス・アノテーションを検出する方法について学習します。
手順
-
「ルール・ベース・モデル」>**「ルール」**を選択します。
-
「クラス」パネルで、前に定義した
DictMonth
クラスを見つけ、その横にある文書内のアノテーションの検索アイコンをクリックします。「アノテーションの検出 (Find Annotations)」ページが表示され、月へのテキスト参照を含んでいるすべての文書が表示されます。
-
Technology - computerworld.com
文書をクリックして、文書全体を表示します。February
というテキストが強調表示されていることに注意してください。これは、DictMonth
クラスのメンションとしてアノテーションが付けられたことを意味します。
演習 6: 正規表現の定義
この演習では、正規表現の定義方法について学習します。
このタスクについて
「2009
」のような年のパターンを検出できる正規表現を定義します。
正規表現の定義について詳しくは、『ルールの定義』を参照してください。
手順
-
**「ルール」ページで、右側のパネルの クラス の横にある「クラスの追加 (Add a class)」**アイコン をクリックします。
-
クラス名として
RegExpYear
と入力し、**「追加」**をクリックします。 -
「Regex」タブをクリックしてから、「正規表現 (Regular Expressions)」見出しの横にある正規表現の作成アイコンをクリックします。
-
**「項目の追加 (Add Entry)」**をクリックします。
-
**「正規表現 (Regular Expression)」**フィールドに次の式を入力します。この式は、
1900
と2099
の間の年を検出します。(?:(?:19|20)[0-9]{2})
-
**「最小ワード・トークン」を
1
に、「最大ワード・トークン」**を1
に設定します。 -
**「追加」**をクリックして、この正規表現項目を保存します。
-
正規表現名として
MyYearExp
と入力し、次に、「クラス」 メニューから、前に定義したRegExpYear
クラスを選択します。 -
**「上書き保存」**をクリックします。
正規表現を保存した後、その正規表現がサンプル文書に自動的に適用されます。 正規表現で定義したパターンの直後にあるテキスト・ストリングには、
RegExpYear
クラスのメンションとしてアノテーションが付けられます。 -
定義した式が時間の出現個所を正しくキャプチャーしているかどうかを検査するために、メンションを検索できます。 「クラス」パネルの RegExpYear クラスの横にある
RegExpYear
アイコンをクリックします。「アノテーションの検出 (Find Annotations)」ページが表示されます。 年のメンションの出現個所が、出現するサンプル文書内で強調表示されます。
演習 7: ルールの定義
この演習では、ルールの定義方法について学習します。
このタスクについて
月のメンションにアノテーションを付けるための辞書ベースのクラスが既に定義されています。 また、年を表す数値を検出する正規表現も定義しました。 ここでは、月とそれに続く数値、コンマ、そして年というシーケンスをキャプチャーするルールを定義します。 つまり、September 21, 2016 のような日付式のルールを定義します。
ルールの定義について詳しくは、『ルールの定義』を参照してください。
手順
-
「ルール・ベース・モデル」>**「ルール」**を選択し、
Technology - computerworld.com
文書を開きます。 -
文書内のテキスト
February 3, 2009
を選択します。 必ず、コンマも選択してください。
-
ルールの追加アイコンをクリックします。
ルール・エディターに、指定したルール・パターンの描写が表示されます。
テキスト
February 3, 2009
が表示されます。 描写内のセルを接続している実線は、現在どのセルがパターンに含まれているかを示しています。DictMonth
クラスは、テキストFebruary
ではなくルール・パターンの一部です。 この選択は推奨されます。このモデルでは、DictMonth
というテキストだけではなく、日付パターン内の最初のトークンとしてFebruary
クラスによってアノテーション付けされているすべての月を検出する必要があるからです。- ルールの最後で、既に
2009
という年にRegExpYear
クラスのメンションとしてアノテーションが付けられています。RegExpYear
クラスは、数値 2009 ではなくルール・パターンの一部です。 この選択も推奨されます。このモデルでは、RegExpYear
という特定のテキストだけではなく、日付パターン内の最後のトークンとして2009
クラスによってアノテーション付けされているすべての年を検出する必要があるからです。
数値 3 とその後のコンマ (,) は、パターン内の 2 番目と 3 番目のトークンとして示されています。 このパターンは現在指定されているので、このモデルは、月の第 3 日を指定している日付の出現個所だけを検出します。 しかし、このモデルでは、月の任意の日を指定した日付を検出したいので、次の作業は日のトークンのフィーチャー設定を変更することです。
-
3
という日のセルの上でテキスト・アイコンをクリックして、トークンのフィーチャー設定を開きます。現在、ルールは
3
というテキストに正確に一致するよう設定されています。 そうではなく、任意の数値に一致するようなルールにする必要があります。 -
**「文字タイプ: 数値 (Character Type : Numeric)」を選択してから、「テキスト: 3 (Text : 3)」**の選択をクリアすることにより、フィーチャー設定を数値に変更します。
」オプションをクリックしている様子を示しています。」)
数値
3
のセルの定義を変更しました。」アイコンが表示され、任意の数値がパターン内のそのトークンと一致することを示しています。」)
文字タイプ アイコンは、その数値が正確に 3 である必要はなく、任意の数値でかまわないことを示しています。
-
コンマのトークンの設定は、何も変更しないでください。
パターン内の 3 番目のトークンはコンマにする必要があるので、現在のフィーチャー設定である 「テキスト: ,」 は適切です。 フィーチャー設定のほかに、各トークンには繰り返し設定があります。 繰り返し設定は、トークンがテキスト内で何回まで繰り返されてもパターンと一致したことになるかを指定します。 **「必須 (正確に 1 つ)」**という現在の繰り返し設定は適切です。

-
パターン
DictMonth + numeric token + comma + RegExpYear
を表すクラスを割り当てます。文書から選択した 4 つのトークンを表す 4 つの空のセルに注目してください。 すべてのセルを選択するには、最初のセルを選択し、Shift キーを押しながら追加の各セルをクリックします。 クラス名として
RuleDate
と入力し、それをクリックして新規クラスを作成します。
-
**「ルール名」フィールドに
MyDateRule
と入力し、「保存」**をクリックします。ルールを保存した後、そのルールがサンプル文書に自動的に適用されます。
Technology - computerworld.com
文書がルール・エディターでまだ開かれている場合は、文書内のFebruary 3, 2009
というテキストに、RuleDate クラスのメンションとしてアノテーションが付けられたことが分かります。
「クラス」パネルから
RuleDate
クラスの横にある 文書内のアノテーションの検索アイコンをクリックして、サンプル文書内の
RuleDate
クラスのメンションのすべての出現箇所を検索できます。 パターンを正しく定義したことを確認するために、すべての日付が正しくキャプチャーされているのを確認することをお勧めします。」ページを示しています。)
演習 8: ルール・ベース・モデルの作成
この演習では、ルール・ベース・モデルの作成方法について学習します。
このタスクについて
ルール・ベース・モデルの作成について詳しくは、『ルール・ベース・モデルの作成』を参照してください。
手順
-
「ルール・ベース・モデル (Rule-based Model)」>**「バージョン (Versions)」を選択して、「ルール・ベース・モデル・タイプ・マッピング (Rule-based model type mapping)」**タブをクリックします。
-
タイプ・システムから
RuleDate
エンティティーにDATE
クラスをマップします。-
DATE
エンティティーを見つけ、**「編集」**をクリックします。」タブの「DATE」エンティティー・タイプに対してユーザーが「編集」をクリックした様子を示しています。)
-
リストから
RuleDate
クラスを選択して、**「保存」**をクリックします。
-
-
ルール・ベース・モデルを使用して文書セットまたはアノテーション・セットに事前アノテーション付けを行うには、以下のようにします。
- 「機械学習モデル (Machine Learning Model)」 > **「事前アノテーション (Pre-annotation)」ページで、「事前アノテーターを実行 (Run Pre-annotators)」**をクリックします。
- **「ルール・ベース・モデル」を選択して、「次へ」**をクリックします。
- コーパスに追加した文書セット、
documents-ml.csv
を選択し、**「実行」**をクリックします。
注意: 人間によってアノテーションがまだ付けられていない文書でのみ、事前アノテーターとしてルール・ベース・モデルを実行します。
チュートリアルのまとめ
Knowledge Studio について学習しながら、ルール・ベース・モデルを作成しました。
学習したこと
このチュートリアルを修了すると、以下の概念について学習したことになります。
- クラス
- 正規表現
- ルール