Keterampilan kognitif pemisah teks
Penting
Beberapa parameter berada dalam pratinjau publik di bawah Ketentuan Penggunaan Tambahan. PRATINJAU REST API mendukung parameter ini.
Keterampilan Pemisahan Teks memutus teks menjadi beberapa gugus teks. Anda dapat menentukan apakah Anda ingin memutus teks menjadi kalimat atau menjadi halaman dengan panjang tertentu. 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 gugus untuk pencarian vektor.
Beberapa parameter khusus versi. Tabel parameter keterampilan mencatat versi API tempat parameter diperkenalkan sehingga Anda tahu apakah peningkatan versi diperlukan. Untuk menggunakan fitur khusus versi seperti potongan token dalam pratinjau 2024-09-01, Anda dapat menggunakan portal Azure, atau menargetkan versi REST API, atau memeriksa log perubahan Azure SDK untuk melihat apakah mendukung fitur tersebut.
portal Azure mendukung sebagian besar fitur pratinjau dan dapat digunakan untuk membuat atau memperbarui set keterampilan. Untuk pembaruan pada keterampilan Pemisahan Teks, edit definisi JSON skillset untuk menambahkan parameter pratinjau baru.
Catatan
Keterampilan ini tidak terikat ke layanan Azure AI. Ini tidak dapat ditagih dan tidak memiliki persyaratan kunci layanan Azure AI.
@odata.type
Microsoft.Skills.Text.SplitSkill
Parameter keterampilan
Parameternya peka huruf besar/kecil.
Nama Parameter | Versi | Deskripsi |
---|---|---|
textSplitMode |
Semua versi | Salah satu pages atau sentences . Halaman memiliki panjang maksimum yang dapat dikonfigurasi, tetapi keterampilan mencoba menghindari pemotongan kalimat sehingga panjang aktual mungkin lebih kecil. Kalimat adalah string yang berakhir pada tanda baca akhir kalimat, seperti titik, tanda tanya, atau tanda seru, dengan asumsi bahasa memiliki tanda baca akhir kalimat. |
maximumPageLength |
Semua versi | Hanya diterapkan jika textSplitMode diatur ke pages . Untuk unit diatur ke characters , parameter ini mengacu pada panjang halaman maksimum dalam karakter sebagaimana diukur oleh String.Length . Nilai minimum adalah 300, maksimum adalah 50000, dan nilai defaultnya adalah 5000. Algoritma melakukan yang terbaik untuk memecah teks pada batas kalimat, sehingga ukuran setiap gugus 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 |
Semua versi | (opsional) Salah satu kode bahasa pemrogram 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 |
2024-07-01 | Hanya diterapkan 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 |
2024-07-01 | Hanya diterapkan jika textSplitMode diatur ke pages . Jumlah halaman yang akan dikembalikan. Defaultnya adalah 0, yang berarti mengembalikan semua halaman. Anda harus mengatur nilai ini jika hanya subkumpulan halaman yang diperlukan. Contoh ini mencakup parameter . |
unit |
Pratinjau 09-09-2024 |
New. Hanya diterapkan jika textSplitMode diatur ke pages . Menentukan apakah akan memotong menurut characters (default) atau azureOpenAITokens . Mengatur unit memengaruhi maximumPageLength dan pageOverlapLength . |
azureOpenAITokenizerParameters |
Pratinjau 09-09-2024 |
New. Objek yang menyediakan parameter tambahan untuk azureOpenAITokens unit. encoderModelName adalah tokenizer yang ditunjuk yang digunakan untuk mengonversi 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-35-Turbo dan 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 pengodean o200k_base yang digunakan oleh GPT-4o. allowedSpecialTokens menentukan kumpulan token khusus yang diizinkan dalam proses tokenisasi. Token khusus adalah string yang ingin Anda perlakukan secara unik, memastikan token tersebut tidak dibagi selama tokenisasi. Misalnya ["[START"], "[END]"]. Untuk bahasa di mana pustaka tiktoken tidak melakukan tokenisasi seperti yang diharapkan, disarankan untuk menggunakan pemisahan teks sebagai gantinya. |
Input keterampilan
Nama Parameter | Deskripsi |
---|---|
text |
Teks untuk dipisah menjadi substring. |
languageCode |
(Opsional) Kode bahasa pemrogram untuk dokumen. Jika Anda tidak mengetahui bahasa input teks (misalnya, jika Anda menggunakan LanguageDetectionSkill untuk mendeteksi bahasa), Anda dapat menghilangkan parameter ini. Jika Anda mengatur languageCode ke bahasa tidak ada dalam daftar yang didukung untuk defaultLanguageCode , peringatan dipancarkan dan teks tidak dibagi. |
Output keterampilan
Nama Parameter | Deskripsi |
---|---|
textItems |
Output adalah array substring yang diekstrak.
textItems adalah nama default output. targetName bersifat opsional, tetapi jika Anda memiliki beberapa keterampilan Pemisahan Teks, pastikan untuk mengatur targetName agar Anda tidak menimpa data dari keterampilan pertama dengan yang kedua. Jika targetName diatur, gunakan dalam pemetaan bidang output atau dalam keterampilan hilir yang menggunakan output keterampilan, seperti keterampilan penyematan. |
Definisi sampel
{
"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 sampel
{
"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"
}
}
]
}
Sampel output
{
"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..."
]
}
}
]
}
Contoh untuk pemotongan dan vektorisasi
Contoh ini untuk vektorisasi terintegrasi.
pageOverlapLength
: Teks yang tumpang tindih berguna dalam skenario pemotongan data karena mempertahankan kelangsungan antara gugus yang dihasilkan dari dokumen yang sama.maximumPagesToTake
: Batasan asupan halaman berguna dalam skenario vektorisasi karena membantu Anda tetap berada di bawah batas input maksimum dari model penyematan yang menyediakan vektorisasi.
Definisi sampel
Definisi ini menambahkan pageOverlapLength
100 karakter dan maximumPagesToTake
satu karakter.
Dengan asumsi maximumPageLength
adalah 5.000 karakter (default), lalu "maximumPagesToTake": 1
memproses 5.000 karakter pertama dari setiap dokumen sumber.
Contoh ini diatur textItems
ke myPages
melalui targetName
. Karena targetName
diatur, myPages
adalah nilai yang harus Anda gunakan untuk memilih output dari keterampilan Pemisahan Teks. Gunakan /document/mypages/*
dalam keterampilan hilir, pemetaan bidang output 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"
}
]
}
Input sampel (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"
}
}
]
}
Sampel output (perhatikan tumpang tindih)
Dalam setiap array "textItems", teks berikutnya dari item pertama disalin ke awal item kedua.
{
"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..."
]
}
}
]
}
Kasus kesalahan
Jika bahasa tidak didukung, peringatan akan dihasilkan.