PII(개인 식별 정보) 탐지 인지 기술

PII 검색 기술은 입력 텍스트에서 개인 정보를 추출하고 마스킹 옵션을 제공합니다. 이 기술은 Azure AI Language에서 제공하는 검색 모델을 사용합니다.

참고 항목

이 기술은 Azure AI 서비스에 바인딩되며 하루에 인덱서당 20개의 문서를 초과하는 트랜잭션에 대해 청구 가능한 리소스가 필요합니다. 기본 제공 기술의 실행은 기존 Azure AI 서비스 종량제 가격으로 청구됩니다.

@odata.type

Microsoft.Skills.Text.PIIDetectionSkill

데이터 제한

레코드의 최대 크기는 String.Length에 의해 측정된 대로 50,000자여야 합니다. 데이터 청크에 텍스트 분할 기술을 사용할 수 있습니다. 최상의 결과를 위해 페이지 길이를 5000으로 설정합니다.

기술 매개 변수

매개 변수는 대/소문자를 구분하며 모두 선택 사항입니다.

매개 변수 이름 설명
defaultLanguageCode (선택 사항) 언어를 명시적으로 지정하지 않는 문서에 적용할 언어 코드입니다. 기본 언어 코드를 지정하지 않으면 영어(en)가 기본 언어 코드입니다.
지원되는 언어 전체 목록을 참조하세요.
minimumPrecision 0.0과 1.0 사이의 값입니다. 출력의 piiEntities 신뢰도 점수가 설정된 minimumPrecision 값보다 낮으면 엔터티가 반환되거나 마스킹되지 않습니다. 기본값은 0.0입니다.
maskingMode 입력 텍스트에서 검색된 개인 정보를 마스킹하는 다양한 방법을 제공하는 매개 변수입니다. 지원되는 옵션은 다음과 같습니다.
  • "none" (기본값): 마스킹이 발생하지 않고 출력이 maskedText 반환되지 않습니다.
  • "replace": 검색된 엔터티를 매개 변수에 지정된 maskingCharacter 문자로 바꿉니다. 문자는 검색된 엔터티의 길이로 반복되므로 오프셋이 입력 텍스트와 출력 maskedText모두에 올바르게 해당합니다.
maskingCharacter maskingMode 매개 변수가 replace로 설정된 경우 텍스트를 마스킹하는데 사용되는 문자입니다. 지원되는 옵션은 다음과 같습니다. *(기본값). 이 매개 변수는 로 설정replace되지 않은 경우에만 maskingMode 가능합니다null.
domain (선택 사항) 문자열 값을 지정하면 do기본 엔터티 범주의 하위 집합으로 설정합니다. 가능한 값은 다음과 "phi" 같습니다(기밀 상태 정보만 검색) "none".
piiCategories (선택 사항) 검색되고 반환되는 엔터티를 지정하려면 이 선택적 매개 변수(문자열 목록으로 정의됨)를 적절한 엔터티 범주와 함께 사용합니다. 이 매개 변수를 사용하여 문서 언어에 대해 기본적으로 사용되지 않는 엔터티를 검색할 수도 있습니다. 전체 목록은 지원되는 개인 식별 정보 엔터티 범주를 참조하세요.
modelVersion (선택 사항) 개인 식별 정보 검색을 호출할 때 사용할 모델의 버전을 지정합니다. 지정하지 않으면 기본적으로 최신 버전으로 설정됩니다. 필요한 경우가 아니면 이 값을 지정하지 않는 것이 좋습니다.

기술 입력

입력 이름 설명
languageCode 레코드의 언어를 나타내는 문자열입니다. 이 매개 변수를 지정하지 않으면 기본 언어 코드가 레코드를 분석하는 데 사용됩니다.
지원되는 언어 전체 목록을 참조하세요.
text 분석할 텍스트입니다.

기술 출력

출력 이름 설명
piiEntities 다음 필드를 포함하는 복합 형식의 배열입니다.
  • "text"(추출된 실제 개인 식별 정보)
  • "type"
  • "subType"
  • "score"(값이 클수록 실제 엔터티일 가능성이 높음)
  • "offset"(입력 텍스트로)
  • "length"

전체 목록은 지원되는 개인 식별 정보 엔터티 범주를 참조하세요.
maskedText 이 출력은 에 따라 maskingMode다릅니다. 이 replace경우 maskingMode 출력은 입력 텍스트maskingMode에 대해 수행되는 마스킹의 문자열 결과입니다. 이 none경우 maskingMode 출력이 없습니다.

샘플 정의

  {
    "@odata.type": "#Microsoft.Skills.Text.PIIDetectionSkill",
    "defaultLanguageCode": "en",
    "minimumPrecision": 0.5,
    "maskingMode": "replace",
    "maskingCharacter": "*",
    "inputs": [
      {
        "name": "text",
        "source": "/document/content"
      }
    ],
    "outputs": [
      {
        "name": "piiEntities"
      },
      {
        "name": "maskedText"
      }
    ]
  }

샘플 입력

{
    "values": [
      {
        "recordId": "1",
        "data":
           {
             "text": "Microsoft employee with ssn 859-98-0987 is using our awesome API's."
           }
      }
    ]
}

샘플 출력

{
  "values": [
    {
      "recordId": "1",
      "data" : 
      {
        "piiEntities":[ 
           { 
              "text":"859-98-0987",
              "type":"U.S. Social Security Number (SSN)",
              "subtype":"",
              "offset":28,
              "length":11,
              "score":0.65
           }
        ],
        "maskedText": "Microsoft employee with ssn *********** is using our awesome API's."
      }
    }
  ]
}

이 기술의 출력에서 엔터티에 대해 반환되는 오프셋은 Language Service API에서 직접 반환됩니다. 즉, 원래 문자열로 인덱싱하는 데 사용하는 경우 올바른 콘텐츠를 추출하기 위해 .NET에서 StringInfo 클래스를 사용해야 합니다. 자세한 내용은 언어 서비스 기능에서 다국어 및 이모지 지원을 참조하세요.

오류 및 경고

문서의 언어 코드가 지원되지 않으면 경고가 반환되고 엔터티가 추출되지 않습니다. 텍스트가 비어 있으면 경고가 반환됩니다. 텍스트가 50,000자보다 큰 경우 처음 50,000자만 분석되고 경고가 발생합니다.

기술에서 경고를 반환하는 경우 출력maskedText이 비어 있을 수 있으며 , 이로써 출력을 필요로 하는 모든 다운스트림 기술에 영향을 줄 수 있습니다. 이러한 이유로 기술 세트 정의를 작성할 때 누락된 출력과 관련된 모든 경고를 조사해야 합니다.

참고 항목