التعليقات التوضيحية المرجعية في مجموعة مهارات البحث المعرفي في Azure
في هذه المقالة، ستتعلم كيفية الرجوع إلى التعليقات التوضيحية في تعريفات المهارة، باستخدام أمثلة لتوضيح سيناريوهات مختلفة. عندما يتدفق محتوى المستند عبر مجموعة من المهارات ، يتم إثراؤه بالتعليقات التوضيحية. يمكن استخدام التعليقات التوضيحية كمدخلات لمزيد من الإثراء في المراحل النهائية، أو تعيينها إلى حقل إخراج في فهرس.
تستند الأمثلة الواردة في هذه المقالة إلى حقل المحتوى الذي تم إنشاؤه تلقائيا بواسطة مفهرسات Azure Blob كجزء من مرحلة تكسير المستند . عند الإشارة إلى المستندات من حاوية Blob، استخدم تنسيقا مثل "/document/content"، حيث يكون حقل المحتوى جزءا من المستند.
مفاهيم الخلفية
قبل مراجعة بناء الجملة ، دعنا نعيد النظر في بعض المفاهيم المهمة لفهم الأمثلة المقدمة لاحقا في هذه المقالة بشكل أفضل.
| المدة | الوصف |
|---|---|
| وثيقة مفصلة | المستند المخصب هو بنية داخلية تم إنشاؤها واستخدامها بواسطة خط الأنابيب للاحتفاظ بجميع التعليقات التوضيحية المتعلقة بالمستند. فكر في المستند المخصب كشجرة من التعليقات التوضيحية. بشكل عام، يصبح التعليق التوضيحي الذي تم إنشاؤه من تعليق توضيحي سابق تابعا له. لا توجد المستندات المثرية إلا طوال مدة تنفيذ مجموعة المهارات. بمجرد تعيين المحتوى إلى فهرس البحث، لن تكون هناك حاجة إلى المستند المخصب. على الرغم من أنك لا تتفاعل مع المستندات المفصلة مباشرة، إلا أنه من المفيد أن يكون لديك نموذج ذهني للمستندات عند إنشاء مجموعة مهارات. |
| سياق الإثراء | السياق الذي يتم فيه التخصيب ، من حيث العنصر الذي يتم إثراؤه. وبشكل افتراضي، يكون سياق الإثراء على المستوى الذي يقتصر على "/document" الوثائق الفردية. عندما تعمل مهارة ما ، تصبح مخرجات تلك المهارة خصائص للسياق المحدد. |
مثال 1: مرجع التعليق التوضيحي البسيط
في Azure Blob Storage، افترض أن لديك مجموعة متنوعة من الملفات التي تحتوي على مراجع لأسماء الأشخاص التي تريد استخراجها باستخدام التعرف على الكيانات. في تعريف المهارة أدناه ، هو التمثيل النصي للوثيقة بأكملها ، "/document/content" و "الأشخاص" هو استخراج الأسماء الكاملة للكيانات المحددة كأشخاص.
نظرا لأن السياق الافتراضي هو "/document"، يمكن الآن الإشارة إلى قائمة الأشخاص باسم "/document/people". في هذه الحالة "/document/people" المحددة ، يوجد تعليق توضيحي ، والذي يمكن الآن تعيينه إلى حقل في فهرس ، أو استخدامه في مهارة أخرى في نفس مجموعة المهارات.
{
"@odata.type": "#Microsoft.Skills.Text.V3.EntityRecognitionSkill",
"categories": [ "Person"],
"defaultLanguageCode": "en",
"inputs": [
{
"name": "text",
"source": "/document/content"
}
],
"outputs": [
{
"name": "persons",
"targetName": "people"
}
]
}
مثال 2: الإشارة إلى صفيف داخل مستند
يعتمد هذا المثال على المثال السابق، ويوضح لك كيفية استدعاء خطوة إثراء عدة مرات على نفس المستند. افترض أن المثال السابق أنشأ مجموعة من السلاسل بأسماء 10 أشخاص من مستند واحد. قد تكون الخطوة التالية المعقولة هي الإثراء الثاني الذي يستخرج الاسم الأخير من الاسم الكامل. نظرا لوجود 10 أسماء، فأنت تريد استدعاء هذه الخطوة 10 مرات في هذا المستند، مرة واحدة لكل شخص.
لاستدعاء العدد الصحيح من التكرارات ، قم بتعيين السياق على النحو التالي "/document/people/*"، حيث تمثل العلامة النجمية ("*") جميع العقد في المستند المخصب كأحفاد ل "/document/people". على الرغم من أن هذه المهارة يتم تعريفها مرة واحدة فقط في صفيف المهارات ، إلا أنه يتم استدعاؤها لكل عضو داخل المستند حتى تتم معالجة جميع الأعضاء.
{
"@odata.type": "#Microsoft.Skills.Custom.WebApiSkill",
"description": "Fictitious skill that gets the last name from a full name",
"uri": "http://names.azurewebsites.net/api/GetLastName",
"context" : "/document/people/*",
"defaultLanguageCode": "en",
"inputs": [
{
"name": "fullname",
"source": "/document/people/*"
}
],
"outputs": [
{
"name": "lastname",
"targetName": "last"
}
]
}
عندما تكون التعليقات التوضيحية عبارة عن صفائف أو مجموعات من السلاسل، فقد ترغب في استهداف أعضاء محددين بدلا من الصفيف ككل. ينشئ المثال أعلاه تعليقا توضيحيا يسمى "last" تحت كل عقدة يمثلها السياق. إذا كنت تريد الرجوع إلى هذه العائلة من التعليقات التوضيحية ، فيمكنك استخدام بناء الجملة "/document/people/*/last". إذا كنت ترغب في الرجوع إلى تعليق توضيحي معين، فيمكنك استخدام فهرس صريح: "/document/people/1/last" للإشارة إلى الاسم الأخير لأول شخص تم تحديده في المستند. لاحظ أنه في صفائف بناء الجملة هذه "0 مفهرسة".
مثال 3: الأعضاء المرجعيون داخل صفيف
في بعض الأحيان تحتاج إلى تجميع جميع التعليقات التوضيحية من نوع معين لتمريرها إلى مهارة معينة. ضع في اعتبارك مهارة مخصصة افتراضية تحدد اسم العائلة الأكثر شيوعا من جميع الأسماء الأخيرة المستخرجة في المثال 2. لتوفير الأسماء الأخيرة فقط للمهارة المخصصة، حدد السياق ك والإدخال ك "/document""/document/people/*/lastname".
لاحظ أن جوهرية "/document/people/*/lastname" الوثيقة أكبر من قيمة الوثيقة. قد يكون هناك 10 عقد اسم العائلة بينما توجد عقدة مستند واحدة فقط لهذا المستند. في هذه الحالة ، سيقوم النظام تلقائيا بإنشاء صفيف "/document/people/*/lastname" يحتوي على جميع العناصر الموجودة في المستند.
{
"@odata.type": "#Microsoft.Skills.Custom.WebApiSkill",
"description": "Fictitious skill that gets the most common string from an array of strings",
"uri": "http://names.azurewebsites.net/api/MostCommonString",
"context" : "/document",
"inputs": [
{
"name": "strings",
"source": "/document/people/*/lastname"
}
],
"outputs": [
{
"name": "mostcommon",
"targetName": "common-lastname"
}
]
}