テキスト分割コグニティブ スキル

テキスト分割スキルは、テキストをテキストのチャンクに分割します。 テキストを特定の長さの文章またはページに分割するかどうかを指定できます。 このスキルは、他のスキル ダウンストリームでテキストの最大長の要件がある場合に、特に便利です。

Note

このスキルは Azure AI サービスにバインドされていません。 これは課金対象外で、Azure AI サービスの重要な要件はありません。

@odata.type

Microsoft.Skills.Text.SplitSkill

スキルのパラメーター

パラメーターの大文字と小文字は区別されます。

パラメーター名 説明
textSplitMode pages または sentences のいずれかです。 ページには構成可能な最大長がありますが、スキルは文の切り捨てを回避しようとするため、実際の長さは小さくなる可能性があります。 文は、言語に文末の句読点がある場合、文末句読点 (句点、疑問符、感嘆符など) で終了する文字列です。
maximumPageLength textSplitModepages に設定されている場合にのみ適用されます。 このパラメーターは、String.Length で計測される最大ページ長を文字数で表します。 最小値は 300、最大値は 50000、既定値は 5000 です。 アルゴリズムではできる限り文の境界でテキストを分割しようとするため、各チャンクのサイズは maximumPageLength よりわずかに小さくなる可能性があります。
pageOverlapLength textSplitModepages に設定されている場合にのみ適用されます。 各ページは、前のページの末尾からこの文字数分が入って始まります。 このパラメータが 0 に設定されている場合、連続するページに重複するテキストはありません。 このパラメータは、2023-10-01-Preview REST API と、垂直統合をサポートするように更新された Azure SDK ベータ版パッケージでサポートされています。 このではそのパラメータが含まれています。
maximumPagesToTake textSplitModepages に設定されている場合にのみ適用されます。 返すページの数 既定値は 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 を使用して言語を検出する場合など) には、このパラメータを省略できます。 languageCodedefaultLanguageCode のサポート対象の一覧にない言語に設定した場合、警告が出力され、テキストは分割されません。

スキルの出力

パラメーター名 説明
textItems 出力は、抽出された部分文字列の配列です。 textItems は出力の既定の名前です。 targetName は省略可能ですが、複数のテキスト分割スキルがある場合は、最初のスキルのデータを 2 番目のスキルで上書きしないように設定 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 文字の pageOverlapLength と 1 文字の maximumPagesToTake が追加されます。

5,000 文字 (既定値) であると仮定 maximumPageLength すると、 "maximumPagesToTake": 1 各ソース ドキュメントの最初の 5,000 文字が処理されます。

次の使用例は、次の値に設定textItemsしますmyPagestargetName。 設定されているため targetNamemyPages テキスト分割スキルから出力を選択するために使用する必要がある値です。 ダウンストリーム スキル、インデクサー出力フィールド マッピング、ナレッジ ストア プロジェクション、インデックス プロジェクション使用/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" 配列内で、最初の項目の末尾のテキストが 2 番目の項目の先頭にコピーされます。

{
    "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..."
                ]
            }
        }
    ]
}

エラーになる場合

言語がサポートされていない場合は、警告が生成されます。

関連項目