Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Important
Beberapa parameter dalam pratinjau di bawah Ketentuan Penggunaan Tambahan. REST API pratinjau mendukung parameter ini.
Keterampilan Pemisahan Teks memecah teks menjadi potongan-potongan teks. Anda dapat menentukan apakah Anda ingin memecah teks menjadi kalimat atau menjadi halaman dengan panjang tertentu. Metadata posisi seperti offset dan posisi ordinal juga tersedia sebagai output. Keterampilan ini berguna jika ada persyaratan panjang teks maksimum dalam keterampilan lain di hilir, seperti keterampilan penyematan yang meneruskan potongan data ke model penyematan di Azure OpenAI dan penyedia model lainnya. Untuk informasi selengkapnya tentang skenario ini, lihat Dokumen potongan untuk pencarian vektor.
Beberapa parameter spesifik versi. Tabel parameter keterampilan mencatat versi API tempat parameter diperkenalkan sehingga Anda tahu apakah peningkatan versi diperlukan. Untuk menggunakan fitur khusus versi seperti token chunking di 2024-09-01-preview, Anda dapat menggunakan portal Azure, atau menargetkan versi REST API, atau memeriksa log perubahan Azure SDK untuk melihat apakah itu mendukung fitur tersebut.
Portal Azure mendukung sebagian besar fitur pratinjau dan dapat digunakan untuk membuat atau memperbarui set keterampilan. Untuk pembaruan keterampilan Pemisahan Teks, edit definisi JSON set keterampilan untuk menambahkan parameter pratinjau baru.
Nota
Keterampilan ini tidak terikat pada Alat Pengecoran. Ini tidak dapat ditagih dan tidak memiliki persyaratan kunci Alat Pengecoran.
@odata.type
Microsoft.Skills.Text.SplitSkill
Parameter keterampilan
Parameter peka huruf besar/kecil.
| Nama Parameter | Deskripsi |
|---|---|
textSplitMode |
Salah satu pages atau sentences. Halaman memiliki panjang maksimum yang dapat dikonfigurasi, tetapi keterampilan mencoba untuk menghindari pemotongan kalimat sehingga panjang sebenarnya mungkin lebih kecil. Kalimat adalah string yang diakhiri pada tanda baca akhir kalimat, seperti titik, tanda tanya, atau tanda seru, dengan asumsi bahasa tersebut memiliki tanda baca akhir kalimat. |
maximumPageLength |
Hanya berlaku jika textSplitMode diatur ke pages. Untuk unit set to characters, parameter ini mengacu pada panjang halaman maksimum dalam karakter yang diukur dengan String.Length. Nilai minimum adalah 300, maksimum adalah 50000, dan nilai defaultnya adalah 5000. Algoritme melakukan yang terbaik untuk mematahkan teks pada batas kalimat, sehingga ukuran setiap potongan mungkin sedikit kurang dari maximumPageLength. Untuk unit diatur ke azureOpenAITokens, panjang halaman maksimum adalah batas panjang token model. Untuk model penyematan teks, rekomendasi umum untuk panjang halaman adalah 512 token. |
defaultLanguageCode |
(opsional) Salah satu kode bahasa berikut: 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. Defaultnya adalah bahasa Inggris (en). Beberapa hal yang perlu dipertimbangkan:
|
pageOverlapLength |
Hanya berlaku jika textSplitMode diatur ke pages. Setiap halaman dimulai dengan jumlah karakter atau token ini dari akhir halaman sebelumnya. Jika parameter ini diatur ke 0, tidak ada teks yang tumpang tindih pada halaman berturut-turut.
Contoh ini mencakup parameter. |
maximumPagesToTake |
Hanya berlaku jika textSplitMode diatur ke pages. Jumlah halaman yang akan dikembalikan. Defaultnya adalah 0, yang berarti mengembalikan semua halaman. Anda harus menetapkan nilai ini jika hanya sebagian halaman yang diperlukan.
Contoh ini mencakup parameter. |
unit |
Hanya berlaku jika textSplitMode diatur ke pages. Menentukan apakah akan dipotong dengan characters (default) atau azureOpenAITokens. Mengatur unit memengaruhi maximumPageLength dan pageOverlapLength. |
azureOpenAITokenizerParameters Objek yang menyediakan parameter tambahan untuk azureOpenAITokens unit. encoderModelName adalah tokenizer yang ditunjuk yang digunakan untuk mengubah teks menjadi token, penting untuk tugas pemrosesan bahasa alami (NLP). Model yang berbeda menggunakan tokenizer yang berbeda. Nilai yang valid termasuk cl100k_base (default) yang digunakan oleh GPT-4. Nilai valid lainnya adalah r50k_base, p50k_base, dan p50k_edit. Keterampilan ini mengimplementasikan pustaka tiktoken melalui SharpToken dan Microsoft.ML.Tokenizers tetapi tidak mendukung setiap encoder. Misalnya, saat ini tidak ada dukungan untuk pengkodean o200k_base yang digunakan oleh GPT-4o. allowedSpecialTokens mendefinisikan kumpulan token khusus yang diizinkan dalam proses tokenisasi. Token khusus adalah string yang ingin Anda perlakukan secara unik, memastikannya tidak terbelah selama tokenisasi. Misalnya ["[MULAI"], "[AKHIR]"]. Jika tiktoken pustaka tidak melakukan tokenisasi seperti yang diharapkan, baik karena batasan khusus bahasa atau perilaku tak terduga lainnya, disarankan untuk menggunakan pemisahan teks sebagai gantinya. |
Input keterampilan
| Nama Parameter | Deskripsi |
|---|---|
text |
Teks yang akan dibagi menjadi substring. |
languageCode |
(Opsional) Kode bahasa untuk dokumen. Jika Anda tidak mengetahui bahasa input teks (misalnya, jika Anda menggunakan LanguageDetectionSkill untuk mendeteksi bahasa), Anda dapat menghilangkan parameter ini. Jika Anda menyetel languageCode ke bahasa tidak ada dalam daftar yang didukung untuk defaultLanguageCode, peringatan akan dipancarkan dan teks tidak dibagi. |
Output keterampilan
| Nama Parameter | Deskripsi |
|---|---|
textItems |
Output adalah array substring yang diekstraksi.
textItems adalah nama default output. targetName opsional, tetapi jika Anda memiliki beberapa keterampilan Pemisahan Teks, pastikan untuk mengatur targetName agar Anda tidak menimpa data dari keterampilan pertama dengan keterampilan kedua. Jika targetName diatur, gunakan dalam pemetaan bidang output atau dalam keterampilan hilir yang menggunakan output keterampilan, seperti keterampilan penyematan. |
offsets |
Output adalah susunan offset yang diekstraksi. Nilai pada setiap indeks adalah objek yang berisi offset item teks pada indeks tersebut dalam tiga pengkodean: UTF-8, UTF-16, dan CodePoint.
offsets adalah nama default output. targetName opsional, tetapi jika Anda memiliki beberapa keterampilan Pemisahan Teks, pastikan untuk mengatur targetName agar Anda tidak menimpa data dari keterampilan pertama dengan keterampilan kedua. Jika targetName diatur, gunakan dalam pemetaan bidang output atau dalam keterampilan hilir yang menggunakan output keterampilan, seperti keterampilan penyematan. |
lengths |
Output adalah susunan panjang yang diekstraksi. Nilai pada setiap indeks adalah objek yang berisi offset item teks pada indeks tersebut dalam tiga pengkodean: UTF-8, UTF-16, dan CodePoint.
lengths adalah nama default output. targetName opsional, tetapi jika Anda memiliki beberapa keterampilan Pemisahan Teks, pastikan untuk mengatur targetName agar Anda tidak menimpa data dari keterampilan pertama dengan keterampilan kedua. Jika targetName diatur, gunakan dalam pemetaan bidang output atau dalam keterampilan hilir yang menggunakan output keterampilan, seperti keterampilan penyematan. |
ordinalPositions |
Output adalah array posisi ordinal yang sesuai dengan posisi item teks dalam teks sumber.
ordinalPositions adalah nama default output. targetName opsional, tetapi jika Anda memiliki beberapa keterampilan Pemisahan Teks, pastikan untuk mengatur targetName agar Anda tidak menimpa data dari keterampilan pertama dengan keterampilan kedua. Jika targetName diatur, gunakan dalam pemetaan bidang output atau dalam keterampilan hilir yang menggunakan output keterampilan, seperti keterampilan penyematan. |
Contoh definisi
{
"name": "SplitSkill",
"@odata.type": "#Microsoft.Skills.Text.SplitSkill",
"description": "A skill that splits text into chunks",
"context": "/document",
"defaultLanguageCode": "en",
"textSplitMode": "pages",
"unit": "azureOpenAITokens",
"azureOpenAITokenizerParameters":{
"encoderModelName":"cl100k_base",
"allowedSpecialTokens": [
"[START]",
"[END]"
]
},
"maximumPageLength": 512,
"inputs": [
{
"name": "text",
"source": "/document/text"
},
{
"name": "languageCode",
"source": "/document/language"
}
],
"outputs": [
{
"name": "textItems",
"targetName": "pages"
}
]
}
Input contoh
{
"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"
}
}
]
}
Contoh keluaran
{
"values": [
{
"recordId": "1",
"data": {
"pages": [
"This is the loan...",
"In the next section, we continue..."
],
"offsets": [
{
"utf8": 0,
"utf16": 0,
"codePoint": 0
},
{
"utf8": 146,
"utf16": 146,
"codePoint": 146
}
],
"lengths": [
{
"utf8": 146,
"utf16": 146,
"codePoint": 146
},
{
"utf8": 211,
"utf16": 211,
"codePoint": 211
}
],
"ordinalPositions" : [
1,
2
]
}
},
{
"recordId": "2",
"data": {
"pages": [
"This is the second document...",
"In the next section of the second doc..."
],
"offsets": [
{
"utf8": 0,
"utf16": 0,
"codePoint": 0
},
{
"utf8": 115,
"utf16": 115,
"codePoint": 115
}
],
"lengths": [
{
"utf8": 115,
"utf16": 115,
"codePoint": 115
},
{
"utf8": 209,
"utf16": 209,
"codePoint": 209
}
],
"ordinalPositions" : [
1,
2
]
}
}
]
}
Nota
Contoh ini diatur textItems ke pages melalui targetName. Karena targetName ditetapkan, pages adalah nilai yang harus Anda gunakan untuk memilih output dari keterampilan Pemisahan Teks. Gunakan /document/pages/* dalam keterampilan hilir, pemetaan bidang keluaran pengindeks, proyeksi penyimpanan pengetahuan, dan proyeksi indeks.
Contoh ini tidak menetapkan offsets, lengths, atau ordinalPosition ke nama lain, sehingga nilai yang harus Anda gunakan dalam keterampilan hilir tidak akan berubah.
offsets dan lengths merupakan jenis kompleks daripada primitif, karena berisi nilai untuk beberapa jenis pengkodean. Nilai yang harus Anda gunakan untuk mendapatkan pengkodean tertentu, misalnya UTF-8, akan terlihat seperti ini: /document/offsets/*/utf8.
Contoh untuk pemotongan dan vektorisasi
Contoh ini untuk vektorisasi terintegrasi.
pageOverlapLength: Teks yang tumpang tindih berguna dalam skenario pemotongan data karena menjaga kontinuitas antara potongan yang dihasilkan dari dokumen yang sama.maximumPagesToTake: Batas asupan halaman berguna dalam skenario vektorisasi karena membantu Anda tetap berada di bawah batas input maksimum model penyematan yang menyediakan vektorisasi.
Contoh definisi
Definisi ini menambahkan pageOverlapLength 100 karakter dan maximumPagesToTake satu.
Dengan asumsi 5.000 maximumPageLength karakter (default), maka "maximumPagesToTake": 1 proses 5.000 karakter pertama dari setiap dokumen sumber.
Contoh ini diatur textItems ke myPages melalui targetName. Karena targetName ditetapkan, myPages adalah nilai yang harus Anda gunakan untuk memilih output dari keterampilan Pemisahan Teks. Gunakan /document/myPages/* dalam keterampilan hilir, pemetaan bidang keluaran pengindeks, proyeksi penyimpanan pengetahuan, dan proyeksi indeks.
{
"@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"
}
]
}
Contoh input (sama seperti contoh sebelumnya)
{
"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"
}
}
]
}
Output sampel (perhatikan tumpang tindihnya)
Dalam setiap array "textItems", teks di belakang dari item pertama disalin ke awal item kedua.
{
"values": [
{
"recordId": "1",
"data": {
"myPages": [
"This is the loan...Here is the overlap part",
"Here is the overlap part...In the next section, we continue..."
]
}
},
{
"recordId": "2",
"data": {
"myPages": [
"This is the second document...Here is the overlap part...",
"Here is the overlap part...In the next section of the second doc..."
]
}
}
]
}
Kasus kesalahan
Jika bahasa tidak didukung, peringatan akan dibuat.