Aracılığıyla paylaş


Metin bölme bilişsel becerisi

Önemli

Bazı parametreler Ek Kullanım Koşulları altında genel önizleme aşamasındadır. Önizleme REST API'si bu parametreleri destekler.

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, Azure OpenAI ve diğer model sağlayıcılarındaki modelleri eklemeye veri öbekleri geçiren ekleme becerileri gibi diğer beceri aşağı akışlarında maksimum metin uzunluğu gereksinimleri varsa kullanışlıdır. Bu senaryo hakkında daha fazla bilgi için bkz . Vektör araması için öbek belgeleri.

Çeşitli parametreler sürüme özgüdür. Beceri parametresi tablosu, bir parametrenin tanıtıldığı API sürümünü not alır, böylece bir sürüm yükseltmesi gerekip gerekmediğini bilirsiniz. 2024-09-01-preview sürümlerinde belirteç öbekleme gibi sürüme özgü özellikleri kullanmak için Azure portalını kullanabilir veya REST API sürümünü hedefleyebilir ya da özelliği destekleyerek azure SDK değişiklik günlüğünü kontrol edebilirsiniz.

Azure portalı çoğu önizleme özelliğini destekler ve beceri kümesi oluşturmak veya güncelleştirmek için kullanılabilir. Metin Bölme becerisi güncelleştirmeleri için yeni önizleme parametreleri eklemek için beceri kümesi JSON tanımını düzenleyin.

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ı Sürüm Açıklama
textSplitMode Tüm sürümler 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 Tüm sürümler Yalnızca olarak ayarlandıysa textSplitMode pagesgeçerlidir. unit olarak ayarlandığındacharacters, bu parametre tarafından String.Lengthölçülen karakter sayısı üst sınırına başvurur. 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.

olarak ayarlamak için unit azureOpenAITokens, maksimum sayfa uzunluğu modelin belirteç uzunluğu sınırıdır. Metin ekleme modelleri için sayfa uzunluğuna yönelik genel bir öneri 512 belirteçtir.
defaultLanguageCode Tüm sürümler (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.
pageOverlapLength 2024-07-01 Yalnızca olarak ayarlandıysa textSplitMode pagesgeçerlidir. Her sayfa, önceki sayfanın sonundaki bu sayıda karakter veya belirteçle başlar. Bu parametre 0 olarak ayarlanırsa, birbirini izleyen sayfalarda çakışan metin yoktur. Bu örnek parametresini içerir.
maximumPagesToTake 2024-07-01 Yalnızca olarak ayarlandıysa textSplitMode pagesgeç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 örnek parametresini içerir.
unit 2024-09-01-önizleme Yeni, yeni. Yalnızca olarak ayarlandıysa textSplitMode pagesgeçerlidir. Öbek characters olarak mı (varsayılan) yoksa azureOpenAITokensöğesinin mi öbeklenip öbeklemeyeceğini belirtir. Birimin ayarlanması ve pageOverlapLengthdeğerlerini maximumPageLength etkiler.
azureOpenAITokenizerParameters 2024-09-01-önizleme Yeni, yeni. Birim için azureOpenAITokens ek parametreler sağlayan bir nesne.

encoderModelName , doğal dil işleme (NLP) görevleri için gerekli olan, metni belirteçlere dönüştürmek için kullanılan belirlenmiş bir belirteç oluşturucudur. Farklı modeller farklı belirteç oluşturucular kullanır. Geçerli değerler GPT-35-Turbo ve GPT-4 tarafından kullanılan cl100k_base (varsayılan) değerleridir. Diğer geçerli değerler r50k_base, p50k_base ve p50k_edit' dır. Beceri, SharpToken aracılığıyla tiktoken kitaplığını uygular ve Microsoft.ML.Tokenizers her kodlayıcıyı desteklemez. Örneğin, şu anda GPT-4o tarafından kullanılan o200k_base kodlama desteği yoktur.

allowedSpecialTokens , belirteç oluşturma işlemi içinde izin verilen özel belirteçlerden oluşan bir koleksiyon tanımlar. Özel belirteçler benzersiz olarak işlemek istediğiniz dizedir ve belirteç oluşturma sırasında bölünmemesini sağlar. Örneğin ["[START"], "[END]"].

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 , bunu çıkış alanı eşlemelerinde veya ekleme becerisi gibi beceri çıkışını kullanan aşağı akış becerilerinde kullanın.

Örnek tanım

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

Ö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 tümleşik vektörleştirme içindir.

  • 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.