カスタム Text Analytics for Health のエンティティ コンポーネント
カスタム Text Analytics for Health では、エンティティは非構造化入力テキストから抽出される関連情報です。 エンティティは、さまざまな方法によって抽出できます。 コンテキストから学習したり、一覧から一致させたり、事前構築済みの認識済みエンティティによって検出したりすることができます。 プロジェクト内のすべてのエンティティは、これらの方法の 1 つ以上で構成されており、これらはエンティティのコンポーネントとして定義されています。 エンティティが複数のコンポーネントによって定義されている場合、それらの予測は重複する可能性があります。 コンポーネントが重複したときのエンティティ予測の動作は、[Entity options] (エンティティのオプション) の固定オプション セットを使用して決定できます。
コンポーネントの種類
エンティティ コンポーネントは、エンティティを抽出する方法を決定します。 エンティティは、エンティティを抽出するための唯一の方法を決定する 1 つのコンポーネントを含む場合と、エンティティの定義と抽出の方法を拡張する複数のコンポーネントを含む場合があります。
Text Analytics for Health エンティティは、事前構築済みコンポーネントを含むエンティティとしてプロジェクトに自動的に読み込まれます。 事前構築済みコンポーネントを含むエンティティのリスト コンポーネントを定義できますが、学習済みコンポーネントを追加することはできません。 同様に、学習済みコンポーネントとリスト コンポーネントを含む新しいエンティティを作成できますが、追加の事前構築済みコンポーネントを設定することはできません。
Learned コンポーネント
学習済みコンポーネントは、テキストへのラベル付けに使用されたエンティティ タグを使用して、機械学習モデルをトレーニングします。 このモデルは、テキスト内のコンテキストに基づいて、エンティティがどこにあるかを予測するように学習します。 ラベルは、前後にある単語の意味に基づき、ラベル付けされた単語として、エンティティがテキスト内に存在すると予想される場所の例を提供します。 このコンポーネントは、エンティティのデータに対してラベルを追加した場合にのみ定義されます。 どのデータにもラベルを付けなければ、学習済みコンポーネントは含まれません。
Text Analytics for Health エンティティには、既定では事前構築済みのコンポーネントがあり、学習済みコンポーネントで拡張することはできません。つまり、機能するためにそれ以上のラベル付けを必要とせず、受け入れることもありません。
List コンポーネント
list コンポーネントは、固定かつ限定された関連単語セットとその同義語を表します。 このコンポーネントは、同義語として指定された値のリストに対して完全なテキスト一致を実行します。 各同意語は "リスト キー" に属しており、リスト コンポーネントが一致した場合に出力で返される同意語の正規化された標準値として使用できます。 リスト キーは一致には使用されません。
多言語プロジェクトでは、言語ごとに異なる類義語のセットを指定できます。 Prediction API を使用するときに、入力要求で言語を指定すれば、その言語に関連した類義語のみがマッチングされます。
事前構築済みコンポーネント
Text Analytics for Health エンティティは、事前構築済みコンポーネントを含むエンティティとしてプロジェクトに自動的に読み込まれます。 事前構築済みコンポーネントを含むエンティティのリスト コンポーネントを定義できますが、学習済みコンポーネントを追加することはできません。 同様に、学習済みコンポーネントとリスト コンポーネントを含む新しいエンティティを作成できますが、追加の事前構築済みコンポーネントを設定することはできません。 事前構築済みコンポーネントを含むエンティティは事前トレーニングされ、ラベルなしでカテゴリに関連する情報を抽出できます。
エンティティのオプション
1 つのエンティティに対して複数のコンポーネントが定義されている場合、それらの予測が重複する可能性があります。 重複が発生すると、各エンティティの最終的な予測は、次のいずれかのオプションによって決定されます。
コンポーネントを結合する
コンポーネントが重複する場合に、すべてのコンポーネントの和集合を取得して、コンポーネントを 1 つのエンティティとして結合します。
これを使用して重複するすべてのコンポーネントを結合できます。 コンポーネントを結合すると、リストまたは事前構築済みコンポーネントに関連付けられている追加情報があれば、それらがすべて取得されます。
例
リスト コンポーネントを含む Software というエンティティがあるとします。このリスト コンポーネントには、エントリとして "Proseware OS" が含まれています。 入力データには "I want to buy Proseware OS 9" が含まれていて、"Proseware OS 9" が Software としてタグ付けされています。
コンポーネントの結合を使用すると、エンティティはリスト コンポーネントのキーと共に "Proseware OS 9" として完全なコンテキストを返します。
同じ発話を持っていたが、学習済みコンポーネントによって予測されたのは "OS 9" のみであると仮定します。
コンポーネントを結合した場合、エンティティからは依然として "Proseware OS 9" が、リスト コンポーネントからのキーと共に返されます。
コンポーネントを結合しない
重複する各コンポーネントは、エンティティの個別のインスタンスとして返されます。 このオプションを使用して、予測後に独自のロジックを適用します。
例
リスト コンポーネントを含む Software というエンティティがあるとします。このリスト コンポーネントには、エントリとして "Proseware Desktop" が含まれています。 ラベル付けしたデータには "I want to buy Proseware Desktop Pro" が含まれていて、"Proseware Desktop Pro" が Software としてラベル付けされています。
コンポーネントを結合しなかった場合、エンティティは 2 回返されます。
コンポーネントとオプションを使用する方法
コンポーネントを使用すると、複数の方法でエンティティを柔軟に定義できるようになります。 コンポーネントを結合すれば各コンポーネントが確実に表現され、予測で返されるエンティティの数が減ります。
一般的な手法は、事前構築済みコンポーネントをリストで拡張し、サポートされない値を補うことです。 たとえば、Medication Name というエンティティがあって、そこに Medication.Name
という事前構築済みコンポーネントが追加されているものの、そのエンティティでは、実際のドメインに固有の一部の薬剤名を予測できないとします。 リスト コンポーネントを使用して Medication Name エンティティの値を拡張すれば、実際の薬剤名で事前構築の内容を補うことができます。
また、医療機器などのコンテキストを通じてエンティティを抽出したい場合もあるでしょう。 その場合は、医療機器の学習済みコンポーネントでラベル付けを行うことで、医療機器が "どこ" に来るかを文中の位置に基づいて学習することになります。 また、常に抽出したい一連の医療機器が、あらかじめわかっている場合もあるでしょう。 両方のコンポーネントを 1 つに結合すれば、エンティティの両方のオプションを得ることができます。
コンポーネントを結合しなかった場合、各コンポーネントは個別にエンティティ抽出の役割を果たします。 この方法の用途としては、リストから抽出されたエンティティと学習済みコンポーネントや事前構築済みコンポーネントで抽出されたコンポーネントとを区別して別々に扱う場合などが考えられます。