テキスト分割コグニティブ スキル
テキスト分割スキルは、テキストをテキストのチャンクに分割します。 テキストを特定の長さの文章またはページに分割するかどうかを指定できます。 このスキルは、他のスキル ダウンストリームでテキストの最大長の要件がある場合に、特に便利です。
Note
このスキルは Azure AI サービスにバインドされていません。 これは課金対象外で、Azure AI サービスの重要な要件はありません。
@odata.type
Microsoft.Skills.Text.SplitSkill
スキルのパラメーター
パラメーターの大文字と小文字は区別されます。
パラメーター名 | 説明 |
---|---|
textSplitMode |
pages または sentences のいずれかです。 ページには構成可能な最大長がありますが、スキルは文の切り捨てを回避しようとするため、実際の長さは小さくなる可能性があります。 文は、言語に文末の句読点がある場合、文末句読点 (句点、疑問符、感嘆符など) で終了する文字列です。 |
maximumPageLength |
textSplitMode が pages に設定されている場合にのみ適用されます。 このパラメーターは、String.Length で計測される最大ページ長を文字数で表します。 最小値は 300、最大値は 50000、既定値は 5000 です。 アルゴリズムではできる限り文の境界でテキストを分割しようとするため、各チャンクのサイズは maximumPageLength よりわずかに小さくなる可能性があります。 |
pageOverlapLength |
textSplitMode が pages に設定されている場合にのみ適用されます。 各ページは、前のページの末尾からこの文字数分が入って始まります。 このパラメータが 0 に設定されている場合、連続するページに重複するテキストはありません。 このパラメーターは、 2024-07-01 以降のプレビュー REST API と、統合ベクター化をサポートするように更新された Azure SDK パッケージでサポートされています。 この例ではそのパラメータが含まれています。 |
maximumPagesToTake |
textSplitMode が pages に設定されている場合にのみ適用されます。 返すページの数 既定値は 0 で、その場合すべてのページを返します。 ページのサブセットのみが必要な場合は、この値を設定するとよいです。 このパラメーターは、 2024-07-01 以降のプレビュー 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) です。 次の考慮事項があります。
|
スキルの入力
パラメーター名 | 説明 |
---|---|
text |
部分文字列に分割するテキスト。 |
languageCode |
(省略可能) ドキュメントの言語コード。 テキスト入力の言語がわからない場合 (たとえば、LanguageDetectionSkill を使用して言語を検出する場合など) には、このパラメータを省略できます。 languageCode を defaultLanguageCode のサポート対象の一覧にない言語に設定した場合、警告が出力され、テキストは分割されません。 |
スキルの出力
パラメーター名 | 説明 |
---|---|
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
が追加されます。
maximumPageLength
が 5,000 文字 (既定値) であると仮定すると、"maximumPagesToTake": 1
は各ソース ドキュメントの最初の 5,000 文字を処理します。
次の使用例は、textItems
を targetName
を使用してmyPages
に設定します。 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" 配列内で、最初の項目の末尾のテキストが 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..."
]
}
}
]
}
エラーになる場合
言語がサポートされていない場合は、警告が生成されます。