엔터티 인식 기술(v2)

엔터티 인식 기술(v2)은 텍스트에서 다양한 형식의 엔터티를 추출합니다. 이 기술은 Azure AI 서비스의 Text Analytics에서 제공하는 기계 학습 모델을 사용합니다.

Important

엔터티 인식 기술(v2)(Microsoft.Skills.Text.EntityRecognitionSkill)은 이제 Microsoft.Skills.Text.V3.EntityRecognitionSkill로 대체되어 사용되지 않습니다. 사용되지 않는 기술의 권장 사항에 따라 지원되는 기술로 마이그레이션합니다.

참고 항목

처리 빈도를 높이거나, 문서를 더 추가하거나, AI 알고리즘을 더 추가하여 범위를 확장할 때 청구 가능한 Azure AI 서비스 리소스를 연결해야 합니다. 요금은 Azure AI 서비스에서 API를 호출할 때 발생하며, Azure AI Search의 문서 크래킹 단계의 일부로 이미지 추출에 대해 발생합니다. 문서에서 텍스트 추출에 대한 요금은 없습니다.

기본 제공 기술의 실행은 기존 Azure AI 서비스 종량제 가격으로 청구됩니다. 이미지 추출 가격 책정은 Azure AI Search 가격 책정 페이지에 설명되어 있습니다.

@odata.type

Microsoft.Skills.Text.EntityRecognitionSkill

데이터 제한

레코드의 최대 크기는 String.Length에 의해 측정된 대로 50,000자여야 합니다. 핵심 구 추출기로 보내기 전에 데이터를 분리해야 하는 경우 텍스트 분할 기술을 사용하는 것이 좋습니다. 텍스트 분할 기술을 사용하는 경우 최상의 성능을 위해 페이지 길이를 5000으로 설정합니다.

기술 매개 변수

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

매개 변수 이름 설명
categories 추출해야 하는 범주의 배열입니다. 가능한 범주 형식: "Person", "Location", "Organization", "Quantity", "Datetime", "URL", "Email". 범주가 제공되지 않으면 모든 형식이 반환됩니다.
defaultLanguageCode 입력 텍스트의 언어 코드입니다. 지원 ar, cs, da, de, en, es, fi, fr, hu, it, ja, ko, nl, no, pl, pt-BR, pt-PT, ru, sv, tr, zh-hans되는 언어는 다음과 같습니다. 모든 엔터티 범주가 모든 언어에 지원되는 것은 아닙니다. 아래 참고를 참조하세요.
minimumPrecision 0에서 1 사이의 값입니다. 출력의 namedEntities 신뢰도 점수가 이 값보다 낮으면 엔터티가 반환되지 않습니다. 기본값은 0입니다.
includeTypelessEntities 현재 범주에 맞지 않는 잘 알려진 엔터티를 인식하려면 true로 설정합니다. 인식된 엔터티는 entities 복합 출력 필드에서 반환됩니다. 예를 들어 "Windows 10"은 잘 알려진 엔터티(제품)이지만 "제품"은 지원되는 범주가 아니므로 이 엔터티는 엔터티 출력 필드에 포함됩니다. 기본값은 false

기술 입력

입력 이름 설명
languageCode 선택 사항입니다. 기본값은 "en"입니다.
text 분석할 텍스트입니다.

기술 출력

참고 항목

모든 엔터티 범주가 모든 언어에 지원되는 것은 아닙니다. "Person"위 언어의 전체 목록에 대해 , "Location""Organization" 엔터티 범주 유형이 지원됩니다. de, en, es, frzh-hans만 , "URL""Datetime""Email" 형식의 "Quantity"추출을 지원합니다. 자세한 내용은 Text Analytics API에 대한 언어 및 지역 지원을 참조하세요.

출력 이름 설명
persons 각 문자열이 사람의 이름을 나타내는 문자열 배열입니다.
locations 각 문자열이 위치를 나타내는 경우 문자열 배열입니다.
organizations 각 문자열이 조직을 나타내는 경우 문자열 배열입니다.
quantities 각 문자열이 수량을 나타내는 문자열 배열입니다.
dateTimes 각 문자열이 DateTime을 나타내는 문자열 배열입니다(텍스트에 나타나는 대로) 값입니다.
urls 각 문자열이 URL을 나타내는 경우 문자열 배열입니다.
emails 각 문자열이 전자 메일을 나타내는 문자열 배열입니다.
namedEntities 다음 필드를 포함하는 복합 형식의 배열입니다.
  • category
  • value(실제 엔터티 이름)
  • 오프셋(텍스트에서 발견된 위치)
  • 신뢰도(값이 높을수록 실제 엔터티가 된다는 의미)
entities 다음 필드를 사용하여 텍스트에서 추출된 엔터티에 대한 풍부한 정보를 포함하는 복합 형식의 배열입니다.
  • name(실제 엔터티 이름입니다. "정규화된" 형식을 나타냅니다.)
  • wikipediaId
  • wikipediaLanguage
  • wikipediaUrl(엔터티에 대한 Wikipedia 페이지에 대한 링크)
  • bingId
  • 형식(인식된 엔터티의 범주)
  • subType(특정 범주에만 사용할 수 있으며 엔터티 형식의 보다 세분화된 보기를 제공합니다.)
  • 일치(포함된 복합 컬렉션)
    • text(엔터티의 원시 텍스트)
    • offset(발견된 위치)
    • length(원시 엔터티 텍스트의 길이)

샘플 정의

  {
    "@odata.type": "#Microsoft.Skills.Text.EntityRecognitionSkill",
    "categories": [ "Person", "Email"],
    "defaultLanguageCode": "en",
    "includeTypelessEntities": true,
    "minimumPrecision": 0.5,
    "inputs": [
      {
        "name": "text",
        "source": "/document/content"
      }
    ],
    "outputs": [
      {
        "name": "persons",
        "targetName": "people"
      },
      {
        "name": "emails",
        "targetName": "contact"
      },
      {
        "name": "entities"
      }
    ]
  }

샘플 입력

{
    "values": [
      {
        "recordId": "1",
        "data":
           {
             "text": "Contoso corporation was founded by John Smith. They can be reached at contact@contoso.com",
             "languageCode": "en"
           }
      }
    ]
}

샘플 출력

{
  "values": [
    {
      "recordId": "1",
      "data" : 
      {
        "persons": [ "John Smith"],
        "emails":["contact@contoso.com"],
        "namedEntities": 
        [
          {
            "category":"Person",
            "value": "John Smith",
            "offset": 35,
            "confidence": 0.98
          }
        ],
        "entities":  
        [
          {
            "name":"John Smith",
            "wikipediaId": null,
            "wikipediaLanguage": null,
            "wikipediaUrl": null,
            "bingId": null,
            "type": "Person",
            "subType": null,
            "matches": [{
                "text": "John Smith",
                "offset": 35,
                "length": 10
            }]
          },
          {
            "name": "contact@contoso.com",
            "wikipediaId": null,
            "wikipediaLanguage": null,
            "wikipediaUrl": null,
            "bingId": null,
            "type": "Email",
            "subType": null,
            "matches": [
            {
                "text": "contact@contoso.com",
                "offset": 70,
                "length": 19
            }]
          },
          {
            "name": "Contoso",
            "wikipediaId": "Contoso",
            "wikipediaLanguage": "en",
            "wikipediaUrl": "https://en.wikipedia.org/wiki/Contoso",
            "bingId": "349f014e-7a37-e619-0374-787ebb288113",
            "type": null,
            "subType": null,
            "matches": [
            {
                "text": "Contoso",
                "offset": 0,
                "length": 7
            }]
          }
        ]
      }
    }
  ]
}

이 출력값에서 엔터티에 대해 반환되는 오프셋은 Text Analytics API에서 직접 반환되며, 이는 원래 문자열에 인덱싱하는 데 사용할 경우 올바른 콘텐츠를 추출하기 위해 .NET에서 StringInfo 클래스를 사용해야 한다는 의미입니다. 자세한 내용은 여기에서 찾을 수 있습니다.

경고 사례

문서의 언어 코드가 지원되지 않으면 경고가 반환되고 엔터티가 추출되지 않습니다.

참고 항목