Umiejętność poznawcza podziału tekstu

Umiejętność Dzielenie tekstu dzieli tekst na fragmenty tekstu. Możesz określić, czy chcesz podzielić tekst na zdania, czy na strony o określonej długości. Ta umiejętność jest szczególnie przydatna, jeśli istnieją maksymalne wymagania dotyczące długości tekstu w innych umiejętnościach podrzędnych.

Uwaga

Ta umiejętność nie jest powiązana z usługami azure AI. Nie jest rozliczana i nie ma kluczowego wymagania dotyczącego usług azure AI.

@odata.type

Microsoft.Skills.Text.SplitSkill

Parametry umiejętności

W parametrach jest rozróżniana wielkość liter.

Nazwa parametru opis
textSplitMode pages lub sentences. Strony mają konfigurowalną maksymalną długość, ale umiejętności próbują uniknąć obcinania zdania, dzięki czemu rzeczywista długość może być mniejsza. Zdania to ciąg, który kończy się znakiem interpunkcyjnym kończącym zdanie, takim jak kropka, znak zapytania lub wykrzyknik, przy założeniu, że język ma znak interpunkcyjny kończący zdanie.
maximumPageLength Ma zastosowanie tylko wtedy, gdy textSplitMode ustawiono wartość pages. Ten parametr odnosi się do maksymalnej długości strony w znakach mierzonych przez String.Length. Wartość minimalna to 300, wartość maksymalna to 50000, a wartość domyślna to 5000. Algorytm robi wszystko, co w jego mocy, aby przerwać tekst w granicach zdań, więc rozmiar każdego fragmentu może być nieco mniejszy niż maximumPageLength.
pageOverlapLength Ma zastosowanie tylko wtedy, gdy textSplitMode ustawiono wartość pages. Każda strona rozpoczyna się od tej liczby znaków od końca poprzedniej strony. Jeśli ten parametr ma wartość 0, nie ma nakładających się tekstu na kolejnych stronach. Ten parametr jest obsługiwany w interfejsie API REST 2023-10-01-Preview oraz w pakietach beta zestawu Azure SDK, które zostały zaktualizowane w celu obsługi zintegrowanej wektoryzacji. Ten przykład zawiera parametr .
maximumPagesToTake Ma zastosowanie tylko wtedy, gdy textSplitMode ustawiono wartość pages. Liczba stron do zwrócenia. Wartość domyślna to 0, co oznacza zwrócenie wszystkich stron. Tę wartość należy ustawić, jeśli potrzebny jest tylko podzbiór stron. Ten parametr jest obsługiwany w interfejsie API REST 2023-10-01-Preview oraz w pakietach beta zestawu Azure SDK, które zostały zaktualizowane w celu obsługi zintegrowanej wektoryzacji. Ten przykład zawiera parametr .
defaultLanguageCode (opcjonalnie) Jeden z następujących kodów języków: 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. Wartość domyślna to angielski (en). Kilka kwestii, które należy wziąć pod uwagę:
  • Zapewnienie kodu językowego jest przydatne, aby uniknąć wycinania wyrazu na pół w przypadku języków innych niżwhitespace, takich jak chiński, japoński i koreański.
  • Jeśli nie znasz wcześniej języka (na przykład jeśli używasz języka LanguageDetectionSkill do wykrywania języka), zalecamy en ustawienie domyślne.

Dane wejściowe umiejętności

Nazwa parametru opis
text Tekst, który ma być podzielony na podciąg.
languageCode (Opcjonalnie) Kod języka dokumentu. Jeśli nie znasz języka wprowadzania tekstu (na przykład jeśli używasz języka LanguageDetectionSkill do wykrywania języka), możesz pominąć ten parametr. Jeśli ustawiono languageCode język nie znajduje się na liście obsługiwanych dla defaultLanguageCodeelementu , zostanie wyemitowane ostrzeżenie i tekst nie zostanie podzielony.

Dane wyjściowe umiejętności

Nazwa parametru opis
textItems Dane wyjściowe to tablica wyodrębnionych podciągów. textItems to domyślna nazwa danych wyjściowych. targetName Jest opcjonalne, ale jeśli masz wiele umiejętności dzielenia tekstu, upewnij się, że nie targetName zastąpisz danych z pierwszej umiejętności z drugiej. Jeśli targetName jest ustawiona, użyj jej w mapowaniach pól wyjściowych lub w umiejętności podrzędnych, które używają danych wyjściowych umiejętności.

Przykładowa definicja

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

Przykładowe dane wejściowe

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

Przykładowe dane wyjściowe

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

Przykład fragmentowania i wektoryzacji

Ten przykład dotyczy wektoryzacji zintegrowanej, obecnie w wersji zapoznawczej. Dodaje on parametry tylko do podglądu do przykładowej definicji i wyświetla wynikowe dane wyjściowe.

  • pageOverlapLength: Nakładający się tekst jest przydatny w scenariuszach fragmentowania danych, ponieważ zachowuje ciągłość między fragmentami wygenerowanymi z tego samego dokumentu.

  • maximumPagesToTake: Limity wprowadzania stron są przydatne w scenariuszach wektoryzacji , ponieważ pomaga utrzymać się poniżej maksymalnych limitów wejściowych modeli osadzania zapewniających wektoryzację.

Przykładowa definicja

Ta definicja dodaje pageOverlapLength 100 znaków i maximumPagesToTake jeden.

Zakładając, że wartość to maximumPageLength 5000 znaków (wartość domyślna), a następnie "maximumPagesToTake": 1 przetwarza pierwsze 5000 znaków każdego dokumentu źródłowego.

W tym przykładzie parametr jest ustawiany textItems na myPages wartość za pośrednictwem targetName. Ponieważ targetName jest ustawiona, jest wartością, myPages której należy użyć do wybrania danych wyjściowych z umiejętności Dzielenie tekstu. Korzystaj z /document/mypages/* umiejętności podrzędnych, mapowań pól wyjściowych indeksatora, projekcji magazynu wiedzy i projekcji indeksów.

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

Przykładowe dane wejściowe (takie same jak w poprzednim przykładzie)

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

Przykładowe dane wyjściowe (zwróć uwagę na nakładanie się)

W każdej tablicy "textItems" tekst końcowy z pierwszego elementu jest kopiowany na początek drugiego elementu.

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

Przypadki błędów

Jeśli język nie jest obsługiwany, zostanie wygenerowane ostrzeżenie.

Zobacz też