エンティティを認識する

完了

名前付きエンティティ認識は、Azure Language によって提供される機能です。 非構造化テキスト内のエンティティを識別して分類します。 人、場所、イベント、製品、組織など、エンティティのいくつかの カテゴリ がサポートされています。

名前付きエンティティ認識 API を呼び出すには、いくつかの方法があります。 ここでは、 azure_ai 拡張機能を使用して、SQL クエリのテキストからエンティティを認識します。

[前提条件]

azure_ai拡張機能を有効にして構成した Azure Database for PostgreSQL フレキシブル サーバーが必要です。 また、言語リソースのキーとエンドポイントを設定して、Azure Cognitive Services で 承認 する必要があります。

シナリオ

エンティティ認識は、次のようないくつかのドメインで役立ちます。

  • 検索とインデックス作成: ナレッジ グラフを自動的に作成し、識別されたエンティティを含むディレクトリにタグを付けることができます。
  • プロセスの自動化: 非構造化テキスト内の製品と場所を自動的に認識し、カスタマー サポート要求にルーティングします。
  • 市場分析: ソーシャル メディア、顧客レビュー、サポート チケットなどから最も頻繁に発生するエンティティとエンティティ クラスターを測定して、関連するトピックを決定し、傾向を予測します。

Azure Cognitive Services での SQL での名前付きエンティティ認識の使用

Azure Database for PostgreSQL フレキシブル サーバー azure_ai拡張機能 は、SQL 内から直接 AI 機能にアクセスするためのユーザー定義関数 (UDF) を提供します。 名前付きエンティティ認識 API には、azure_cognitive.recognize_entitiesによって提供されるazure_ai関数を使用してアクセスします。

azure_cognitive.recognize_entities(
 text text,
 language text,
 timeout_ms integer DEFAULT 3600000,
 throw_on_error boolean DEFAULT true,
 disable_service_logs boolean DEFAULT false
)

必要なパラメーターは、textが書き込まれる言語language、入力、およびtextです。 たとえば、 en-us は米国英語で、 fr はフランス語です。 使用可能な 言語 の完全な一覧については、言語サポートを参照してください。

既定では、エンティティの認識が 3,600,000 ミリ秒 = 1 時間で終了しない場合、停止されます。 この遅延をカスタマイズするには、 timeout_msを変更します。

エラーが発生した場合、既定の動作では例外がスローされ、トランザクションがロールバックされます。 この動作を無効にするには、 throw_on_error を false に設定します。

パラメーターの完全なドキュメントについては、 Azure Cognitive Services 拡張機能のドキュメント を参照してください。

たとえば、次のクエリを呼び出します。

SELECT azure_cognitive.recognize_entities('For more information, see Cognitive Services Compliance and Privacy notes.', 'en-us');

次の結果が得られます。

{"(\"Cognitive Services\",Skill,\"\",0.94)"}

エンティティの名前が "Cognitive Services" であることを示し、信頼度スコアが 0.94 のスキルとして識別されます。

入力テキストにはテーブル列を使用できます。

SELECT description, azure_cognitive.recognize_entities(description, 'en-us')
FROM listings LIMIT 1;

次の値が返されます。

 {"(house,Location,\"\",0.77)","(2013.,DateTime,DateRange,1)","(\"rooftop deck\",Location,\"\",0.88)","(\"lounge area\",Location,Structural,0.97)","(tub,Product,\"\",0.52)","
(5,Quantity,Number,0.8)","(bedrooms,Location,\"\",0.92)","(\"gourmet kitchen\",Location,\"\",0.87)","(2-3,Quantity,NumberRange,0.87)","(downtown,Location,Structural,0.8)","(\
"Queen Anne neighborhood\",Location,\"\",0.74)","(house,Location,\"\",0.96)","(barnwood,Product,\"\",0.61)","(steel,Product,\"\",0.73)","(concrete,Product,\"\",0.7)","(living
,Location,Structural,0.53)","(\"gourmet kitchen\",Location,\"\",0.7)","(kitchen,Location,\"\",0.77)","(reading,Skill,\"\",0.54)","(half,Quantity,Number,0.8)","(\"tv room\",Lo
cation,\"\",0.89)","(kitchen,Location,\"\",0.64)","(Fireplace,Product,\"\",0.91)","(sofa,Product,\"\",0.98)","(\"sitting area\",Location,\"\",0.93)","(\"Basement room\",Locat
ion,\"\",0.98)","(kids,PersonType,\"\",0.73)","(room,Location,Structural,0.78)","(patio,Location,Structural,0.75)","(basketball,Product,\"\",0.57)","(bedroom,Location,\"\",0.
8)","(basement,Location,\"\",0.94)","(\"concrete heated floors\",Product,\"\",0.95)","(\"queen sleeper sofa\",Product,\"\",0.86)","(tv,Location,\"\",0.54)","(basement,Locatio
n,\"\",0.92)","(room,Location,Structural,0.9)","(\"a second\",DateTime,Duration,0.85)","(family,PersonType,\"\",0.71)","(kids,PersonType,\"\",0.65)","(\"2nd floor\",Location,
Structural,0.56)","(4,Quantity,Number,0.8)","(bedrooms,Location,\"\",0.66)","(one,Quantity,Number,0.8)","(one,Quantity,Number,0.8)","(bedroom,Location,\"\",0.54)","(\"twin bu
nk beds\",Product,\"\",0.67)"}

概要

名前付きエンティティ認識は、入力テキスト内のエンティティを識別して分類します。 Azure Cognitive Services 言語モデルは、大量の自然言語処理を実行します。 Azure Database for PostgreSQL の azure_ai 拡張機能は、SQL クエリ内で直接名前付きエンティティ認識にアクセスするための azure_cognitive.recognize_entities API を提供します。