Watson DiscoveryのPremiumプランで提供されている機能を使ってみました。
今回はPatternsというβ機能(as of 2021/06/10)です。
Patternsとは
マニュアルによると
https://cloud.ibm.com/docs/discovery-data?topic=discovery-data-facets&locale=ja#facetpattern
テキストや文字列のパターンをDiscoveryに学習させて、テキストを抽出する機能っぽい。

【得意なパターン】
- ISOなどの規格番号
- 金額
- 日付
【ちょっと苦手なパターン】
以下のような場合は、辞書が向いている。
- 色々な製品の名前
- 特定のカテゴリーに属するいろんな言葉
【Patternsの制約事項】
- β機能
- 英語のみ
- IBM Cloudでの提供のみ
- Document Retrieval と Conversational Search のプロジェクトのみ
やってみた
0. 前提
DiscoveryのDocument Retrievalというタイプのプロジェクトを作り、食品に関するアンケートコメントのサンプルデータを投入済み。
本当は、ISO規格のように電話番号とかメールアドレスとか規則的に書かれているテキストを抽出するのが得意そうだけど、ここはあえてアレルギーに関するテキストを抽出できるか試してみます。
例えば、allergic to xx というパターンを学習させて、色々なアレルギーが抽出できるか試してみます。
1. Patternsの学習
まず、右側の「Improvement tools」より「Teach domain concepts」を開き「Patterns Beta」をクリックします。

- まず「Pick 10 random documents for me」か「I will pick documents to use from:
Collection」で学習に使いたい文書を選びます。アレルギーに関するテキストを抽出したいので自分で選ぶ方を選択しました。 - 次に検索窓で「allergic」と入力し、アレルギーについて記述されている文書に絞り込みます。
- 最後に学習に使いたいサンプル文書をいくつか選択します。
- 終わったら右上の「Next」ボタンをクリック
適当にPatternsの名前を入れて、言語はEnglishにする。
サンプル文が表示されるので、抽出したいパターン、以下の例では「allergic to milk」をハイライトします。
最初なので右側のロボットくんはまだ分からないという反応をしています。

2〜3個のサンプルテキストに(そうなんです!2〜3個で良いんです!)同じように繰り返すと右側に「こんなのであってる?」という候補が出てきました。
「Yes」「No」で反応してあげます。


さらにハイライトを繰り返すと、そのうち自動でハイライトしてくれるようになります!

2. Patternsの適用
一通り処理すると右上の「Save patterns」ボタンが押せるようになります。

どのフィールドにパターンを適用させたいかを選んで「Apply」。

裏で索引付が行われるので処理が終わるまで少し待ちます。
3. Patternsの結果確認
検索画面で確認してみます。
同じパターンに当てはまる他のアレルギー情報も抽出してくれました!

感想
辞書だと全ての単語を登録しないといけないけど、Patternsを使うとそのパターンに似たものを抽出してくれるので便利そう!
ただ、学習なのでたまに違うものも抽出される可能性もあるかも?
辞書のメンテナンスにも使えるかも。
お断り
このサイトの掲載内容は私自身の見解であり、必ずしも所属会社の立場、戦略、意見を代表するものではありません。 記事は執筆時点の情報を元に書いているため、必ずしも最新情報であるとはかぎりません。 記事の内容の正確性には責任を負いません。自己責任で実行してください。
