تقسيم المهارة المعرفية للنص

تقسم مهارة تقسيم النص النص إلى أجزاء من النص. يمكنك تحديد ما إذا كنت تريد تقسيم النص إلى جمل أو إلى صفحات ذات طول معين. هذه المهارة مفيدة بشكل خاص إذا كان هناك الحد الأقصى لمتطلبات طول النص في المهارات الأخرى في المراحل النهائية.

إشعار

هذه المهارة غير مرتبطة بخدمات Azure الذكاء الاصطناعي. إنه غير قابل للفوترة ولا يحتوي على متطلبات أساسية لخدمات Azure الذكاء الاصطناعي.

@odata.type

Microsoft.Skills.Text.SplitSkill

معلمات المهارة

المعلمات حساسة لحالة الأحرف.

اسم المعلمة ‏‏الوصف
textSplitMode إما pages أو sentences. تحتوي الصفحات على أقصى طول قابل للتكوين، ولكن تحاول المهارة تجنب اقتطاع جملة حتى يكون الطول الفعلي أصغر. الجمل هي سلسلة تنتهي عند علامات الترقيم التي تنتهي بالجملة، مثل نقطة أو علامة استفهام أو علامة تعجب، بافتراض أن اللغة تحتوي على علامات ترقيم إنهاء الجملة.
maximumPageLength ينطبق فقط إذا textSplitMode تم تعيين إلى pages. تشير هذه المعلمة إلى الحد الأقصى لطول الصفحة بالأحرف كما يتم قياسها بواسطة String.Length. الحد الأدنى للقيمة هو 300، والحد الأقصى هو 50000، والقيمة الافتراضية هي 5000. تقوم الخوارزمية بأفضل ما في وسعها لكسر النص على حدود الجملة، لذلك قد يكون حجم كل مجموعة أقل قليلا من maximumPageLength.
pageOverlapLength ينطبق فقط إذا textSplitMode تم تعيين إلى pages. تبدأ كل صفحة بهذا العدد من الأحرف من نهاية الصفحة السابقة. إذا تم تعيين هذه المعلمة إلى 0، فلا يوجد نص متداخل على الصفحات المتتالية. يتم دعم هذه المعلمة في 2023-10-01-Preview وواجهات برمجة تطبيقات REST الأحدث، وفي حزم بيتا Azure SDK التي تم تحديثها لدعم التوجيه المتكامل. يتضمن هذا المثال المعلمة .
maximumPagesToTake ينطبق فقط إذا textSplitMode تم تعيين إلى pages. عدد الصفحات التي يجب إرجاعها. الإعداد الافتراضي هو 0، مما يعني إرجاع كافة الصفحات. يجب تعيين هذه القيمة إذا كانت هناك حاجة إلى مجموعة فرعية فقط من الصفحات. يتم دعم هذه المعلمة في 2023-10-01-Preview وواجهات برمجة تطبيقات REST الأحدث، وفي حزم بيتا Azure SDK التي تم تحديثها لدعم التوجيه المتكامل. يتضمن هذا المثال المعلمة .
defaultLanguageCode (اختياري) أحد رموز اللغة التالية: 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. الافتراضي هو الإنجليزية (en). بعض الأشياء التي يجب مراعاتها:
  • يعد توفير تعليمة برمجية للغة مفيدا لتجنب قص كلمة في النصف للغات غير المسافات مثل الصينية واليابانية والكورية.
  • إذا كنت لا تعرف اللغة مسبقا (على سبيل المثال، إذا كنت تستخدم LanguageDetectionSkill للكشف عن اللغة)، نوصي بالإعداد en الافتراضي.

مدخلات المهارة

اسم المعلمة ‏‏الوصف
text النص المراد تقسيمه إلى سلسلة فرعية.
languageCode (اختياري) رمز اللغة للمستند. إذا كنت لا تعرف لغة إدخالات النص (على سبيل المثال، إذا كنت تستخدم LanguageDetectionSkill للكشف عن اللغة)، يمكنك حذف هذه المعلمة. إذا قمت بتعيين languageCode إلى لغة غير موجودة في القائمة المعتمدة ل defaultLanguageCode، يتم إصدار تحذير ولا يتم تقسيم النص.

مخرجات المهارة

اسم المعلمة ‏‏الوصف
textItems الإخراج هو صفيف من السلاسل الفرعية التي تم استخراجها. textItems هو الاسم الافتراضي للإخراج. targetName اختياري، ولكن إذا كان لديك العديد من مهارات تقسيم النص، فتأكد من تعيين targetName بحيث لا تقوم بالكتابة فوق البيانات من المهارة الأولى مع المهارة الثانية. إذا targetName تم تعيينه، فاستخدمه في تعيينات حقل الإخراج أو في مهارات انتقال البيانات من الخادم التي تستخدم إخراج المهارة.

تعريف العينة

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

عينة الإدخال

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

عينة الإخراج

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

مثال على التقسيم واتجاهات

هذا المثال موجه متكامل، حاليا في المعاينة. يضيف معلمات المعاينة فقط إلى تعريف العينة، ويعرض الإخراج الناتج.

  • pageOverlapLength: النص المتراكب مفيد في سيناريوهات تقسيم البيانات لأنه يحافظ على الاستمرارية بين المجموعات التي تم إنشاؤها من المستند نفسه.

  • maximumPagesToTake: الحدود المفروضة على كمية الصفحات مفيدة في سيناريوهات المتجهات لأنها تساعدك على البقاء ضمن حدود الإدخال القصوى لنماذج التضمين التي توفر المتجهات.

تعريف العينة

يضيف pageOverlapLength هذا التعريف 100 حرف وحرف maximumPagesToTake واحد.

maximumPageLength بافتراض أن هو 5000 حرف (الافتراضي)، ثم "maximumPagesToTake": 1 يعالج أول 5000 حرف من كل مستند مصدر.

يعين textItems هذا المثال إلى myPages من خلال targetName. لأنه targetName تم تعيين، myPages هو القيمة التي يجب استخدامها لتحديد الإخراج من مهارة تقسيم النص. يستخدم /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"
        }
    ]
}

نموذج الإدخال (مثل المثال السابق)

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

عينة الإخراج (لاحظ التداخل)

داخل كل صفيف "textItems"، يتم نسخ النص اللاحق من العنصر الأول في بداية العنصر الثاني.

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

حالات الخطأ

إذا لم تكن اللغة معتمدة، يتم إنشاء تحذير.

(راجع أيضًا )