Cognitieve vaardigheid voor het splitsen van tekst

Met de vaardigheid Tekst splitsen wordt tekst opgesplitst in stukken tekst. U kunt opgeven of u de tekst wilt opsplitsen in zinnen of in pagina's met een bepaalde lengte. Deze vaardigheid is vooral handig als er vereisten voor maximale tekstlengte in andere vaardigheden downstream zijn.

Notitie

Deze vaardigheid is niet gebonden aan Azure AI-services. Het is niet factureerbaar en heeft geen sleutelvereiste voor Azure AI-services.

@odata.type

Microsoft.Skills.Text.SplitSkill

Vaardigheidsparameters

Parameters zijn hoofdlettergevoelig.

Parameternaam Beschrijving
textSplitMode pages of sentences. Pagina's hebben een configureerbare maximale lengte, maar de vaardigheid probeert te voorkomen dat een zin wordt afgekapt, zodat de werkelijke lengte kleiner kan zijn. Zinnen zijn een tekenreeks die eindigt bij interpunctie in de zin, zoals een punt, vraagteken of uitroepteken, ervan uitgaande dat de taal interpunctie eindigt.
maximumPageLength Alleen van toepassing als textSplitMode deze is ingesteld op pages. Deze parameter verwijst naar de maximale paginalengte in tekens, zoals gemeten door String.Length. De minimumwaarde is 300, het maximum is 50000 en de standaardwaarde is 5000. Het algoritme doet het beste om de tekst op zinsgrenzen te verbreken, dus de grootte van elk segment kan iets kleiner zijn dan maximumPageLength.
pageOverlapLength Alleen van toepassing als textSplitMode deze is ingesteld op pages. Elke pagina begint met dit aantal tekens vanaf het einde van de vorige pagina. Als deze parameter is ingesteld op 0, is er geen overlappende tekst op opeenvolgende pagina's. Deze parameter wordt ondersteund in REST API 2023-10-01-Preview en in bètapakketten van Azure SDK die zijn bijgewerkt ter ondersteuning van geïntegreerde vectorisatie. Dit voorbeeld bevat de parameter.
maximumPagesToTake Alleen van toepassing als textSplitMode deze is ingesteld op pages. Het aantal pagina's dat moet worden geretourneerd. De standaardwaarde is 0, wat betekent dat alle pagina's moeten worden geretourneerd. U moet deze waarde instellen als er alleen een subset van pagina's nodig is. Deze parameter wordt ondersteund in REST API 2023-10-01-Preview en in bètapakketten van Azure SDK die zijn bijgewerkt ter ondersteuning van geïntegreerde vectorisatie. Dit voorbeeld bevat de parameter.
defaultLanguageCode (optioneel) Een van de volgende taalcodes: 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. Standaard is Engels (en). Enkele aandachtspunten:
  • Het verstrekken van een taalcode is handig om te voorkomen dat een woord in de helft wordt geknipt voor niet-geschreven talen, zoals Chinees, Japans en Koreaans.
  • Als u de taal niet van tevoren weet (bijvoorbeeld als u languageDetectionSkill gebruikt om taal te detecteren), raden we de en standaardinstelling aan.

Invoer van vaardigheden

Parameternaam Beschrijving
text De tekst die moet worden gesplitst in de subtekenreeks.
languageCode (Optioneel) Taalcode voor het document. Als u de taal van de tekstinvoer niet kent (bijvoorbeeld als u LanguageDetectionSkill gebruikt om de taal te detecteren), kunt u deze parameter weglaten. Als u instelt languageCode op een taal, wordt er geen waarschuwing verzonden in de lijst defaultLanguageCodemet ondersteunde talen en wordt de tekst niet gesplitst.

Uitvoer van vaardigheden

Parameternaam Beschrijving
textItems Uitvoer is een matrix met subtekenreeksen die zijn geëxtraheerd. textItems is de standaardnaam van de uitvoer. targetName is optioneel, maar als u meerdere vaardigheden voor tekst splitsen hebt, moet u instellen targetName dat u de gegevens niet overschrijft van de eerste vaardigheid met de tweede vaardigheid. Als targetName dit is ingesteld, gebruikt u deze in uitvoerveldtoewijzingen of in downstreamvaardigheden die gebruikmaken van de uitvoer van de vaardigheid.

Voorbeelddefinitie

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

Voorbeeldinvoer

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

Voorbeelduitvoer

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

Voorbeeld voor segmentering en vectorisatie

Dit voorbeeld is bedoeld voor geïntegreerde vectorisatie, momenteel in preview. Hiermee worden alleen preview-parameters toegevoegd aan de voorbeelddefinitie en wordt de resulterende uitvoer weergegeven.

  • pageOverlapLength: Overlappende tekst is handig in scenario's voor het segmenteren van gegevens, omdat hiermee de continuïteit wordt behouden tussen segmenten die zijn gegenereerd op basis van hetzelfde document.

  • maximumPagesToTake: Limieten voor pagina-intake zijn handig in vectorisatiescenario's , omdat u hiermee onder de maximale invoerlimieten van de insluitmodellen kunt blijven die de vectorisatie bieden.

Voorbeelddefinitie

Met deze definitie worden 100 tekens en maximumPagesToTake één definitie toegevoegdpageOverlapLength.

Ervan uitgaande dat de waarde maximumPageLength 5000 tekens (de standaardwaarde) is, worden de "maximumPagesToTake": 1 eerste 5000 tekens van elk brondocument verwerkt.

In dit voorbeeld wordt het myPages volgende ingesteld.textItemstargetName Omdat targetName deze is ingesteld, myPages is de waarde die u moet gebruiken om de uitvoer van de vaardigheid Tekst splitsen te selecteren. Gebruik /document/mypages/* in downstreamvaardigheden, indexeerfunctie uitvoerveldtoewijzingen, kennisarchiefprojecties en indexprojecties.

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

Voorbeeldinvoer (hetzelfde als in het vorige voorbeeld)

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

Voorbeelduitvoer (let op de overlapping)

Binnen elke matrix 'textItems' wordt volgtekst van het eerste item gekopieerd naar het begin van het tweede item.

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

Foutcases

Als een taal niet wordt ondersteund, wordt er een waarschuwing gegenereerd.

Zie ook