텍스트 분할 인식 기술

분할 텍스트 기술은 텍스트를 텍스트의 청크로 나눕니다. 텍스트를 문장으로 나눌지 또는 특정 길이의 페이지로 나눌지 지정할 수 있습니다. 이 기술은 다른 기술 다운스트림에 최대 텍스트 길이 요구 사항이 있는 경우에 특히 유용합니다.

참고 항목

이 기술은 Azure AI 서비스에 바인딩되지 않습니다. 청구할 수 없으며 Azure AI 서비스 키 요구 사항이 없습니다.

@odata.type

Microsoft.Skills.Text.SplitSkill

기술 매개 변수

매개 변수는 대/소문자를 구분합니다.

매개 변수 이름 설명
textSplitMode pages 또는 sentences 중 하나입니다. 페이지의 최대 길이는 구성 가능하지만, 실제 길이가 더 작을 수 있도록 기술에서 문장 잘림을 방지하려고 합니다. 문장은 언어에 문장 끝 문장 부호가 있다고 가정하여 마침표, 물음표 또는 느낌표와 같은 문장 끝 문장 부호에서 종료되는 문자열입니다.
maximumPageLength 로 설정된 pages경우에만 textSplitMode 적용됩니다. 이 매개 변수는 측정값으로 문자의 최대 페이지 길이를 String.Length나타냅니다. 최소값은 300, 최대값은 50000, 기본값은 5000입니다. 알고리즘은 문장 경계에서 텍스트를 분리하는 데 가장 적합하므로 각 청크의 크기가 .보다 maximumPageLength약간 작을 수 있습니다.
pageOverlapLength 로 설정된 pages경우에만 textSplitMode 적용됩니다. 각 페이지는 이전 페이지의 끝에서 이 문자 수로 시작합니다. 이 매개 변수를 0으로 설정하면 연속 페이지에 겹치는 텍스트가 없습니다. 이 매개 변수는 2023-10-01-Preview REST API 및 통합 벡터화를 지원하도록 업데이트된 Azure SDK 베타 패키지에서 지원됩니다. 이 예제 에는 매개 변수가 포함됩니다.
maximumPagesToTake 로 설정된 pages경우에만 textSplitMode 적용됩니다. 반환할 페이지 수입니다. 기본값은 0입니다. 즉, 모든 페이지를 반환합니다. 페이지의 하위 집합만 필요한 경우 이 값을 설정해야 합니다. 이 매개 변수는 2023-10-01-Preview REST API 및 통합 벡터화를 지원하도록 업데이트된 Azure SDK 베타 패키지에서 지원됩니다. 이 예제 에는 매개 변수가 포함됩니다.
defaultLanguageCode (선택 사항) 다음 언어 코드 중 하나입니다. am, bs, cs, da, de, en, es, et, fr, he, hi, hr, hu, fi, id, is, it, ja, ko, lv, no, nl, pl, pt-PT, pt-BR, ru, sk, sl, sr, sv, tr, ur, zh-Hans 기본값은 영어(en)입니다. 고려해야 할 몇 가지 사항은 다음과 같습니다.
  • 언어 코드를 제공하는 것은 중국어, 일본어 및 한국어와 같은 비백인 영역 언어에 대해 단어를 반으로 자르지 않도록 하는 데 유용합니다.
  • 언어를 미리 모르는 경우(예: LanguageDetectionSkill을 사용하여 언어를 검색하는 경우) 기본값을 en 사용하는 것이 좋습니다.

기술 입력

매개 변수 이름 설명
text 부분 문자열로 분할할 텍스트입니다.
languageCode (선택 사항) 문서에 대한 언어 코드입니다. 텍스트 입력의 언어를 모르는 경우(예: LanguageDetectionSkill을 사용하여 언어를 검색하는 경우) 이 매개 변수를 생략할 수 있습니다. 언어로 설정한 languageCode 경우 지원되는 목록에 defaultLanguageCode없는 경우 경고가 내보내지고 텍스트가 분할되지 않습니다.

기술 출력

매개 변수 이름 설명
textItems 출력은 추출된 부분 문자열의 배열입니다. textItems 는 출력의 기본 이름입니다. targetName 는 선택 사항이지만 텍스트 분할 기술이 여러 개 있는 경우 첫 번째 기술의 데이터를 두 번째 기술로 덮어쓰지 않도록 설정 targetName 해야 합니다. 설정된 경우 targetName 출력 필드 매핑 또는 기술 출력을 사용하는 다운스트림 기술에 사용합니다.

샘플 정의

{
    "@odata.type": "#Microsoft.Skills.Text.SplitSkill",
    "textSplitMode" : "pages", 
    "maximumPageLength": 1000,
    "defaultLanguageCode": "en",
    "inputs": [
        {
            "name": "text",
            "source": "/document/content"
        },
        {
            "name": "languageCode",
            "source": "/document/language"
        }
    ],
    "outputs": [
        {
            "name": "textItems",
            "targetName": "mypages"
        }
    ]
}

샘플 입력

{
    "values": [
        {
            "recordId": "1",
            "data": {
                "text": "This is the loan application for Joe Romero, a Microsoft employee who was born in Chile and who then moved to Australia...",
                "languageCode": "en"
            }
        },
        {
            "recordId": "2",
            "data": {
                "text": "This is the second document, which will be broken into several pages...",
                "languageCode": "en"
            }
        }
    ]
}

샘플 출력

{
    "values": [
        {
            "recordId": "1",
            "data": {
                "textItems": [
                    "This is the loan...",
                    "In the next section, we continue..."
                ]
            }
        },
        {
            "recordId": "2",
            "data": {
                "textItems": [
                    "This is the second document...",
                    "In the next section of the second doc..."
                ]
            }
        }
    ]
}

청크 및 벡터화 예제

이 예제는 현재 미리 보기로 된 통합 벡터화를 위한 것입니다. 샘플 정의에 미리 보기 전용 매개 변수를 추가하고 결과 출력을 표시합니다.

  • pageOverlapLength: 겹치는 텍스트는 동일한 문서에서 생성된 청크 간의 연속성을 유지하므로 데이터 청크 시나리오에서 유용합니다.

  • maximumPagesToTake: 페이지 유입 제한은 벡터화를 제공하는 포함 모델의 최대 입력 한도를 유지하는 데 도움이 되므로 벡터화 시나리오에서 유용합니다.

샘플 정의

이 정의는 100자 및 maximumPagesToTake 1자를 추가합니다pageOverlapLength.

maximumPageLength 5,000자(기본값)라고 가정하면 "maximumPagesToTake": 1 각 원본 문서의 처음 5,000자를 처리합니다.

이 예제에서는 다음을 통해 myPagestargetName설정합니다textItems. targetName 설정 myPages 되므로 텍스트 분할 기술에서 출력을 선택하는 데 사용해야 하는 값입니다. 다운스트림 기술, 인덱서 출력 필드 매핑, 지식 저장소 프로젝션 및 인덱스 프로젝션에 사용합니다/document/mypages/*.

{
    "@odata.type": "#Microsoft.Skills.Text.SplitSkill",
    "textSplitMode" : "pages", 
    "maximumPageLength": 1000,
    "pageOverlapLength": 100,
    "maximumPagesToTake": 1,
    "defaultLanguageCode": "en",
    "inputs": [
        {
            "name": "text",
            "source": "/document/content"
        },
        {
            "name": "languageCode",
            "source": "/document/language"
        }
    ],
    "outputs": [
        {
            "name": "textItems",
            "targetName": "mypages"
        }
    ]
}

샘플 입력(이전 예제와 동일)

{
    "values": [
        {
            "recordId": "1",
            "data": {
                "text": "This is the loan application for Joe Romero, a Microsoft employee who was born in Chile and who then moved to Australia...",
                "languageCode": "en"
            }
        },
        {
            "recordId": "2",
            "data": {
                "text": "This is the second document, which will be broken into several sections...",
                "languageCode": "en"
            }
        }
    ]
}

샘플 출력(겹침 확인)

각 "textItems" 배열 내에서 첫 번째 항목의 후행 텍스트가 두 번째 항목의 시작 부분에 복사됩니다.

{
    "values": [
        {
            "recordId": "1",
            "data": {
                "textItems": [
                    "This is the loan...Here is the overlap part",
                    "Here is the overlap part...In the next section, we continue..."
                ]
            }
        },
        {
            "recordId": "2",
            "data": {
                "textItems": [
                    "This is the second document...Here is the overlap part...",
                    "Here is the overlap part...In the next section of the second doc..."
                ]
            }
        }
    ]
}

오류 사례

언어가 지원되지 않으면 경고가 생성됩니다.

참고 항목