Azure AI Language は、自然言語処理 (NLP) 機能をテキスト ベースのデータに適用するクラウドベースのサービスです。 PII 機能では、いくつかの事前定義されたカテゴリにわたって、非構造化テキストを評価し、機密情報 (PII) と健康情報 (PHI) をテキストで抽出および編集できます。
開発オプション
PII 検出を使うには、分析対象のテキストを送信し、API の出力をアプリケーションで処理します。 分析はそのままの状態で行われ、データに使用されるモデルに対してカスタマイズは行われません。 PII 検出を使用するには、次の 2 つの方法があります。
開発オプション | 説明 |
---|---|
Azure AI Foundry | Azure AI Foundry は Web ベースのプラットフォームであり、サインアップしたら独自のデータを含むテキストの例で、個人を特定できる情報の検出を使用することができます。 詳細については、Azure AI Foundry の Web サイトまたは Azure AI Foundry のドキュメントを参照してください。 |
REST API またはクライアント ライブラリ (Azure SDK) | さまざまな言語で使用できる REST API ライブラリ、またはクライアント ライブラリを使用して、PII 検出をお使いのアプリケーションに統合します。 詳細については、PII 検出のクイックスタートを参照してください。 |
PII 検出モデルを指定する
既定では、テキストで利用可能な最新の AI モデルがこの機能で使われます。 特定のバージョンのモデルを使うように API 要求を構成することもできます。
入力言語
処理される入力テキストを送信するときに、サポートされている言語のどれでそれが書かれているかを指定できます。 言語を指定しない場合、抽出は既定値の英語で行われます。 さまざまな多言語と絵文字のエンコードをサポートするため、API からの応答でオフセットが返される場合があります。
Redaction Policy (バージョン 2024-11-5-preview のみ)
バージョン 2024-11-5-preview
では、redactionPolicy
パラメーターを定義することで、テキスト編集時に使用される編集ポリシーを反映できます。 ポリシー フィールドでは、以下の 3 種類のポリシーがサポートされています。
DoNotRedact
-
MaskWithCharacter
(既定値) MaskWithEntityType
DoNotRedact
ポリシーを使用すると、ユーザーは redactedText
フィールド ("John Doe received a call from 424-878-9192" ) なしで応答を返すことができます。
MaskWithRedactionCharacter
ポリシーでは、元のテキストの長さとオフセットをそのまま維持しながら、redactedText
を文字 ("*" など) でマスクできます。例えば、「******** が ************から電話を受けた」となります。 これは既存の動作です。
redactionCharacter
ポリシーを使用している場合は、編集で使用される文字を入力できる MaskWithCharacter
という名前のオプション フィールドも存在します
MaskWithEntityType
ポリシーを使用すると、検出された PII エンティティ テキストを、検出されたエンティティの種類 ("[PERSON_1] が [PHONENUMBER_1] から呼び出しを受信しました) でマスクできます。
返されるエンティティを選択する
API では、指定された入力テキスト言語について、定義されたエンティティのカテゴリの検出が試みられます。 検出されて返されるエンティティを指定する場合は、オプションの piiCategories
パラメーターを適切なエンティティ カテゴリと共に使用します。 このパラメーターを使用すると、入力テキスト言語に対して既定で有効になっていないエンティティを検出することもできます。 次の例では、Person
のみが検出されます。 返されるエンティティ型を 1 つ以上指定できます。
ヒント
エンティティ カテゴリを指定するときに default
を含めなかった場合、API では指定したエンティティ カテゴリのみが返されます。
入力:
注
この例では、person エンティティ型のみが返されます。
https://<your-language-resource-endpoint>/language/:analyze-text?api-version=2022-05-01
{
"kind": "PiiEntityRecognition",
"parameters":
{
"modelVersion": "latest",
"piiCategories" :
[
"Person"
]
},
"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!"
}
]
},
"kind": "PiiEntityRecognition",
"parameters": {
"redactionPolicy": {
"policyKind": "MaskWithCharacter"
//MaskWithCharacter|MaskWithEntityType|DoNotRedact
"redactionCharacter": "*"
}
アウトプット:
{
"kind": "PiiEntityRecognitionResults",
"results": {
"documents": [
{
"redactedText": "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 ********) 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!",
"id": "1",
"entities": [
{
"text": "John Doe",
"category": "Person",
"offset": 226,
"length": 8,
"confidenceScore": 0.98
}
],
"warnings": []
}
],
"errors": [],
"modelVersion": "2021-01-15"
}
}
ドメインへの PII の適応
エンティティ ("コンテキスト" とも呼ばれます) を識別するために使用される顧客のカスタム ボキャブラリに対応して適応するために、 entitySynonyms
機能を使用すると、顧客は特定のエンティティ型に対して独自のシノニムを定義できます。 この機能の目的は、検出プロセス中に顧客の一意の用語が認識され、正しく関連付けられていることを確認することで、モデルが慣れていないが、顧客の入力で使用されるコンテキストでエンティティを検出できるようにすることです。
valueExclusionPolicy
オプションを使用すると、特定の用語が検出対象の PII カテゴリに分類された場合でも、特定の用語を検出して編集しないことをお客様が好むシナリオに合わせて PII サービスを調整できます。 たとえば、警察はほとんどの場合、個人識別子を編集する必要がありますが、「警察官」、「容疑者」、「目撃者」などの用語は除きます。
お客様は、正規表現認識構成ファイルを使用して独自の正規表現を指定することで、PII サービスの検出を調整できるようになりました。 個人を特定できる情報 (PII) 検出コンテナーをインストールして実行する方法のチュートリアルについては、 コンテナーのハウツー ガイド を参照してください。
詳細なチュートリアルについては、「ドメインへの PII の適応」のハウツー ガイドを参照してください。
データの送信
要求が受信されると分析が実行されます。 PII 検出機能の同期的な使用はステートレスです。 データはアカウントに保存されず、結果がすぐに応答で返されます。
この機能を非同期的に使うと、API の結果は、応答で示される要求取り込み時刻から 24 時間利用できます。 この時間が経過すると、結果は消去され、取得できなくなります。
PII の結果の取得
PII 検出から結果を取得するときは、結果をアプリケーションにストリーミングしたり、ローカル システム上のファイルに出力を保存したりできます。 API の応答には、認識されたエンティティと、そのカテゴリ、サブカテゴリ、信頼度スコアなどが含まれます。 PII エンティティが編集されたテキスト文字列も返されます。
サービスとデータの制限
分単位および秒単位で送信できる要求のサイズと数については、サービスの制限に関する記事を参照してください。