IBM Cloud Docs
ルール・ベース・モデルの作成 (試験段階)

この文書は、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 のユーザー役割を参照してください。

結果

ルール・ベース・モデルを作成した後、それを以下のいずれかの方法で使用して、文書内のテキスト・パターンを検出できます。

演習 1: 月の辞書の追加

この演習では、Knowledge Studio でワークスペースに辞書を追加する方法について学習します。 この辞書には、暦の月に関連する用語が含まれています。

このタスクについて

この後の演習では、この辞書に基づいてクラスを定義します。 このクラスを作成すると、文書内で検出された、この辞書内のすべての用語に、関連するクラス・タイプのメンションとして自動的にアノテーションが付きます。 辞書について詳しくは、『ワークスペースへの辞書の追加』を参照してください。

手順

  1. 次のものをダウンロードします: dictionary-items-month.csv 外部リンク・アイコン ファイルをご使用のコンピューターにダウンロードします。 このファイルには、Knowledge Studio 辞書へのアップロードに適した辞書用語が CSV 形式で含まれています。

  2. 「アセット (Assets)」>**「辞書 (Dictionaries)」**をクリックします。

  3. **「辞書の作成」**ボタンをクリックして、辞書を追加します。

  4. **「名前」フィールドに Month dictionary と入力し、「保存」**をクリックして辞書を作成します。 新しい辞書が作成され、編集用に自動的に開かれます。

  5. 辞書ペインで、**「アップロード」**をクリックします。

  6. ご使用のコンピューターから dictionary-items-month.csv ファイルを選択して、**「アップロード」**をクリックします。

    ファイルから辞書に用語がインポートされます。

演習 2: サンプル文書の追加

この演習では、定義するルールのタイプを示す言語パターンを含んだ文書を追加する方法について学習します。

このタスクについて

文書の追加について詳しくは、『ルールを定義するための文書の追加』を参照してください。

手順

  1. 次のものをダウンロードします: documents-new.csv外部リンク・アイコン ファイルをご使用のコンピューターにダウンロードします。 このファイルには、アップロードに適したサンプル文書が含まれています。

  2. 「ルール・ベース・モデル」>**「ルール」**をクリックします。

  3. 「文書 (Documents)」ページ見出しの横にある文書の追加アイコンをクリックします。

  4. **「CSV ファイルのアップロード」**タブをクリックします。

  5. 前にコンピューターにダウンロードした documents-new.csv ファイルをクリックして参照し、**「アップロード」**をクリックします。

    文書のセットがメインの「文書」ページに表示されます。

    ルール・エディターに追加された 14 個の文書のうち 3 個を表示します。 文書のタイトルと、各文書の先頭からの抜粋を表示します。 また、各文書の横には、文書を削除するために使用できる削除アイコンもあります。

演習 3: クラスの作成

この演習では、ルールの定義時に使用するクラスの定義方法について学習します。

このタスクについて

クラスについて詳しくは、『ルール』を参照してください。

手順

  1. ワークスペースの**「ルール」ページで、右側のパネルの「クラス (Class)」ヘッダーの横にあるクラスの追加**アイコンをクリックします。

  2. クラス名として DictMonth と入力してから、**「追加」**をクリックします。

    新規クラスが「クラス」サイド・パネルに表示されます。

演習 4: 辞書とクラスの関連付け

この演習では、ルール・エディターで辞書を使用する方法について学習します。

手順

  1. 「ルール・ベース・モデル (Rule-based Model)」>**「ルール (Rules)」をクリックしてから、「辞書 (Dictionaries)」**タブをクリックします。

  2. 前に作成した**「Month dictionary」**を選択します。

  3. **「クラス」リストからDictMonthを選択して、「保存」**をクリックします。

    クラスが辞書に関連付けられます。

    「ルール」ページの「辞書」パネルに、DictMonth クラスが Month 辞書に関連付けられていることが表示されます。

結果

ルール・エディターに関連付けられた文書の場合、辞書内の用語への参照には DictMonth クラスのメンションとしてアノテーションが付けられます。 次の演習では、これらの参照にアノテーションが付けられたことを確認します。

演習 5: 文書内のクラス・アノテーションの検出

この演習では、ルール・エディター文書内でクラス・アノテーションを検出する方法について学習します。

手順

  1. 「ルール・ベース・モデル」>**「ルール」**を選択します。

  2. 「クラス」パネルで、前に定義した DictMonth クラスを見つけ、その横にある文書内のアノテーションの検索アイコンをクリックします。

    「アノテーションの検出 (Find Annotations)」ページが表示され、月へのテキスト参照を含んでいるすべての文書が表示されます。

  3. Technology - computerworld.com 文書をクリックして、文書全体を表示します。 February というテキストが強調表示されていることに注意してください。これは、DictMonth クラスのメンションとしてアノテーションが付けられたことを意味します。

演習 6: 正規表現の定義

この演習では、正規表現の定義方法について学習します。

このタスクについて

2009」のような年のパターンを検出できる正規表現を定義します。

正規表現の定義について詳しくは、『ルールの定義』を参照してください。

手順

  1. **「ルール」ページで、右側のパネルの クラス の横にある「クラスの追加 (Add a class)」**アイコン![The "Add a class" icon](images/wks_tut_dict_add.jpg "The "Add a class" icon") をクリックします。

  2. クラス名として RegExpYear と入力し、**「追加」**をクリックします。

  3. 「Regex」タブをクリックしてから、「正規表現 (Regular Expressions)」見出しの横にある正規表現の作成アイコンをクリックします。

  4. **「項目の追加 (Add Entry)」**をクリックします。

  5. **「正規表現 (Regular Expression)」**フィールドに次の式を入力します。この式は、19002099 の間の年を検出します。

    (?:(?:19|20)[0-9]{2})
    
  6. **「最小ワード・トークン」1 に、「最大ワード・トークン」**を 1 に設定します。

  7. **「追加」**をクリックして、この正規表現項目を保存します。

  8. 正規表現名として MyYearExp と入力し、次に、「クラス」 メニューから、前に定義した RegExpYear クラスを選択します。

  9. **「上書き保存」**をクリックします。

    正規表現を保存した後、その正規表現がサンプル文書に自動的に適用されます。 正規表現で定義したパターンの直後にあるテキスト・ストリングには、RegExpYear クラスのメンションとしてアノテーションが付けられます。

  10. 定義した式が時間の出現個所を正しくキャプチャーしているかどうかを検査するために、メンションを検索できます。 「クラス」パネルの RegExpYear クラスの横にあるRegExpYearアイコンをクリックします。

    Shows the hovering over the magnifying glass icon next to the "RegExpYear" class in the Class panel of the Rules page.

    「アノテーションの検出 (Find Annotations)」ページが表示されます。 年のメンションの出現個所が、出現するサンプル文書内で強調表示されます。

    サンプル・ドキュメントからの抜粋で強調表示された 8 つの年のアノテーションを示します。

演習 7: ルールの定義

この演習では、ルールの定義方法について学習します。

このタスクについて

月のメンションにアノテーションを付けるための辞書ベースのクラスが既に定義されています。 また、年を表す数値を検出する正規表現も定義しました。 ここでは、月とそれに続く数値、コンマ、そして年というシーケンスをキャプチャーするルールを定義します。 つまり、September 21, 2016 のような日付式のルールを定義します。

ルールの定義について詳しくは、『ルールの定義』を参照してください。

手順

  1. 「ルール・ベース・モデル」>**「ルール」**を選択し、Technology - computerworld.com 文書を開きます。

  2. 文書内のテキスト February 3, 2009 を選択します。 必ず、コンマも選択してください。

    ![Shows the text "February 3, 2009" selected in the document.](images/rule-add1.png「文書内で選択されたテキスト「February 3, 2009」を示しています。」)

  3. ルールの追加アイコンをクリックします。

    ルール・エディターに、指定したルール・パターンの描写が表示されます。

    テキスト February 3, 2009 が表示されます。 描写内のセルを接続している実線は、現在どのセルがパターンに含まれているかを示しています。

    • DictMonth クラスは、テキスト February ではなくルール・パターンの一部です。 この選択は推奨されます。このモデルでは、DictMonth というテキストだけではなく、日付パターン内の最初のトークンとして February クラスによってアノテーション付けされているすべての月を検出する必要があるからです。
    • ルールの最後で、既に 2009 という年に RegExpYear クラスのメンションとしてアノテーションが付けられています。 RegExpYear クラスは、数値 2009 ではなくルール・パターンの一部です。 この選択も推奨されます。このモデルでは、RegExpYear という特定のテキストだけではなく、日付パターン内の最後のトークンとして 2009 クラスによってアノテーション付けされているすべての年を検出する必要があるからです。

    数値 3 とその後のコンマ (,) は、パターン内の 2 番目と 3 番目のトークンとして示されています。 このパターンは現在指定されているので、このモデルは、月の第 3 日を指定している日付の出現個所だけを検出します。 しかし、このモデルでは、月の任意の日を指定した日付を検出したいので、次の作業は日のトークンのフィーチャー設定を変更することです。

  4. 3 という日のセルの上でテキスト・アイコンをクリックして、トークンのフィーチャー設定を開きます。

    ユーザーが「テキスト機能の設定 (Text Feature Settings)」アイコンをクリックする様子を示しています。

    現在、ルールは 3 というテキストに正確に一致するよう設定されています。 そうではなく、任意の数値に一致するようなルールにする必要があります。

  5. **「文字タイプ: 数値 (Character Type : Numeric)」を選択してから、「テキスト: 3 (Text : 3)」**の選択をクリアすることにより、フィーチャー設定を数値に変更します。

    ![Shows the user clicking the "Character Type : Number" option as the feature setting for the "3" token.](images/rule-add5.png「ユーザーが「3」トークンの機能設定として「文字タイプ: 数値 (Character Type : Number)」オプションをクリックしている様子を示しています。」)

    数値 3 のセルの定義を変更しました。

    ![Shows the cell that represents the "3" token now has a "Character Type" icon above it to indicate that any numeric value can match that token in the pattern.](images/rule-add6.png「「3」トークンを表すセルの上に「文字タイプ (Character Type)」アイコンが表示され、任意の数値がパターン内のそのトークンと一致することを示しています。」)

    文字タイプ アイコンは、その数値が正確に 3 である必要はなく、任意の数値でかまわないことを示しています。

  6. コンマのトークンの設定は、何も変更しないでください。

    パターン内の 3 番目のトークンはコンマにする必要があるので、現在のフィーチャー設定である 「テキスト: ,」 は適切です。 フィーチャー設定のほかに、各トークンには繰り返し設定があります。 繰り返し設定は、トークンがテキスト内で何回まで繰り返されてもパターンと一致したことになるかを指定します。 **「必須 (正確に 1 つ)」**という現在の繰り返し設定は適切です。

    ![Shows the repeat setting for the comma token which is set to "Exactly 1".](images/rule-add7.png「「正確に 1 つ」に設定されているコンマ・トークンの繰り返し設定を示しています。」)

  7. パターン DictMonth + numeric token + comma + RegExpYear を表すクラスを割り当てます。

    文書から選択した 4 つのトークンを表す 4 つの空のセルに注目してください。 すべてのセルを選択するには、最初のセルを選択し、Shift キーを押しながら追加の各セルをクリックします。 クラス名として RuleDate と入力し、それをクリックして新規クラスを作成します。

    ![Shows that all four cells in the top row have been selected and the span is being defined as the "RuleDate" class.](images/rule-add8.png「先頭行の 4 つのセルがすべて選択され、スパンが「RuleDate」クラスとして定義されている様子を示しています。」)

  8. **「ルール名」フィールドに MyDateRule と入力し、「保存」**をクリックします。

    ルールを保存した後、そのルールがサンプル文書に自動的に適用されます。 Technology - computerworld.com 文書がルール・エディターでまだ開かれている場合は、文書内の February 3, 2009 というテキストに、RuleDate クラスのメンションとしてアノテーションが付けられたことが分かります。

    ![Shows text from the "Technology - computerworld.com" document with only the text "February 3, 2009" annotated as a mention of the "RuleDate" class.](images/rule-add10.png「「RuleDate」クラスのメンションとしてアノテーションが付けられた「February 3, 2009」というテキストのみを含む「Technology-computerworld.com」文書のテキストを示しています。」)

    「クラス」パネルから RuleDate クラスの横にある 文書内のアノテーションの検索アイコン 検索を表す虫眼鏡 をクリックして、サンプル文書内の RuleDate クラスのメンションのすべての出現箇所を検索できます。 パターンを正しく定義したことを確認するために、すべての日付が正しくキャプチャーされているのを確認することをお勧めします。

    ![Shows the "Find Annotations" page with two documents that contain dates that match the rule pattern you just defined.](images/rule-add11.png「定義したルール・パターンに一致する日付を含む 2 つの文書が含まれる「アノテーションの検索 (Find Annotations)」ページを示しています。)

演習 8: ルール・ベース・モデルの作成

この演習では、ルール・ベース・モデルの作成方法について学習します。

このタスクについて

ルール・ベース・モデルの作成について詳しくは、『ルール・ベース・モデルの作成』を参照してください。

手順

  1. 「ルール・ベース・モデル (Rule-based Model)」>**「バージョン (Versions)」を選択して、「ルール・ベース・モデル・タイプ・マッピング (Rule-based model type mapping)」**タブをクリックします。

  2. タイプ・システムから RuleDate エンティティーに DATE クラスをマップします。

    1. DATE エンティティーを見つけ、**「編集」**をクリックします。

      ![Shows the user clicking Edit for the "DATE" entity type in the "Rule-based model type mapping" tab.](images/rule-anno2.png「「ルール・ベースのモデル・タイプ・マッピング (Rule-based model type mapping)」タブの「DATE」エンティティー・タイプに対してユーザーが「編集」をクリックした様子を示しています。)

    2. リストから RuleDate クラスを選択して、**「保存」**をクリックします。

      Shows the user choosing the "RuleDate" class from the list.

  3. ルール・ベース・モデルを使用して文書セットまたはアノテーション・セットに事前アノテーション付けを行うには、以下のようにします。

    • 「機械学習モデル (Machine Learning Model)」 > **「事前アノテーション (Pre-annotation)」ページで、「事前アノテーターを実行 (Run Pre-annotators)」**をクリックします。
    • **「ルール・ベース・モデル」を選択して、「次へ」**をクリックします。
    • コーパスに追加した文書セット、documents-ml.csv を選択し、**「実行」**をクリックします。

    注意: 人間によってアノテーションがまだ付けられていない文書でのみ、事前アノテーターとしてルール・ベース・モデルを実行します。

チュートリアルのまとめ

Knowledge Studio について学習しながら、ルール・ベース・モデルを作成しました。

学習したこと

このチュートリアルを修了すると、以下の概念について学習したことになります。

  • クラス
  • 正規表現
  • ルール