إضافة محللات اللغة إلى حقول السلسلة في فهرس Azure الذكاء الاصطناعي Search

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

متى تستخدم محلل اللغة

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

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

على سبيل المثال، باللغات الصينية واليابانية والكورية (CJK) واللغات الآسيوية الأخرى، لا تكون المسافة بالضرورة محدد كلمات. ضع في اعتبارك السلسلة اليابانية التالية. ولأنه لا يحتوي على مسافات، فمن المحتمل أن يحلل محلل اللغة السلسلة بأكملها كرمز مميز واحد، في حين أن السلسلة في الواقع عبارة.

これは私たちの銀河系の中ではもっとも重く明るいクラスの球状星団です。
(This is the heaviest and brightest group of spherical stars in our galaxy.)

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

أفضل تجربة هي البحث عن الكلمات الفردية: 明るい (Bright)، 私たちの (Our)، 銀河系 (Galaxy). من المرجح أن يؤدي استخدام أحد المحللات اليابانية المتوفرة في Azure الذكاء الاصطناعي Search إلى إلغاء تأمين هذا السلوك لأن أدوات التحليل هذه مجهزة بشكل أفضل لتقسيم جزء النص إلى كلمات ذات معنى في اللغة الهدف.

مقارنة Lucene وMicrosoft Analyzers

يدعم Azure الذكاء الاصطناعي Search 35 محلل لغة مدعوم من Lucene، و50 محلل لغة مدعوم بتقنية معالجة اللغة الطبيعية من Microsoft الخاصة المستخدمة في Office وBing.

قد يفضل بعض المطورين الحل الأكثر دراية وبسيطة ومفتوحة المصدر من Lucene. تكون أدوات تحليل لغة Lucene أسرع، ولكن لدى محللي Microsoft قدرات متقدمة، مثل lemmatization وإلغاء ترجمة الكلمات (بلغات مثل الألمانية والدانمركية والهولندية والسويدية والنرويجية والاستونية والفنلندية والهنغارية والسلوفاكية) والتعرف على الكيان (عناوين URL ورسائل البريد الإلكتروني والتواريخ والأرقام). إذا كان ذلك ممكنا، يجب تشغيل مقارنات لكل من محللات Microsoft و Lucene لتحديد أيهما مناسب بشكل أفضل. يمكنك استخدام Analyze API لمشاهدة الرموز المميزة التي تم إنشاؤها من نص معين باستخدام محلل معين.

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

محللات اللغة الإنجليزية

المحلل الافتراضي هو Standard Lucene، الذي يعمل بشكل جيد للغة الإنجليزية، ولكن ربما ليس كذلك محلل اللغة الإنجليزية ل Lucene أو محلل اللغة الإنجليزية من Microsoft.

  • يقوم محلل Lucene باللغة الإنجليزية بتوسيع محلل Standard. فهو يزيل العناصر المالكة (اللاحقة) من الكلمات، ويطبق النابع وفقا لخوارزمية Porter النابعة، ويزيل كلمات التوقف الإنجليزية.

  • يقوم محلل اللغة الإنجليزية من Microsoft بإجراء lemmatization بدلا من النبع. وهذا يعني أنه يمكنه التعامل مع أشكال الكلمات المحددة وغير المنتظمة بشكل أفضل بكثير مما يؤدي إلى نتائج بحث أكثر صلة.

كيفية تحديد محلل اللغة

قم بتعيين المحلل أثناء إنشاء الفهرس قبل تحميله بالبيانات.

  1. في تعريف الحقل، تأكد من أن الحقل ينسب على أنه "قابل للبحث" ومن نوع Edm.String.

  2. قم بتعيين الخاصية "analyzer" إلى أحد محللات اللغة من قائمة المحللات المدعومة.

    خاصية "المحلل" هي الخاصية الوحيدة التي ستقبل محلل اللغة، وتستخدم لكل من الفهرسة والاستعلامات. لن تقبل الخصائص الأخرى المتعلقة بالمحلل ("searchAnalyzer" و"indexAnalyzer") محلل اللغة.

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

يوضح المثال التالي مواصفات محلل اللغة في فهرس:

{
  "name": "hotels-sample-index",
  "fields": [
    {
      "name": "Description",
      "type": "Edm.String",
      "retrievable": true,
      "searchable": true,
      "analyzer": "en.microsoft",
      "indexAnalyzer": null,
      "searchAnalyzer": null
    },
    {
      "name": "Description_fr",
      "type": "Edm.String",
      "retrievable": true,
      "searchable": true,
      "analyzer": "fr.microsoft",
      "indexAnalyzer": null,
      "searchAnalyzer": null
    },

لمزيد من المعلومات حول إنشاء فهرس وتعيين خصائص الحقل، راجع إنشاء فهرس (REST). لمزيد من المعلومات حول تحليل النص، راجع المحللات في Azure الذكاء الاصطناعي Search.

محللات اللغة المدعومة

فيما يلي قائمة باللغات المدعومة، مع أسماء Lucene وMicrosoft analyzer.

اللغة اسم محلل Microsoft اسم محلل Lucene
العربية ar.microsoft ar.lucene
الأرمنية hy.lucene
البنغالية bn.microsoft
الباسكية eu.lucene
البلغارية bg.microsoft bg.lucene
الكتالانية ca.microsoft ca.lucene
الصينية المبسطة zh-Hans.microsoft zh-Hans.lucene
الصينية التقليدية zh-Hant.microsoft zh-Hant.lucene
‏‏الكرواتية hr.microsoft
♠ التشيكية cs.microsoft cs.lucene
الدانمركية da.microsoft da.lucene
الهولندية nl.microsoft nl.lucene
‏‫الإنجليزية‬ en.microsoft en.lucene
الإستونية et.microsoft
الفنلندية fi.microsoft fi.lucene
الفرنسية fr.microsoft fr.lucene
الجاليشية gl.lucene
الألمانية de.microsoft de.lucene
اليونانية el.microsoft el.lucene
الجيوجاراتية gu.microsoft
العبرية he.microsoft
الهندية hi.microsoft hi.lucene
الهنغارية hu.microsoft hu.lucene
الأيسلندية is.microsoft
الإندونيسية (بهاسا) id.microsoft id.lucene
الأيرلندية ga.lucene
الإيطالية it.microsoft it.lucene
اليابانية ja.microsoft ja.lucene
الكنادية kn.microsoft
الكورية ko.microsoft ko.lucene
اللاتفية lv.microsoft lv.lucene
الليتوانية lt.microsoft
المالايالامية ml.microsoft
الملايو (لاتيني) ms.microsoft
الماراثية mr.microsoft
النرويجية nb.microsoft no.lucene
الفارسية fa.lucene
البولندية pl.microsoft pl.lucene
البرتغالية (البرازيل)‏ pt-Br.microsoft pt-Br.lucene
البرتغالية (البرتغال)‏ pt-Pt.microsoft pt-Pt.lucene
البنجابية pa.microsoft
الرومانية ro.microsoft ro.lucene
الروسية ru.microsoft ru.lucene
الصربية (السيريلية) sr-cyrillic.microsoft
الصربية (اللاتينية) sr-latin.microsoft
السلوفاكية sk.microsoft
السلوفينية sl.microsoft
الإسبانية es.microsoft es.lucene
السويدية sv.microsoft sv.lucene
التاميلية ta.microsoft
تيلوجو te.microsoft
التايلاندية th.microsoft th.lucene
التركية tr.microsoft tr.lucene
الأوكرانية uk.microsoft
الأردية your.microsoft
فيتنامي vi.microsoft

يتم تشغيل جميع المحللات التي تحمل أسماء مشروحة باستخدام Lucene بواسطة محللات اللغة في Apache Lucene.

(راجع أيضًا )