固有表現認識 (NER) の使用方法
NER 機能を使うと、非構造化テキストを評価し、テキストから複数の定義済みカテゴリ (人、場所、イベント、製品、組織など) の名前付きエンティティを抽出できます。
開発オプション
固有表現認識を使用するには、分析のために未加工の非構造化テキストを送信し、お使いのアプリケーションで API 出力を処理します。 分析はそのままの状態で行われ、データに使用されるモデルに対して追加のカスタマイズは行われません。 固有表現認識を使用するには、次の 2 つの方法があります。
開発オプション | 説明 |
---|---|
Language Studio | Language Studio は Web ベースのプラットフォームであり、Azure アカウントがなければテキストの例で、サインアップしたら独自のデータで、エンティティ リンクを試すことができます。 詳しくは、Language Studio の Web サイトまたは Language Studio のクイックスタートに関する記事をご覧ください。 |
REST API またはクライアント ライブラリ (Azure SDK) | さまざまな言語で使用できる REST API ライブラリ、またはクライアント ライブラリを使用して、固有表現認識をお使いのアプリケーションに統合します。 詳しくは、固有表現認識のクイックスタートに関する記事をご覧ください。 |
データの処理方法を決定する (省略可能)
入力言語
処理されるドキュメントを送信するときに、サポートされている言語のうちのどれでそのドキュメントが書かれているかを指定できます。言語を指定しないと、英語がキー フレーズ抽出によって既定で使われます。 さまざまな多言語と絵文字のエンコードをサポートするため、API からの応答でオフセットが返される場合があります。
データの送信
要求が受信されると分析が実行されます。 NER を同期的に使うとステートレスになります。 データはアカウントに保存されず、結果がすぐに応答で返されます。
この機能を非同期的に使うと、API の結果は、応答で示される要求取り込み時刻から 24 時間利用できます。 この時間が経過すると、結果は消去され、取得できなくなります。
API では、指定されたドキュメント言語について、定義されたエンティティのカテゴリの検出が試みられます。
NER の結果の取得
NER から結果を取得するときは、結果をアプリケーションにストリーミングしたり、ローカル システム上のファイルに出力を保存したりできます。 API の応答には、認識されたエンティティと、そのカテゴリ、サブカテゴリ、信頼度スコアなどが含まれます。
返されるエンティティを選択する
API では、特定のドキュメント言語の定義済みのエンティティ型とタグの検出を試みます。 柔軟性を高めるために、エンティティ型とタグが古いモデルでエンティティの定義に使用されていたカテゴリとサブカテゴリの構造に取って代わります。 また、適切なエンティティ型と共にオプションの includeList
パラメーターと excludeList
パラメータを使用することで、どのエンティティを検出して返すかを指定することもできます。 次の例では、Location
のみが検出されます。 返されるエンティティ型を 1 つ以上指定できます。 このバージョンで型とタグの階層が導入されたため、次に示すように、さまざまな粒度レベルでフィルタリングする柔軟性が得られます。
入力:
Note
この例では、"Location" エンティティ型のみが返されます。
{
"kind": "EntityRecognition",
"parameters":
{
"includeList" :
[
"Location"
]
},
"analysisInput":
{
"documents":
[
{
"id":"1",
"language": "en",
"text": "We went to Contoso foodplace located at downtown Seattle last week for a dinner party, and we adore the spot! They provide marvelous food and they have a great menu. The chief cook happens to be the owner (I think his name is John Doe) and he is super nice, coming out of the kitchen and greeted us all. We enjoyed very much dining in the place! The pasta I ordered was tender and juicy, and the place was impeccably clean. You can even pre-order from their online menu at www.contosofoodplace.com, call 112-555-0176 or send email to order@contosofoodplace.com! The only complaint I have is the food didn't come fast enough. Overall I highly recommend it!"
}
]
}
}
上記の例では、エンティティ型とタグで概要が示されているGPE
、Structural
、および Geological
でタグ付けされたエンティティなど、Location
エンティティ型に該当するエンティティが返されます。 また、次に概要を示すように、GPE
タグのみでフィルタリングするなど、Location
エンティティ型のエンティティ タグの 1 つを使用してフィルタリングすることで、返されたエンティティをさらに絞り込むこともできます。
"parameters":
{
"includeList" :
[
"GPE"
]
}
このメソッドは、GPE
タグに該当するすべての Location
エンティティのみを返し、Structural
または Geological
でタグ付けされた Location
エンティティなど、他のエンティティ タグでタグ付けされた Location
型に該当するその他すべてのエンティティを無視します。 また、excludeList
パラメーターを使用して、結果をさらにドリルダウンすることもできます。 GPE
タグ付きエンティティは、次のタグでタグ付けすることができます: City
、State
、CountryRegion
、Continent
。 たとえば、この例では、 Continent
タグと CountryRegion
タグを除外できます。
"parameters":
{
"includeList" :
[
"GPE"
],
"excludeList": :
[
"Continent",
"CountryRegion"
]
}
includeList
パラメーターに含まれる GPE
エンティティ タグは Location
型に該当するため、これらのパラメーターを使用して、Location
エンティティ型のみを正常にフィルタリングすることができます。 次に、地政学的エンティティのみをフィルタリングして、Continent
タグまたは CountryRegion
タグでタグ付けされたエンティティをすべて除外します。
その他の出力属性
エンティティの型に関するより多くの分析情報をユーザーに提供し、使いやすさを向上させるために、NER では出力で次の属性をサポートしています。
属性の名前 | Type | Definition |
---|---|---|
type |
String | 検出されたエンティティの最も限定的な型。 たとえば、 “Seattle” は、 City 、GPE (地政学的エンティティ)、および Location です。 “Seattle” の最も細かい分類は、City です。 この型は、テキスト “Seattle" の City です。 |
tags |
一覧 (タグ) | 検出されたエンティティと階層またはその他のグループとのアフィニティを表すタグ オブジェクトの一覧。 タグには、次の 2 つのフィールドが含まれています。 1. name : タグの一意の名前。2. confidenceScore : 0 から 1 までのタグの関連付けられた信頼度スコア。この一意の tagName は、 inclusionList および exclusionList パラメーターでフィルター処理するために使用されます。 |
metadata |
Object | メタデータは、検出されたエンティティ型に関するより多くのデータを含むオブジェクトです。 metadataKind フィールドに基づいて変わります。 |
サンプル出力
このサンプル出力には、追加の出力属性の例が含まれています。
{
"kind": "EntityRecognitionResults",
"results": {
"documents": [
{
"id": "1",
"entities": [
{
"text": "Microsoft",
"category": "Organization",
"type": "Organization",
"offset": 0,
"length": 9,
"confidenceScore": 0.97,
"tags": [
{
"name": "Organization",
"confidenceScore": 0.97
}
]
},
{
"text": "One",
"category": "Quantity",
"type": "Number",
"subcategory": "Number",
"offset": 21,
"length": 3,
"confidenceScore": 0.9,
"tags": [
{
"name": "Number",
"confidenceScore": 0.8
},
{
"name": "Quantity",
"confidenceScore": 0.8
},
{
"name": "Numeric",
"confidenceScore": 0.8
}
],
"metadata": {
"metadataKind": "NumberMetadata",
"numberKind": "Integer",
"value": 1.0
}
}
],
"warnings": []
}
],
"errors": [],
"modelVersion": "2023-09-01"
}
}
NER のモデルを指定する
既定では、テキストで利用可能な最新の AI モデルがこの機能で使われます。 特定のバージョンのモデルを使うように API 要求を構成することもできます。
サービスとデータの制限
分単位および秒単位で送信できる要求のサイズと数については、サービスの制限に関する記事を参照してください。