Megosztás a következőn keresztül:


Szövegfelosztási kognitív képesség

Fontos

Egyes paraméterek nyilvános előzetes verzióban érhetők el a kiegészítő használati feltételek alatt. Az előzetes REST API támogatja ezeket a paramétereket.

A Szöveg felosztása képesség szövegrészekre bontja a szöveget. Megadhatja, hogy a szöveget mondatokra vagy adott hosszúságú oldalakra szeretné-e bontani. Ez a képesség akkor hasznos, ha a szöveghosszra vonatkozó követelmények maximálisak az alsóbb rétegbeli készségekben, például olyan beágyazási képességek, amelyek adattömböket adnak át az Azure OpenAI-beli és más modellszolgáltatók beágyazási modelljeinek. A forgatókönyvről további információt az adattömb-dokumentumokban talál a vektorkereséshez.

Számos paraméter verzióspecifikus. A skills paraméter táblája megjegyzi az API azon verzióját, amelyben egy paramétert bevezettek, így ön tudja, hogy szükséges-e verziófrissítés . Ha verzióspecifikus funkciókat szeretne használni, például a 2024-09-01-es előzetes verziójú jogkivonat-adattömbkezelést, használhatja az Azure Portalt, vagy megcélozhat egy REST API-verziót, vagy ellenőrizheti az Azure SDK változásnaplóját, hogy támogatja-e a funkciót.

Az Azure Portal a legtöbb előzetes verziójú funkciót támogatja, és készségkészletek létrehozásához vagy frissítéséhez használható. A Szöveg felosztása képesség frissítéséhez szerkessze a JSON-definíciót, és adjon hozzá új előzetes verziós paramétereket.

Feljegyzés

Ez a képesség nem kötődik az Azure AI-szolgáltatásokhoz. Nem számlázható, és nincs Azure AI-szolgáltatások kulcskövetelménye.

@odata.type

Microsoft.Skills.Text.SplitSkill

Képességparaméterek

A paraméterek megkülönböztetik a kis- és nagybetűket.

Paraméter neve Verzió Leírás
textSplitMode Az összes verzió Vagy pages vagy sentences. A lapok maximális hossza konfigurálható, de a képesség megpróbálja elkerülni a mondatok csonkolását, hogy a tényleges hossz kisebb legyen. A mondatok olyan sztringek, amelyek mondatvégződéskor végződnek, például pont, kérdőjel vagy felkiáltójel, feltéve, hogy a nyelv mondatvégződéssel rendelkezik.
maximumPageLength Az összes verzió Csak akkor érvényes, ha textSplitMode be van állítva pages. A unit beállításnál charactersez a paraméter a karakterek maximális oldalhosszára vonatkozik, a mérték szerint mérve String.Length. A minimális érték 300, a maximum 50000, az alapértelmezett érték pedig 5000. Az algoritmus a lehető legjobban meg tudja törni a szöveget a mondathatárokon, így az egyes adattömbek mérete kissé kisebb lehet, mint maximumPageLengtha .

A unit beállításnál azureOpenAITokensa maximális oldalhossz a modell jogkivonathossz-korlátja. A szövegbeágyazási modellek esetében az oldalhosszra vonatkozó általános javaslat 512 token.
defaultLanguageCode Az összes verzió (nem kötelező) Az alábbi nyelvkódok egyike: 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. Az alapértelmezett érték az angol (en). Néhány megfontolandó szempont:
  • Ha nyelvi kódot ad meg, azzal elkerülheti, hogy félbe vágjon egy szót olyan nem térbeli nyelvek esetében, mint a kínai, a japán és a koreai.
  • Ha nem ismeri előre a nyelvet (például ha a LanguageDetectionSkill használatával észleli a nyelvet), javasoljuk az en alapértelmezett beállítást.
pageOverlapLength 2024-07-01 Csak akkor érvényes, ha textSplitMode be van állítva pages. Minden oldal ekkora számú karaktert vagy jogkivonatot tartalmaz az előző oldal végéről. Ha ez a paraméter 0 értékre van állítva, az egymást követő oldalakon nincs átfedésben a szöveg. Ez a példa tartalmazza a paramétert.
maximumPagesToTake 2024-07-01 Csak akkor érvényes, ha textSplitMode be van állítva pages. A visszaadni kívánt lapok száma. Az alapértelmezett érték 0, ami azt jelenti, hogy az összes oldalt visszaadja. Ezt az értéket akkor kell megadnia, ha csak a lapok egy részhalmazára van szükség. Ez a példa tartalmazza a paramétert.
unit 2024-09-01-preview Új. Csak akkor érvényes, ha textSplitMode be van állítva pages. Megadja, hogy az adattömb characters (alapértelmezett) vagy azureOpenAITokens. Az egység érintett maximumPageLength és pageOverlapLength.
azureOpenAITokenizerParameters 2024-09-01-preview Új. Egy objektum, amely további paramétereket biztosít az azureOpenAITokens egységhez.

encoderModelName a szöveg jogkivonatokká alakításához használt, a természetes nyelvi feldolgozási (NLP) feladatokhoz nélkülözhetetlen tokenizer. A különböző modellek különböző tokenizereket használnak. Az érvényes értékek közé tartozik a GPT-35-Turbo és a GPT-4 által használt cl100k_base (alapértelmezett). Egyéb érvényes értékek a r50k_base, p50k_base és p50k_edit. A képesség a SharpToken használatával implementálja a tiktoken könyvtárat, de Microsoft.ML.Tokenizers nem támogat minden kódolót. Jelenleg például nem támogatott a GPT-4o által használt o200k_base kódolás.

allowedSpecialTokens A tokenizálási folyamaton belül engedélyezett speciális jogkivonatok gyűjteményét határozza meg. A speciális jogkivonatok olyan sztringek, amelyeket egyedileg szeretne kezelni, biztosítva, hogy azok ne legyenek felosztva a tokenizálás során. Például : ["[START"], "[END]"].

Készségbemenetek

Paraméter neve Leírás
text A részszúrásra felosztandó szöveg.
languageCode (Nem kötelező) A dokumentum nyelvi kódja. Ha nem ismeri a szövegbevitelek nyelvét (például ha a LanguageDetectionSkill használatával észleli a nyelvet), kihagyhatja ezt a paramétert. Ha egy nyelvre van állítva languageCode , akkor a program nem szerepel a defaultLanguageCodetámogatott listában, figyelmeztetést ad ki, és a szöveg nem lesz felosztva.

Képességkimenetek

Paraméter neve Leírás
textItems A kimenet a kinyert részsztringek tömbje. textItems a kimenet alapértelmezett neve.

targetName nem kötelező, de ha több szövegfelosztási képességgel rendelkezik, ügyeljen arra, hogy targetName ne írja felül az első képesség adatait a másodikkal. Ha targetName be van állítva, használja a kimeneti mezőleképezésekben vagy a képességkimenetet használó alsóbb rétegbeli készségekben, például beágyazási képességekben.

Mintadefiníció

{
    "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", 
        "allowedSpecialTokens": [ 
            "[START]", 
            "[END]" 
        ] 
    },
    "maximumPageLength": 512,
    "inputs": [
        {
            "name": "text",
            "source": "/document/text"
        },
        {
            "name": "languageCode",
            "source": "/document/language"
        }
    ],
    "outputs": [
        {
            "name": "textItems",
            "targetName": "pages"
        }
    ]
}

Példabemenet

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

Példakimenet

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

Példa adattömb-készítésre és vektorizálásra

Ez a példa az integrált vektorizálásra használható.

  • pageOverlapLength: Az átfedésben lévő szöveg az adattömbök esetében hasznos, mert megőrzi az azonos dokumentumból létrehozott adattömbök közötti folytonosságot.

  • maximumPagesToTake: Az oldalbeadás korlátai a vektorizálási forgatókönyvekben hasznosak, mivel segít a vektorizálást biztosító beágyazási modellek maximális bemeneti korlátainál maradni.

Mintadefiníció

Ez a definíció 100 karaktert és maximumPagesToTake egy karaktert ad hozzápageOverlapLength.

Ha az maximumPageLength érték 5000 karakter (ez az alapértelmezett), akkor "maximumPagesToTake": 1 az egyes forrásdokumentumok első 5000 karakterét dolgozza fel.

Ez a példa a értékre állítja textItems a myPages/targetName Mert targetName be van állítva, ez az az érték, myPages amelyet a Szöveg felosztása képesség kimenetének kiválasztásához kell használnia. Használja /document/mypages/* az alsóbb rétegbeli készségeket, az indexelő kimeneti mezőleképezéseit, a tudástár-előrejelzéseket és az index-előrejelzéseket.

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

Mintabemenet (ugyanaz, mint az előző példában)

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

Mintakimenet (figyelje meg az átfedést)

Az egyes "textItems" tömbökben a program az első elemből származó záró szöveget a második elem elejére másolja.

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

Hibaesetek

Ha egy nyelv nem támogatott, figyelmeztetés jön létre.

Lásd még