Когнитивный навык разделения текста

Навык Разделение текста разделяет текст на блоки текста. Можете указать, хотите ли вы разбить текст на предложения или на страницы определенной длины. Этот навык особенно полезен при наличии требований к максимальной длине текста в последующих навыках.

Примечание.

Этот навык не привязан к службам ИИ Azure. Она не взимается и не имеет ключевого требования к службам искусственного интеллекта Azure.

@odata.type

Microsoft.Skills.Text.SplitSkill

Параметры навыков

Параметры зависят от регистра.

Наименование параметра Description
textSplitMode pages или sentences. Страницы имеют настраиваемую максимальную длину, но навык пытается избежать усечения предложения, поэтому фактическая длина может быть меньше. Предложения — это строка, завершающаяся при препинаниях, таких как период, вопросительный знак или восклицательный знак, если язык имеет знак препинания.
maximumPageLength Применяется, только если для параметра textSplitMode задано значение pages. Этот параметр ссылается на максимальную длину страницы в символах, измеряемых по String.Length. Минимальное значение равно 300, максимальное — 50000, а значение по умолчанию — 5000. Алгоритм делает все возможное, чтобы разорвать текст по границам предложения, поэтому размер каждого блока может быть немного меньше maximumPageLength.
pageOverlapLength Применяется, только если для параметра textSplitMode задано значение pages. Каждая страница начинается с этого числа символов с конца предыдущей страницы. Если для этого параметра задано значение 0, на последующих страницах нет перекрывающегося текста. Этот параметр поддерживается в REST API 2023-10-01-Preview и в бета-версиях пакета Azure SDK, которые были обновлены для поддержки интегрированной векторизации. Этот пример включает параметр.
maximumPagesToTake Применяется, только если для параметра textSplitMode задано значение pages. Количество возвращаемых страниц. Значение по умолчанию — 0, то есть возвращает все страницы. Это значение следует задать, если требуется только подмножество страниц. Этот параметр поддерживается в REST API 2023-10-01-Preview и в бета-версиях пакета 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 использовать значение по умолчанию.

Входные данные навыков

Наименование параметра Description
text Текст, который будет разбит на подстроки.
languageCode (Необязательно.) Код языка документа. Если вы не знаете язык текстовых входных данных (например, если вы используете LanguageDetectionSkill для обнаружения языка), этот параметр можно опустить. languageCode Если для языка нет в поддерживаемом спискеdefaultLanguageCode, создается предупреждение, и текст не разбивается.

Выходные данные навыка

Наименование параметра Description
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: ограничения на потребление страниц полезны в сценариях векторизации , так как это помогает оставаться под максимальными ограничениями входных данных моделей внедрения, которые обеспечивают векторизацию.

Пример определения

Это определение добавляет pageOverlapLength 100 символов и maximumPagesToTake одного.

Предположим, maximumPageLength что значение равно 5000 символов (по умолчанию), а затем "maximumPagesToTake": 1 обрабатывает первые 5000 символов каждого исходного документа.

В этом примере задано textItems значение .myPagestargetName>. Так как 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..."
                ]
            }
        }
    ]
}

Варианты ошибок

Если язык не поддерживается, создается предупреждение.

См. также