مهارة المشكل المعرفية
تقوم مهارة المشكل بدمج العديد من المدخلات في نوع معقد يمكن الرجوع إليه لاحقا في خط أنابيب التخصيب. تتيح لك مهارة المشكل إنشاء بنية بشكل أساسي وتحديد اسم أعضاء هذا الهيكل وتعيين قيم لكل عضو. تتضمن أمثلة الحقول الموحدة المفيدة في سيناريوهات البحث دمج الاسم الأول واسم العائلة في بنية واحدة أو المدينة والولاية في بنية واحدة أو الاسم وتاريخ الميلاد في بنية واحدة لإنشاء هوية فريدة.
بالإضافة إلى ذلك، تضيف مهارة المشكل الموضحة في السيناريو 3 خاصية sourceContext اختيارية إلى الإدخال. خصائص المصدروالمصدرالسياق يستبعد أحدهما الآخر. إذا كان الإدخال في سياق المهارة ، فما عليك سوى استخدام المصدر. إذا كان الإدخال في سياق مختلف عن سياق المهارة، فاستخدم sourceContext. يتطلب منك sourceContext تعريف إدخال متداخل مع العنصر المحدد الذي تتم معالجته كمصدر.
اسم الإخراج هو دائما "الإخراج". داخليا ، يمكن لخط الأنابيب تعيين اسم مختلف ، مثل "analyzedText" كما هو موضح في الأمثلة أدناه ، ولكن مهارة المشكل نفسها ترجع "الإخراج" في الاستجابة. قد يكون هذا مهما إذا كنت تقوم بتصحيح أخطاء المستندات المحدثة وتلاحظ تناقض التسمية ، أو إذا كنت تبني مهارة مخصصة وتقوم بهيكلة الاستجابة بنفسك.
ملاحظة
هذه المهارة ليست مرتبطة بالخدمات المعرفية. إنه غير قابل للفوترة وليس له متطلبات رئيسية للخدمات المعرفية.
@odata.type
Microsoft.Skills.Util.ShaperSkill
السيناريو 1: الأنواع المعقدة
ضع في اعتبارك سيناريو تريد فيه إنشاء بنية تسمى analyzedText تحتوي على عضوين: النصوالمشاعر ، على التوالي. في الفهرس، يطلق على الحقل القابل للبحث متعدد الأجزاء نوعا معقدا وغالبا ما يتم إنشاؤه عندما يكون للبيانات المصدر بنية معقدة مقابلة تقوم بتعيينها إليها.
ومع ذلك ، هناك طريقة أخرى لإنشاء أنواع معقدة من خلال مهارة التشكيل . من خلال تضمين هذه المهارة في مجموعة مهارات، يمكن للعمليات الموجودة في الذاكرة أثناء معالجة مجموعة المهارات إخراج أشكال البيانات ذات الهياكل المتداخلة، والتي يمكن بعد ذلك تعيينها إلى نوع معقد في الفهرس الخاص بك.
يوفر المثال التالي تعريف المهارة أسماء الأعضاء كمدخلات.
{
"@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
"context": "/document/content/phrases/*",
"inputs": [
{
"name": "text",
"source": "/document/content/phrases/*"
},
{
"name": "sentiment",
"source": "/document/content/phrases/*/sentiment"
}
],
"outputs": [
{
"name": "output",
"targetName": "analyzedText"
}
]
}
عينة فهرس
يتم استدعاء مجموعة المهارات بواسطة مفهرس ، ويتطلب المفهرس فهرسا. قد يبدو تمثيل الحقل المعقد في الفهرس الخاص بك مثل المثال التالي.
"name":"my-index",
"fields":[
{ "name":"myId", "type":"Edm.String", "key":true, "filterable":true },
{ "name":"analyzedText", "type":"Edm.ComplexType",
"fields":[
{
"name":"text",
"type":"Edm.String",
"facetable":false,
"filterable":false,
"searchable":true,
"sortable":false },
{
"name":"sentiment",
"type":"Edm.Double",
"facetable":true,
"filterable":true,
"searchable":true,
"sortable":true }
}
مدخلات المهارات
يمكن أن تكون وثيقة JSON الواردة التي توفر مدخلات قابلة للاستخدام لمهارة المشكل هذه:
{
"values": [
{
"recordId": "1",
"data": {
"text": "this movie is awesome",
"sentiment": 0.9
}
}
]
}
إنتاج المهارات
تولد مهارة المشكل عنصرا جديدا يسمى analyzedText مع العناصر المدمجة للنصوالمشاعر. يتوافق هذا الإخراج مع مخطط الفهرس. سيتم استيراده وفهرسته في فهرس البحث المعرفي في Azure.
{
"values": [
{
"recordId": "1",
"data":
{
"analyzedText":
{
"text": "this movie is awesome" ,
"sentiment": 0.9
}
}
}
]
}
السيناريو 2: دمج المدخلات
في مثال آخر ، تخيل أنه في مراحل مختلفة من معالجة خط الأنابيب ، قمت باستخراج عنوان كتاب ، وعناوين الفصول على صفحات مختلفة من الكتاب. يمكنك الآن إنشاء بنية واحدة تتكون من هذه المدخلات المختلفة.
قد يبدو تعريف مهارة المشكل لهذا السيناريو كمثال على ما يلي:
{
"@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
"context": "/document",
"inputs": [
{
"name": "title",
"source": "/document/content/title"
},
{
"name": "chapterTitles",
"source": "/document/content/pages/*/chapterTitles/*/title"
}
],
"outputs": [
{
"name": "output",
"targetName": "titlesAndChapters"
}
]
}
إنتاج المهارات
في هذه الحالة، يقوم المشكل بتسطيح جميع عناوين الفصول لإنشاء صفيف واحد.
{
"values": [
{
"recordId": "1",
"data": {
"titlesAndChapters": {
"title": "How to be happy",
"chapterTitles": [
"Start young",
"Laugh often",
"Eat, sleep and exercise"
]
}
}
}
]
}
السيناريو 3: دمج المدخلات من السياقات المتداخلة
تخيل أن لديك عنوان كتاب وفصوله ومحتوياته وقمت بتشغيل التعرف على الكيانات والعبارات الرئيسية على المحتويات وتحتاج الآن إلى تجميع النتائج من المهارات المختلفة في شكل واحد مع اسم الفصل والكيانات والعبارات الرئيسية.
قد يبدو تعريف مهارة المشكل لهذا السيناريو كمثال على ما يلي:
{
"@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
"context": "/document",
"inputs": [
{
"name": "title",
"source": "/document/content/title"
},
{
"name": "chapterTitles",
"sourceContext": "/document/content/pages/*/chapterTitles/*",
"inputs": [
{
"name": "title",
"source": "/document/content/pages/*/chapterTitles/*/title"
},
{
"name": "number",
"source": "/document/content/pages/*/chapterTitles/*/number"
}
]
}
],
"outputs": [
{
"name": "output",
"targetName": "titlesAndChapters"
}
]
}
إنتاج المهارات
في هذه الحالة ، يقوم المشكل بإنشاء نوع معقد. هذه البنية موجودة في الذاكرة. إذا كنت ترغب في حفظه في مخزن للمعارف ، فيجب عليك إنشاء إسقاط في مجموعة المهارات الخاصة بك يحدد خصائص التخزين.
{
"values": [
{
"recordId": "1",
"data": {
"titlesAndChapters": {
"title": "How to be happy",
"chapterTitles": [
{ "title": "Start young", "number": 1},
{ "title": "Laugh often", "number": 2},
{ "title": "Eat, sleep and exercise", "number: 3}
]
}
}
}
]
}