Metin bölme bilişsel becerisi

Metin Bölme becerisi, metni metin öbeklerine böler. Metni cümlelere mi yoksa belirli bir uzunluktaki sayfalara mı bölmek istediğinizi belirtebilirsiniz. Bu beceri özellikle diğer beceri aşağı akışlarında maksimum metin uzunluğu gereksinimleri varsa kullanışlıdır.

Not

Bu beceri Azure yapay zeka hizmetlerine bağlı değildir. Faturalandırılamaz ve Azure AI hizmetleri için önemli bir gereksinim yoktur.

@odata.type

Microsoft.Skills.Text.SplitSkill

Beceri Parametreleri

Parametreler büyük/küçük harfe duyarlıdır.

Parametre adı Açıklama
textSplitMode pages veya sentences. Sayfaların yapılandırılabilir bir maksimum uzunluğu vardır, ancak gerçek uzunluğun daha küçük olabilmesi için bir cümlenin kesilmesini önleme becerisi denenebilir. Tümceler, dilin cümle sonu noktalama işaretleri olduğu varsayılarak nokta, soru işareti veya ünlem işareti gibi cümle sonu noktalama işaretlerinde sonlandıran bir dizedir.
maximumPageLength Yalnızca olarak ayarlandıysa textSplitModepagesgeçerlidir. Bu parametre, tarafından String.Lengthölçülen karakter sayısı üst sınırını ifade eder. En düşük değer 300, maksimum 50000 ve varsayılan değer 5000'dir. Algoritma, tümce sınırlarındaki metni bölmek için en iyisini yapar, bu nedenle her öbeğin boyutu değerinden maximumPageLengthbiraz daha küçük olabilir.
pageOverlapLength Yalnızca olarak ayarlandıysa textSplitModepagesgeçerlidir. Her sayfa, önceki sayfanın sonundaki bu karakter sayısıyla başlar. Bu parametre 0 olarak ayarlanırsa, birbirini izleyen sayfalarda çakışan metin yoktur. Bu parametre 2023-10-01-Preview REST API'sinde ve tümleşik vektörleştirmeyi destekleyecek şekilde güncelleştirilen Azure SDK beta paketlerinde desteklenir. Bu örnek parametresini içerir.
maximumPagesToTake Yalnızca olarak ayarlandıysa textSplitModepagesgeçerlidir. Döndürülecek sayfa sayısı. Varsayılan değer 0'dır, yani tüm sayfaları döndürür. Sayfaların yalnızca bir alt kümesi gerekiyorsa bu değeri ayarlamanız gerekir. Bu parametre 2023-10-01-Preview REST API'sinde ve tümleşik vektörleştirmeyi destekleyecek şekilde güncelleştirilen Azure SDK beta paketlerinde desteklenir. Bu örnek parametresini içerir.
defaultLanguageCode (isteğe bağlı) Aşağıdaki dil kodlarından biri: 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. Varsayılan değer İngilizcedir (en). Dikkate alınması gereken birkaç şey:
  • Bir dil kodu sağlamak Çince, Japonca ve Korece gibi boşluk içermeyen diller için bir sözcüğü yarıya kesmekten kaçınmak için yararlıdır.
  • Dili önceden bilmiyorsanız (örneğin, dili algılamak için LanguageDetectionSkill kullanıyorsanız), varsayılanı en öneririz.

Beceri Girişleri

Parametre adı Açıklama
text Alt dizeye bölünecek metin.
languageCode (İsteğe bağlı) Belgenin dil kodu. Metin girişlerinin dilini bilmiyorsanız (örneğin, dili algılamak için LanguageDetectionSkill kullanıyorsanız), bu parametreyi atlayabilirsiniz. Bir dile ayarlarsanız languageCode , için defaultLanguageCodedesteklenenler listesinde yer almıyorsa bir uyarı gönderilir ve metin bölünmez.

Beceri Çıkışları

Parametre adı Açıklama
textItems Çıkış, ayıklanan bir alt dize dizisidir. textItems çıktının varsayılan adıdır. targetName isteğe bağlıdır, ancak birden çok Metin Bölme beceriniz varsa, ilk becerideki verilerin üzerine ikinci beceriyle yazmamak için ayarladığınızdan targetName emin olun. Ayarlanırsa targetName , çıkış alanı eşlemelerinde veya beceri çıkışını kullanan aşağı akış becerilerinde kullanın.

Örnek tanım

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

Örnek girdi

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

Örnek çıktı

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

Öbekleme ve vektörleştirme örneği

Bu örnek, şu anda önizleme aşamasında olan tümleşik vektörleştirmeye yöneliktir. Örnek tanımına yalnızca önizleme parametreleri ekler ve sonuçta elde edilen çıkışı gösterir.

  • pageOverlapLength: Çakışan metin, aynı belgeden oluşturulan öbekler arasındaki sürekliliği koruduğundan veri öbekleme senaryolarında kullanışlıdır.

  • maximumPagesToTake: Sayfa alımı sınırları vektörleştirme senaryolarında yararlıdır çünkü vektörleştirmeyi sağlayan ekleme modellerinin maksimum giriş sınırları altında kalmanıza yardımcı olur.

Örnek tanım

Bu tanım 100 karakter ve maximumPagesToTake bir karakter eklerpageOverlapLength.

değerinin maximumPageLength 5.000 karakter (varsayılan) olduğunu varsayarsak "maximumPagesToTake": 1 , her kaynak belgenin ilk 5.000 karakterini işler.

Bu örnek üzerinden targetNameolarak myPages ayarlartextItems. targetName Ayarlandığından, myPages Metin Bölme becerisinden çıkışı seçmek için kullanmanız gereken değerdir. Aşağı akış becerilerinde, dizin oluşturucu çıktı alanı eşlemelerinde, bilgi deposu projeksiyonlarında ve dizin projeksiyonlarında kullanın/document/mypages/*.

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

Örnek giriş (önceki örnekte olduğu gibi)

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

Örnek çıkış (çakışmaya dikkat edin)

Her "textItems" dizisinin içinde, ilk öğeden sondaki metin ikinci öğenin başına kopyalanır.

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

Hata durumları

Dil desteklenmiyorsa bir uyarı oluşturulur.

Ayrıca bkz.