التشغيل السريع - التعرف على الكيان المخصص المسمى

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

سنستعرض في هذه المقالة استخدام أستوديو اللغة لعرض المفاهيم الرئيسية للتعرف على كيان الاسم المخصص (NER). وكمثال على ذلك، سنبني نموذجاً مخصصاً لـ NER لاستخراج الكيانات ذات الصلة من اتفاقيات القروض،.مثل:

  • تاريخ الاتفاقية
  • اسم المقترض والعنوان والمدينة والولاية
  • اسم المقرض وعنوانه والمدينة والولاية
  • القروض ومبالغ الفائدة

المتطلبات الأساسية

إنشاء مورد Azure الذكاء الاصطناعي Language جديد وحساب تخزين Azure

قبل أن تتمكن من استخدام NER المخصص، ستحتاج إلى إنشاء مورد Azure الذكاء الاصطناعي Language، والذي سيوفر لك بيانات الاعتماد التي تحتاجها لإنشاء مشروع وبدء تدريب نموذج. ستحتاج أيضاً إلى حساب تخزين Azure، حيث يمكنك تحميل مجموعة البيانات الخاصة بك التي سيتم استخدامها لبناء النموذج الخاص بك.

هام

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

إذا كان لديك مورد موجود مسبقاً تريد استخدامه، فستحتاج إلى توصيله بحساب التخزين. راجع إرشادات استخدام مورد موجود مسبقًا للحصول على معلومات.

إنشاء مورد جديد من مدخل Microsoft Azure

  1. سجل الدخول إلى مدخل Microsoft Azure لإنشاء مورد Azure الذكاء الاصطناعي Language جديد.

  2. في النافذة التي تظهر، حدد تصنيف النص المخصص والتعرف على الكيان المسمى المخصص من الميزات المخصصة. حدد متابعة لإنشاء المورد الخاص بك في أسفل الشاشة.

    A screenshot showing custom text classification & custom named entity recognition in the Azure portal.

  3. إنشاء مورد لغة بالتفاصيل التالية.

    الاسم ‏‏الوصف
    الوصف اشتراك Azure الخاص بك.
    مجموعة الموارد مجموعة موارد التي ستحتوي على موردك. يمكنك استخدام مفتاح موجود، أو إنشاء مفتاح جديد.
    المنطقة منطقة مورد اللغة الخاص بك. على سبيل المثال، "منطقة غرب الولايات المتحدة 2".
    الاسم اسم لموردك.
    مستوى الأسعار مستوى التسعير لمورد اللغة الخاص بك. يمكنك استخدام المستوى المجاني (F0) لتجربة الخدمة.

    إشعار

    إذا تلقيت رسالة تقول "الحساب الذي تستخدمه لتسجيل الدخول ليس مالكا لمجموعة موارد حساب التخزين المحدد"، فحسابك يحتاج إلى التمتع بدور مالك مُعيَّن على مجموعة الموارد قبل أن تتمكن من إنشاء مورد لغة. اتصل بمالك اشتراكك في Azure للحصول على المساعدة.

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

    قيمة حساب التخزين القيمة الموصى بها
    Storage account name أي اسم
    نوع حساب التخزين التخزين القياسي المتكرر محلياً
  5. تأكد من تحديد إشعار الذكاء الاصطناعي المسؤول. حدد Review + create أسفل الصفحة، ثم حدد Create.

تحميل عينة البيانات إلي حاوية البيانات

بعد إنشاء حساب تخزين Azure وتوصيله بمورد اللغة الخاص بك، ستحتاج إلى تحميل المستندات من عينة مجموعة البيانات إلى الدليل الجذر للحاوية الخاصة بك. ستُستخدم هذه المستندات لاحقاً لتدريب نموذجك.

  1. تنزيل عينة مجموعة البيانات من GitHub.

  2. افتح ملف .zip، واستخرج المجلد الذي يحتوي على المستندات.

  3. في مدخل Microsoft Azure، انتقل إلى حساب التخزين الذي أنشأته، وحدده.

  4. في حساب التخزين، حدد Containers من القائمة اليسرى، الموجودة أسفل Data storage. على الشاشة التي تظهر، حدد + Container. امنح الحاوية الاسم example-data واترك مستوى الوصول العام الافتراضي.

    A screenshot showing the main page for a storage account.

  5. بعد إنشاء الحاوية، حددها. ثم حدد الزر تحميل لتحديد الملفات و .json التي .txt قمت بتنزيلها سابقا.

    A screenshot showing the button for uploading files to the storage account.

تحتوي مجموعة البيانات النموذجية المقدمة على 20 اتفاقية قرض. تتضمن كل اتفاقية طرفين: مقرض ومقترض. يمكنك استخدام ملف العينة المتوفر لاستخراج المعلومات ذات الصلة لكلا الطرفين وتاريخ الاتفاقية ومبلغ القرض ومعدل الفائدة.

إنشاء مشروع مخصص للتعرف على الكيان المسمى

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

  1. تسجيل الدخول إلى Language Studio. ستظهر نافذة تتيح لك تحديد الاشتراك ومورد اللغة. حدد مورد اللغة الذي أنشأته في الخطوة السابقة.

  2. ضمن قسم Entity extraction في Language Studio، حدد Custom named entity recognition.

    A screenshot showing the location of custom NER in the Language Studio landing page.

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

    A screenshot of the project creation page.

  4. بعد النقر فوق Create new project، ستظهر نافذة تتيح لك توصيل حساب التخزين الخاص بك. إذا قمت بالفعل بتوصيل حساب تخزين، فسترى حساب التخزين متصلاً. إذا لم يكن الأمر كما هو، فاختر حساب التخزين الخاص بك من القائمة المنسدلة التي تظهر وحدد الاتصال حساب التخزين؛ سيؤدي ذلك إلى تعيين الأدوار المطلوبة لحساب التخزين الخاص بك. من المحتمل أن ترجع هذه الخطوة خطأ إذا لم يتم تعيينك كمالك في حساب التخزين.

    إشعار

    • تحتاج فقط إلى القيام بهذه الخطوة مرة واحدة لكل مورد جديد تستخدمه.
    • هذه العملية لا رجعة فيها، إذا قمت بتوصيل حساب تخزين إلى مورد اللغة الخاص بك فلن تتمكن من قطع الاتصال لاحقاً.
    • يمكنك فقط توصيل مورد اللغة بحساب تخزين واحد.

    A screenshot showing the storage connection screen.

  5. أدخل معلومات المشروع، بما في ذلك الاسم والوصف ولغة الملفات في المشروع. إذا كنت تستخدم مجموعة البيانات المثال، فحدد English. لن تتمكن من تغيير اسم مشروعك لاحقاً. حدد التالي

    تلميح

    لا يجب أن تكون مجموعة البيانات الخاصة بك كلها بنفس اللغة. يمكن أن يكون لديك مستندات متعددة، لكل منها لغات مدعومة مختلفة. إذا كانت مجموعة البيانات الخاصة بك تحتوي على مستندات بلغات مختلفة أو إذا كنت تتوقع نصاً من لغات مختلفة أثناء وقت التشغيل، فقم بتحديد الخيار enable multi-lingual dataset عند إدخال المعلومات الأساسية لمشروعك. يمكن تمكين هذا الخيار لاحقاً من صفحة Project settings.

  6. قم بتحديد الحاوية التي قمت بتحميل مجموعة البيانات فيها. إذا كنت قد قمت بالفعل بتسمية البيانات، فتأكد من أنها تتبع التنسيق المدعوم وحدد نعم، تم تسمية ملفاتي بالفعل وقمت بتنسيق ملف تسميات JSON وحدد ملف التسميات من القائمة المنسدلة. حدد التالي.

  7. راجع البيانات التي أدخلتها وحدد إنشاء مشروع.

تدريب النموذج

عادة بعد إنشاء مشروع، يمكنك المضي قدماً وبدء وضع علامات على المستندات الموجودة في الحاوية المتصلة بمشروعك. لهذا التشغيل السريع، قمت باستيراد عينة مجموعة بيانات ذات علامة وتهيئة مشروعك باستخدام نموذج ملف علامات JSON.

لبدء تدريب النموذج الخاص بك من داخل Language Studio:

  1. حدّد Train jobs من القائمة الجانبية اليسرى.

  2. حدد Start a training job من القائمة العلوية.

  3. حدد Train a new model واكتب اسم النموذج في مربع النص أدناه. يمكنك أيضًا الكتابة فوق نموذج موجود عن طريق تحديد هذا الخيار واختيار النموذج الذي تريد الكتابة فوقه من القائمة المنسدلة. الكتابة فوق نموذج مُدرّب أمر لا رجعة فيه، ولكنه لن يؤثر على النماذج الموزعة حتى توزع النموذج الجديد.

    Create a new training job

  4. حدد أسلوب تقسيم البيانات. يمكنك اختيار تقسيم مجموعة الاختبار تلقائياً من بيانات التدريب: حيث سيُقسم النظام بياناتك المسماة بين مجموعات التدريب والاختبار، وفقا للنسب المئوية المحددة. أو يمكنك استخدام تقسيم يدوي لبيانات التدريب والاختبار، يُمكّن هذا الخيار فقط إذا أضفت مستندات إلى مجموعة الاختبار أثناء تسمية البيانات. راجع كيفية تدريب نموذج للحصول على معلومات حول تقسيم البيانات.

  5. حدد الزر Train.

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

    إشعار

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

استخدام نموذجك

بشكل عام، بعد تدريب النموذج، يمكنك مراجعة تفاصيل التقييم وإجراء التحسينات إذا لزم الأمر. في هذا التشغيل السريع، ستقوم فقط بتوزيع النموذج الخاص بك، وجعله متاحاً للتجربة في Language Studio، أو يمكنك استدعاء واجهة برمجة تطبيقات التنبؤ.

لتوزيع النموذج من داخل Language Studio:

  1. حدّدDeploying a model من القائمة الجانبية اليسري.

  2. حدد Add deployment لبدء مهمة توزيع جديدة.

    A screenshot showing the deployment button

  3. حدد Create new deployment لإنشاء نشر جديد وتعيين نموذج مُدرَّب من القائمة المنسدلة أدناه. يمكنك أيضاً استبدال توزيع موجود عن طريق تحديد هذا الخيار وتحديد النموذج المُدرب الذي تريد تعيينه إليه من القائمة المنسدلة أدناه.

    إشعار

    لا يتطلب استبدال توزيع موجود إجراء تغييرات على استدعاء واجهة برمجة تطبيقات التنبؤ ولكن النتائج التي تحصل عليها ستستند إلى النموذج المُعيّن حديثاً.

    A screenshot showing the deployment screen

  4. حدد Deploy لبدء مهمة التوزيع.

  5. بعد نجاح النشر، سيظهر تاريخ انتهاء صلاحية بجانبه. تنتهي صلاحية النشر عندما يكون النموذج المنشور غير متوفر لاستخدامه للتنبؤ، والذي يحدث عادة بعد اثني عشر شهراً من انتهاء صلاحية تكوين التدريب.

اختبار النموذج الخاص بك

بعد نشر النموذج الخاص بك، يمكنك البدء في استخدامه لاستخراج الكيانات من النص الخاص بك عبر Prediction API. لهذا التشغيل السريع، ستستخدم Language Studio لإرسال مهمة التعرف على الكيان المخصصة وتصور النتائج. في عينة مجموعة البيانات التي قمت بتنزيلها مسبقاً، يمكنك العثور على بعض مستندات الاختبار التي يمكنك استخدامها في هذه الخطوة.

لاختبار النماذج المنشورة من داخل Language Studio:

  1. حدد Testing deployments من القائمة اليسري.

  2. حدد التوزيع الذي تريد اختباره. يمكنك فقط اختبار النماذج التي عُينت إلى عمليات التوزيع.

  3. بالنسبة للمشاريع متعددة اللغات، من القائمة المنسدلة لللغات، حدد لغة النص الذي تختبره.

  4. حدد النشر الذي تريد الاستعلام عنه/اختباره من القائمة المنسدلة.

  5. يمكنك إدخال النص الذي ترغب في إرساله في الطلب، أو تحميل ملف .txt لاستخدامه.

  6. حدد تشغيل الاختبار من القائمة العلوية.

  7. في علامة تبويب النتيجة، يمكنك مشاهدة الكيانات المستخرجة من النص وأنواعها. يمكنك أيضاً عرض استجابة JSON ضمن علامة التبويب JSON.

A screenshot showing the model test results.

تنظيف الموارد

عندما لا تحتاج إلى مشروعك بعد الآن، يمكنك حذف مشروعك باستخدام Language Studio. حدد التعرف على الكيان المسمى المخصص (NER) من الأعلى، وحدد المشروع الذي تريد حذفه، ثم حدد حذف من القائمة العلوية.

المتطلبات الأساسية

إنشاء مورد Azure الذكاء الاصطناعي Language جديد وحساب تخزين Azure

قبل أن تتمكن من استخدام NER المخصص، ستحتاج إلى إنشاء مورد Azure الذكاء الاصطناعي Language، والذي سيوفر لك بيانات الاعتماد التي تحتاجها لإنشاء مشروع وبدء تدريب نموذج. ستحتاج أيضًا إلى حساب تخزين Azure، حيث يمكنك تحميل مجموعة البيانات المستخدمة في إنشاء النموذج الخاص بك.

هام

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

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

إنشاء مورد جديد من مدخل Microsoft Azure

  1. سجل الدخول إلى مدخل Microsoft Azure لإنشاء مورد Azure الذكاء الاصطناعي Language جديد.

  2. في النافذة التي تظهر، حدد تصنيف النص المخصص والتعرف على الكيان المسمى المخصص من الميزات المخصصة. حدد متابعة لإنشاء المورد الخاص بك في أسفل الشاشة.

    A screenshot showing custom text classification & custom named entity recognition in the Azure portal.

  3. إنشاء مورد لغة بالتفاصيل التالية.

    الاسم ‏‏الوصف
    الوصف اشتراك Azure الخاص بك.
    مجموعة الموارد مجموعة موارد التي ستحتوي على موردك. يمكنك استخدام مفتاح موجود، أو إنشاء مفتاح جديد.
    المنطقة منطقة مورد اللغة الخاص بك. على سبيل المثال، "منطقة غرب الولايات المتحدة 2".
    الاسم اسم لموردك.
    مستوى الأسعار مستوى التسعير لمورد اللغة الخاص بك. يمكنك استخدام المستوى المجاني (F0) لتجربة الخدمة.

    إشعار

    إذا تلقيت رسالة تقول "الحساب الذي تستخدمه لتسجيل الدخول ليس مالكا لمجموعة موارد حساب التخزين المحدد"، فحسابك يحتاج إلى التمتع بدور مالك مُعيَّن على مجموعة الموارد قبل أن تتمكن من إنشاء مورد لغة. اتصل بمالك اشتراكك في Azure للحصول على المساعدة.

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

    قيمة حساب التخزين القيمة الموصى بها
    Storage account name أي اسم
    نوع حساب التخزين التخزين القياسي المتكرر محلياً
  5. تأكد من تحديد إشعار الذكاء الاصطناعي المسؤول. حدد Review + create أسفل الصفحة، ثم حدد Create.

تحميل عينة البيانات إلي حاوية البيانات

بعد إنشاء حساب تخزين Azure وتوصيله بمورد اللغة الخاص بك، ستحتاج إلى تحميل المستندات من عينة مجموعة البيانات إلى الدليل الجذر للحاوية الخاصة بك. ستُستخدم هذه المستندات لاحقاً لتدريب نموذجك.

  1. تنزيل عينة مجموعة البيانات من GitHub.

  2. افتح ملف .zip، واستخرج المجلد الذي يحتوي على المستندات.

  3. في مدخل Microsoft Azure، انتقل إلى حساب التخزين الذي أنشأته، وحدده.

  4. في حساب التخزين، حدد Containers من القائمة اليسرى، الموجودة أسفل Data storage. على الشاشة التي تظهر، حدد + Container. امنح الحاوية الاسم example-data واترك مستوى الوصول العام الافتراضي.

    A screenshot showing the main page for a storage account.

  5. بعد إنشاء الحاوية، حددها. ثم حدد الزر تحميل لتحديد الملفات و .json التي .txt قمت بتنزيلها سابقا.

    A screenshot showing the button for uploading files to the storage account.

تحتوي مجموعة البيانات النموذجية المقدمة على 20 اتفاقية قرض. تتضمن كل اتفاقية طرفين: مقرض ومقترض. يمكنك استخدام ملف العينة المتوفر لاستخراج المعلومات ذات الصلة لكلا الطرفين وتاريخ الاتفاقية ومبلغ القرض ومعدل الفائدة.

الحصول على مفاتيح الموارد ونقاط النهاية

  1. انتقل إلى صفحة نظرة عامة على المورد في مدخل Microsoft Azure

  2. من القائمة على الجانب الأيسر، حدد "Keys and Endpoint". ستستخدم نقطة النهاية والمفتاح لطلبات واجهة برمجة التطبيقات

    A screenshot showing the key and endpoint page in the Azure portal

إنشاء مشروع مخصص للتعرف على الكيانات المسماة

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

استخدم ملف العلامات الذي قمت بتنزيله من عينة البيانات في الخطوة السابقة وأضفه إلى نص الطلب التالي.

تشغيل مهمة استيراد المشروع

أرسل طلب POST باستخدام عنوان URL والعناوين ونص JSON التالي لاستيراد ملف التسميات. تأكّد أن ملف التسميات الخاص بك يتبع الصيغة المقبولة.

في حالة وجود مشروع يحمل نفس الاسم بالفعل، تستبدل بيانات هذا المشروع.

{Endpoint}/language/authoring/analyze-text/projects/{projectName}/:import?api-version={API-VERSION}
Placeholder القيمة‬ مثال
{ENDPOINT} نقطة النهاية للمصادقة على طلب واجهة برمجة التطبيقات. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} اسم مشروعك. هذه القيمة حساسة لحالة الأحرف. myProject
{API-VERSION} إصدار واجهة برمجة التطبيقات التي تستدعيها. القيمة المشار إليها هنا هي لأحدث إصدار تم إصداره. يرجى الاطلاع على دورة حياة النموذج لمعرفة المزيد حول إصدارات API الأخرى المتوفرة. 2022-05-01

الرؤوس

استخدم العنوان التالي للمصادقة على طلبك.

مفتاح القيمة
Ocp-Apim-Subscription-Key مفتاح موردك. يُستخدم للمصادقة على طلبات واجهة برمجة التطبيقات.

نص الرسالة

استخدم لغة JSON التالية في طلبك. استبدل قيم العنصر النائب أدناه بقيمك الخاصة.

{
    "projectFileVersion": "{API-VERSION}",
    "stringIndexType": "Utf16CodeUnit",
    "metadata": {
        "projectName": "{PROJECT-NAME}",
        "projectKind": "CustomEntityRecognition",
        "description": "Trying out custom NER",
        "language": "{LANGUAGE-CODE}",
        "multilingual": true,
        "storageInputContainerName": "{CONTAINER-NAME}",
        "settings": {}
    },
    "assets": {
    "projectKind": "CustomEntityRecognition",
        "entities": [
            {
                "category": "Entity1"
            },
            {
                "category": "Entity2"
            }
        ],
        "documents": [
            {
                "location": "{DOCUMENT-NAME}",
                "language": "{LANGUAGE-CODE}",
                "dataset": "{DATASET}",
                "entities": [
                    {
                        "regionOffset": 0,
                        "regionLength": 500,
                        "labels": [
                            {
                                "category": "Entity1",
                                "offset": 25,
                                "length": 10
                            },
                            {
                                "category": "Entity2",
                                "offset": 120,
                                "length": 8
                            }
                        ]
                    }
                ]
            },
            {
                "location": "{DOCUMENT-NAME}",
                "language": "{LANGUAGE-CODE}",
                "dataset": "{DATASET}",
                "entities": [
                    {
                        "regionOffset": 0,
                        "regionLength": 100,
                        "labels": [
                            {
                                "category": "Entity2",
                                "offset": 20,
                                "length": 5
                            }
                        ]
                    }
                ]
            }
        ]
    }
}
مفتاح Placeholder القيمة‬ مثال
api-version {API-VERSION} إصدار واجهة برمجة التطبيقات التي تستدعيها. يجب أن يكون الإصدار المُستخدم هنا هو نفس إصدار واجهة برمجة التطبيقات في عنوان URL. تعرف على المزيد حول إصدارات واجهة برمجة التطبيقات الأخرى المتوفرة 2022-03-01-preview
projectName {PROJECT-NAME} اسم مشروعك. هذه القيمة حساسة لحالة الأحرف. myProject
projectKind CustomEntityRecognition نوع المشروع الخاص بك. CustomEntityRecognition
language {LANGUAGE-CODE} سلسلة تحدد التعليمة البرمجية للغة المستندات المُستخدمة في مشروعك. إذا كان مشروعك متعدد اللغات، فقم باختيار التعليمة البرمجية للغة لغالبية المستندات. en-us
multilingual true قيمة منطقية تتيح لك الحصول على مستندات بلغات متعددة في مجموعة البيانات وعند توزيع النموذج الخاص بك، يمكنك الاستعلام عن النموذج بأي لغة مدعومة (ليس بالضرورة أن تكون مضمنة في مستندات التدريب الخاصة بك. قم بمراجعة دعم اللغة للحصول على معلومات حول الدعم متعدد اللغات. true
storageInputContainerName {CONTAINER-NAME} اسم حاوية تخزين Azure حيث قمت بتحميل مستنداتك. myContainer
entities صفيف يحتوي على جميع أنواع الكيانات المتوفرة في المشروع. هذه هي أنواع العناصر التي سوف يتم استخراجها من مستنداتك.
documents صفيف يحتوي على جميع المستندات في المشروع الخاص بك وقائمة العناصر المسماة داخل كل مستند. []
location {DOCUMENT-NAME} موقع المستندات في حاوية التخزين. نظراً لأن جميع المستندات موجودة في جذر الحاوية، يجب أن يكون هذا هو اسم المستند. doc1.txt
dataset {DATASET} مجموعة الاختبار التي سينتقل إليها هذا الملف عند التقسيم قبل التدريب. قم بمراجعة كيفية تدريب نموذج للحصول على مزيد من المعلومات حول كيفية تقسيم بياناتك. القيم المحتملة لهذا الحقل هي Train وTest. Train

بمجرد إرسال طلب واجهة برمجة التطبيقات، ستتلقى رد 202 يشير إلى إرسال المهمة بشكل صحيح. في عناوين الرد، استخرج operation-location القيمة. سيُنسق على النحو التالي:

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}

يُستخدم {JOB-ID} لتعريف طلبك، حيث إن هذه العملية غير متزامنة. ستستخدم عنوان URL هذا للحصول على حالة مهمة الاستيراد.

سيناريوهات الخطأ المحتملة لهذا الطلب:

  • لا يملك المورد المحدد الأذونات المناسبة لحساب التخزين.
  • storageInputContainerName المحدد غير موجود.
  • تم استخدام رمز لغة غير صالح، أو إذا كان نوع رمز اللغة ليس سلسلة.
  • قيمة multilingual هي سلسلة وليست قيمة منطقية.

احصل على حالة وظيفة الاستيراد

قم باستخدام الطلب GET التالي للحصول على حالة استيراد مشروعك. استبدل قيم العنصر النائب أدناه بقيمك الخاصة.

عنوان URL الخاص بالطلب

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}
Placeholder القيمة‬ مثال
{ENDPOINT} نقطة النهاية للمصادقة على طلب واجهة برمجة التطبيقات. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} اسم مشروعك. هذه القيمة حساسة لحالة الأحرف. myProject
{JOB-ID} معرف تحديد موقع حالة تدريب نموذجك توجد هذه القيمة في قيمة location العنوان التي تلقيتها في الخطوة السابقة. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} إصدار واجهة برمجة التطبيقات التي تستدعيها. القيمة المشار إليها هنا هي لأحدث إصدار تم إصداره. يرجى الاطلاع على دورة حياة النموذج لمعرفة المزيد حول إصدارات API الأخرى المتوفرة. 2022-05-01

الرؤوس

استخدم العنوان التالي للمصادقة على طلبك.

مفتاح القيمة
Ocp-Apim-Subscription-Key مفتاح موردك. يُستخدم للمصادقة على طلبات واجهة برمجة التطبيقات.

تدريب النموذج

عادة بعد إنشاء مشروع، يمكنك المضي قدماً وبدء وضع علامات على المستندات الموجودة في الحاوية المتصلة بمشروعك. لهذا التشغيل السريع، قمت باستيراد عينة مجموعة بيانات ذات علامة وتهيئة مشروعك باستخدام نموذج ملف علامات JSON.

بدء مهمة التدريب

بعد استيراد مشروعك، يمكنك البدء في تدريب النموذج.

أرسل طلب POST باستخدام عنوان URL والعناوين ونص JSON التالي لإرسال مهمة التدريب. استبدل قيم العنصر النائب أدناه بقيمك الخاصة.

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/:train?api-version={API-VERSION}
Placeholder القيمة‬ مثال
{ENDPOINT} نقطة النهاية للمصادقة على طلب واجهة برمجة التطبيقات. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} اسم مشروعك. هذه القيمة حساسة لحالة الأحرف. myProject
{API-VERSION} إصدار واجهة برمجة التطبيقات التي تستدعيها. القيمة المشار إليها هنا هي لأحدث إصدار تم إصداره. يرجى الاطلاع على دورة حياة النموذج لمعرفة المزيد حول إصدارات API الأخرى المتوفرة. 2022-05-01

الرؤوس

استخدم العنوان التالي للمصادقة على طلبك.

مفتاح القيمة
Ocp-Apim-Subscription-Key مفتاح موردك. يُستخدم للمصادقة على طلبات واجهة برمجة التطبيقات.

نص الطلب

استخدم ملف JSON التالي في نموذج نص للطلب. سيُمنح النموذج {MODEL-NAME} فور انتهاء التدريب. وظائف التدريب الناجحة فقط ستنتج نماذج.

{
	"modelLabel": "{MODEL-NAME}",
	"trainingConfigVersion": "{CONFIG-VERSION}",
	"evaluationOptions": {
		"kind": "percentage",
		"trainingSplitPercentage": 80,
		"testingSplitPercentage": 20
	}
}
مفتاح Placeholder القيمة‬ مثال
modelLabel {MODEL-NAME} اسم النموذج الذي سيتم تعيينه إلى نموذجك بمجرد تدريبه بنجاح. myModel
trainingConfigVersion {CONFIG-VERSION} هذا هو إصدار النموذج الذي سوف يستخدم لتدريب النموذج. 2022-05-01
evaluationOptions خيار تقسيم البيانات الخاصة بك عبر مجموعات التدريب والاختبار. {}
النوع percentage أساليب التقسيم. القيم المُحتملة هي percentage أو manual. راجع How to train a model للحصول على مزيد من المعلومات. percentage
trainingSplitPercentage 80 النسبة المئوية لبياناتك ذات العلامات التي سيتم تضمينها في مجموعة التدريب. القيمة الموصى بها هي 80. 80
testingSplitPercentage 20 النسبة المئوية لبياناتك ذات العلامات التي سيتم تضمينها في مجموعة الاختبار. القيمة الموصى بها هي 20. 20

إشعار

يستلزم توفير trainingSplitPercentage وtestingSplitPercentage فقط إذا تم تعيين Kind إلى percentage ومجموع كلا النسبتين يجب أن يساوي 100.

بمجرد إرسال طلب واجهة برمجة التطبيقات، ستتلقى رد 202 يشير إلى إرسال المهمة بشكل صحيح. في عناوين الرد، استخرج location القيمة. سيُنسق على النحو التالي:

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}

يُستخدم {JOB-ID} لتعريف طلبك، حيث إن هذه العملية غير متزامنة. يمكنك استخدام عنوان URL هذا للحصول على حالة التدريب.

الحصول على حالة مهمة التدريب

قد يستغرق التدريب ما بين 10 و30 دقيقة لعينة مجموعة البيانات هذه. يمكنك استخدام الطلب التالي لمتابعة التحقق من حالة مهمة التدريب حتى تكتمل بنجاح.

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

عنوان URL الخاص بالطلب

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}
Placeholder القيمة‬ مثال
{ENDPOINT} نقطة النهاية للمصادقة على طلب واجهة برمجة التطبيقات. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} اسم مشروعك. هذه القيمة حساسة لحالة الأحرف. myProject
{JOB-ID} معرف تحديد موقع حالة تدريب نموذجك توجد هذه القيمة في قيمة location العنوان التي تلقيتها في الخطوة السابقة. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} إصدار واجهة برمجة التطبيقات التي تستدعيها. القيمة المشار إليها هنا هي لأحدث إصدار تم إصداره. يرجى الاطلاع على دورة حياة النموذج لمعرفة المزيد حول إصدارات API الأخرى المتوفرة. 2022-05-01

الرؤوس

استخدم العنوان التالي للمصادقة على طلبك.

مفتاح القيمة
Ocp-Apim-Subscription-Key مفتاح موردك. يُستخدم للمصادقة على طلبات واجهة برمجة التطبيقات.

هيئة الاستجابة

بمجرد إرسال الطلب، ستحصل على الاستجابة التالية.

{
  "result": {
    "modelLabel": "{MODEL-NAME}",
    "trainingConfigVersion": "{CONFIG-VERSION}",
    "estimatedEndDateTime": "2022-04-18T15:47:58.8190649Z",
    "trainingStatus": {
      "percentComplete": 3,
      "startDateTime": "2022-04-18T15:45:06.8190649Z",
      "status": "running"
    },
    "evaluationStatus": {
      "percentComplete": 0,
      "status": "notStarted"
    }
  },
  "jobId": "{JOB-ID}",
  "createdDateTime": "2022-04-18T15:44:44Z",
  "lastUpdatedDateTime": "2022-04-18T15:45:48Z",
  "expirationDateTime": "2022-04-25T15:44:44Z",
  "status": "running"
}

استخدام نموذجك

عموماً بعد تدريب نموذج تستعرض التالي تفاصيل التقييم و وإجراء التحسينات إذا كان الأمر ضرورياً. في هذا التشغيل السريع، ستقوم فقط بتوزيع النموذج الخاص بك، وجعله متاحاً للتجربة في Language Studio، أو يمكنك استدعاء واجهة برمجة تطبيقات التنبؤ.

بدء مهمة التوزيع

قم بإرسال طلب PUT باستخدام عنوان URL والعناوين ونص JSON التالي لإرسال وظيفة التوزيع. استبدل قيم العنصر النائب أدناه بقيمك الخاصة.

{Endpoint}/language/authoring/analyze-text/projects/{projectName}/deployments/{deploymentName}?api-version={API-VERSION}
Placeholder القيمة‬ مثال
{ENDPOINT} نقطة النهاية للمصادقة على طلب واجهة برمجة التطبيقات. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} اسم مشروعك. هذه القيمة حساسة لحالة الأحرف. myProject
{DEPLOYMENT-NAME} اسم النشر الخاص بك. هذه القيمة حساسة لحالة الأحرف. staging
{API-VERSION} إصدار واجهة برمجة التطبيقات التي تستدعيها. القيمة المشار إليها هنا هي لأحدث إصدار تم إصداره. يرجى الاطلاع على دورة حياة النموذج لمعرفة المزيد حول إصدارات API الأخرى المتوفرة. 2022-05-01

الرؤوس

استخدم العنوان التالي للمصادقة على طلبك.

مفتاح القيمة
Ocp-Apim-Subscription-Key مفتاح موردك. يُستخدم للمصادقة على طلبات واجهة برمجة التطبيقات.

نص الطلب

استخدم ملف JSON التالي في نص طلبك. استخدم اسم النموذج الذي تريد تعيينه للنشر.

{
  "trainedModelLabel": "{MODEL-NAME}"
}
مفتاح Placeholder القيمة‬ مثال
trainedModelLabel {MODEL-NAME} اسم النموذج الذي سيتم تعيينه للنشر. يمكنك فقط تعيين نماذج مُدرَّبة بنجاح. هذه القيمة حساسة لحالة الأحرف. myModel

بمجرد إرسال طلب واجهة برمجة التطبيقات، ستتلقى رد 202 يشير إلى إرسال المهمة بشكل صحيح. في عناوين الرد، استخرج operation-location القيمة. سيُنسق على النحو التالي:

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}

يُستخدم {JOB-ID} لتعريف طلبك، حيث إن هذه العملية غير متزامنة. يمكنك استخدام عنوان URL هذا للحصول على حالة التوزيع.

الحصول على حالة مهمة النشر

استخدم طلب GET التالي للاستعلام عن حالة مهمة النشر. يمكنك استخدام عنوان URL الذي تلقيته من الخطوة السابقة، أو استبدال قيم العنصر النائب أدناه بقيمك الخاصة.

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/deployments/{DEPLOYMENT-NAME}/jobs/{JOB-ID}?api-version={API-VERSION}
Placeholder القيمة‬ مثال
{ENDPOINT} نقطة النهاية للمصادقة على طلب واجهة برمجة التطبيقات. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} اسم مشروعك. هذه القيمة حساسة لحالة الأحرف. myProject
{DEPLOYMENT-NAME} اسم النشر الخاص بك. هذه القيمة حساسة لحالة الأحرف. staging
{JOB-ID} معرف تحديد موقع حالة تدريب نموذجك يرد ذلك في قيمة العنوان location التي تلقيتها في الخطوة السابقة. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
{API-VERSION} إصدار واجهة برمجة التطبيقات التي تستدعيها. القيمة المشار إليها هنا هي لأحدث إصدار تم إصداره. يرجى الاطلاع على دورة حياة النموذج لمعرفة المزيد حول إصدارات API الأخرى المتوفرة. 2022-05-01

الرؤوس

استخدم العنوان التالي للمصادقة على طلبك.

مفتاح القيمة
Ocp-Apim-Subscription-Key مفتاح موردك. يُستخدم للمصادقة على طلبات واجهة برمجة التطبيقات.

هيئة الاستجابة

بمجرد إرسال الطلب، ستحصل على الرد التالي. احتفظ باقتراع نقطة النهاية هذه حتى تتغير معلمة الحالة إلى "نجح". يجب أن تحصل على التعليمة البرمجية200 للإشارة إلى نجاح الطلب.

{
    "jobId":"{JOB-ID}",
    "createdDateTime":"{CREATED-TIME}",
    "lastUpdatedDateTime":"{UPDATED-TIME}",
    "expirationDateTime":"{EXPIRATION-TIME}",
    "status":"running"
}

استخراج الكيانات المخصصة

بعد نشر النموذج الخاص بك، يمكنك البدء في استخدامه لاستخراج الكيانات من النص الخاص بك باستخدام prediction API. في عينة مجموعة البيانات التي قمت بتنزيلها مسبقاً، يمكنك العثور على بعض مستندات الاختبار التي يمكنك استخدامها في هذه الخطوة.

إرسال مهمة مخصصة للتعرف على الكيانات المسماة

استخدم طلب POST هذا لبدء مهمة تصنيف نص.

{ENDPOINT}/language/analyze-text/jobs?api-version={API-VERSION}
Placeholder القيمة‬ مثال
{ENDPOINT} نقطة النهاية للمصادقة على طلب واجهة برمجة التطبيقات. https://<your-custom-subdomain>.cognitiveservices.azure.com
{API-VERSION} إصدار واجهة برمجة التطبيقات التي تستدعيها. القيمة المشار إليها هنا هي لأحدث إصدار تم إصداره. يرجى الاطلاع على دورة حياة النموذج لمعرفة المزيد حول إصدارات API الأخرى المتوفرة. 2022-05-01

الرؤوس

مفتاح القيمة
Ocp-Apim-Subscription-Key المفتاح الخاص بك الذي يسمح بإمكانية الوصول إلى واجهة برمجة التطبيقات هذه.

نص الرسالة

{
  "displayName": "Extracting entities",
  "analysisInput": {
    "documents": [
      {
        "id": "1",
        "language": "{LANGUAGE-CODE}",
        "text": "Text1"
      },
      {
        "id": "2",
        "language": "{LANGUAGE-CODE}",
        "text": "Text2"
      }
    ]
  },
  "tasks": [
     {
      "kind": "CustomEntityRecognition",
      "taskName": "Entity Recognition",
      "parameters": {
        "projectName": "{PROJECT-NAME}",
        "deploymentName": "{DEPLOYMENT-NAME}"
      }
    }
  ]
}
مفتاح Placeholder القيمة‬ مثال
displayName {JOB-NAME} اسم الوظيفة الخاصة بك. MyJobName
documents [{}،{}] قائمة بالمستندات لتشغيل المهام عليها. [{},{}]
id {DOC-ID} اسم المستند أو معرف الهوية. doc1
language {LANGUAGE-CODE} سلسلة تحدد التعليمة البرمجية للغة الخاصة بالمستند. في حالة عدم تحديد هذا المفتاح، تفترض الخدمة اللغة الافتراضية للمشروع الذي تم تحديده أثناء إنشاء المشروع. راجع دعم لغة الكمبيوتر للحصول على قائمة التعليمة البرمجية للغات المدعومة. en-us
text {DOC-TEXT} مهمة المستند من أجل تشغيل المهام عليها. Lorem ipsum dolor sit amet
tasks قائمة بالمهام التي نريد تنفيذها. []
taskName CustomEntityRecognition اسم المهمة CustomEntityRecognition
parameters قائمة المعلمات المطلوب نقلها إلى المهمة.
project-name {PROJECT-NAME} اسم مشروعك. هذه القيمة حساسة لحالة الأحرف. myProject
deployment-name {DEPLOYMENT-NAME} اسم النشر الخاص بك. هذه القيمة حساسة لحالة الأحرف. prod

Response

ستتلقى استجابة 202 تشير إلى أن مهمتك قد تم إرسالها بنجاح. في عناوين الرد، استخرج قيمةoperation-location. operation-location منسقة على النحو التالي:

{ENDPOINT}/language/analyze-text/jobs/{JOB-ID}?api-version={API-VERSION}

يمكنك استخدام عنوان URL هذا من أجل الاستعلام عن حالة إكمال المهمة والحصول على النتائج الخاصة بها عند اكتمال المهمة.

احصل على نتائج المهمة.

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

{ENDPOINT}/language/analyze-text/jobs/{JOB-ID}?api-version={API-VERSION}
Placeholder القيمة‬ مثال
{ENDPOINT} نقطة النهاية للمصادقة على طلب واجهة برمجة التطبيقات. https://<your-custom-subdomain>.cognitiveservices.azure.com
{API-VERSION} إصدار واجهة برمجة التطبيقات التي تستدعيها. القيمة المشار إليها هنا هي لأحدث إصدار تم إصداره. يرجى الاطلاع على دورة حياة النموذج لمعرفة المزيد حول إصدارات API الأخرى المتوفرة. 2022-05-01

الرؤوس

مفتاح القيمة
Ocp-Apim-Subscription-Key المفتاح الخاص بك الذي يسمح بإمكانية الوصول إلى واجهة برمجة التطبيقات هذه.

هيئة الاستجابة

سيُقدم الرد في مستند بلغة JSON مع المعلمات التالية

{
  "createdDateTime": "2021-05-19T14:32:25.578Z",
  "displayName": "MyJobName",
  "expirationDateTime": "2021-05-19T14:32:25.578Z",
  "jobId": "xxxx-xxxx-xxxxx-xxxxx",
  "lastUpdateDateTime": "2021-05-19T14:32:25.578Z",
  "status": "succeeded",
  "tasks": {
    "completed": 1,
    "failed": 0,
    "inProgress": 0,
    "total": 1,
    "items": [
      {
        "kind": "EntityRecognitionLROResults",
        "taskName": "Recognize Entities",
        "lastUpdateDateTime": "2020-10-01T15:01:03Z",
        "status": "succeeded",
        "results": {
          "documents": [
            {
              "entities": [
                {
                  "category": "Event",
                  "confidenceScore": 0.61,
                  "length": 4,
                  "offset": 18,
                  "text": "trip"
                },
                {
                  "category": "Location",
                  "confidenceScore": 0.82,
                  "length": 7,
                  "offset": 26,
                  "subcategory": "GPE",
                  "text": "Seattle"
                },
                {
                  "category": "DateTime",
                  "confidenceScore": 0.8,
                  "length": 9,
                  "offset": 34,
                  "subcategory": "DateRange",
                  "text": "last week"
                }
              ],
              "id": "1",
              "warnings": []
            }
          ],
          "errors": [],
          "modelVersion": "2020-04-01"
        }
      }
    ]
  }
}

تنظيف الموارد

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

{Endpoint}/language/authoring/analyze-text/projects/{projectName}?api-version={API-VERSION}
Placeholder القيمة‬ مثال
{ENDPOINT} نقطة النهاية للمصادقة على طلب واجهة برمجة التطبيقات. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} اسم مشروعك. هذه القيمة حساسة لحالة الأحرف. myProject
{API-VERSION} إصدار واجهة برمجة التطبيقات التي تستدعيها. القيمة المشار إليها هنا هي لأحدث إصدار تم إصداره. يرجى الاطلاع على دورة حياة النموذج لمعرفة المزيد حول إصدارات API الأخرى المتوفرة. 2022-05-01

الرؤوس

استخدم العنوان التالي للمصادقة على طلبك.

مفتاح القيمة
Ocp-Apim-Subscription-Key مفتاح موردك. يُستخدم للمصادقة على طلبات واجهة برمجة التطبيقات.

بمجرد إرسال طلب واجهة برمجة التطبيقات، ستتلقى استجابة 202 تشير إلى النجاح، ما يعني أنه تم حذف المشروع. ينتج عن الاستدعاء الناجح عنوان Operation-Location يُستخدم للتحقق من حالة الوظيفة.

الخطوات التالية

بعد إنشاء نموذج استخراج الكيان، يمكنك:

عند البدء في إنشاء مشاريع NER مخصصة، استخدم مقالات حول معرفة المزيد حول تعليم وتدريب واستخدام نموذجك للتعرف بشكل مفصل على معلومات أكثر: