إضافة تدقيق إملائي إلى الاستعلامات في Azure الذكاء الاصطناعي Search

هام

التصحيح الإملائي في المعاينة العامة ضمن شروط الاستخدام التكميلية. وهي متوفرة من خلال مدخل Microsoft Azure، ومعاينة واجهات برمجة تطبيقات REST، وإصدارات بيتا من مكتبات Azure SDK.

يمكنك تحسين الاستدعاء عن طريق التصحيح الإملائي للكلمات في استعلام قبل أن تصل إلى محرك البحث. speller المعلمة معتمدة لجميع أنواع الاستعلامات النصية (غير المتجهة).

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

  • خدمة بحث في المستوى الأساسي أو أعلى، في أي منطقة.

  • فهرس بحث موجود يحتوي على محتوى بلغة معتمدة.

  • طلب استعلام يحتوي speller=lexicon على لغة معتمدة ويضبطهاqueryLanguage. يعمل التدقيق الإملائي على السلاسل التي تم تمريرها في المعلمة search . وهو غير مدعوم لعوامل التصفية أو البحث الغامض أو البحث في أحرف البدل أو التعبيرات العادية أو استعلامات المتجهات.

استخدم عميل بحث يدعم معاينة واجهات برمجة التطبيقات على طلب الاستعلام. يمكنك استخدام عميل REST أو التعليمات البرمجية التي قمت بتعديلها لإجراء استدعاءات REST لمعاينة واجهات برمجة التطبيقات. يمكنك أيضا استخدام إصدارات بيتا من Azure SDKs.

مكتبة العميل الإصدارات
واجهة برمجة تطبيقات REST الإصدارات 2020-06-30-Preview والإصدارات الأحدث. الإصدار الحالي هو 2023-10-01-Preview
Azure SDK لـ .NET الإصدار 11.5.0-beta.5
Azure SDK لـ Java الإصدار 11.6.0-beta.5
Azure SDK لـ JavaScript الإصدار 11.3.0-beta.8
Azure SDK لـ Python الإصدار 11.4.0b3

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

POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2020-06-30-Preview
{
    "search": "famly acitvites",
    "speller": "lexicon",
    "queryLanguage": "en-us",
    "queryType": "simple",
    "select": "HotelId,HotelName,Description,Category,Tags",
    "count": true
}

تصحيح إملائي باستخدام Lucene الكامل

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

  • تتضمن نماذج الاستعلام غير المتوافقة التي تتجاوز تحليل النص: حرف البدل، regex، غامض
  • تتضمن نماذج الاستعلام المتوافقة: البحث الميداني، والتقارب، وتعزيز المصطلح

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

POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2020-06-30-Preview
{
    "search": "Category:(Resort and Spa) OR Category:Suiite",
    "queryType": "full",
    "speller": "lexicon",
    "queryLanguage": "en-us",
    "select": "Category",
    "count": true
}

تصحيح إملائي بترتيب دلالي

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

POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2020-06-30-Preview     
{
    "search": "hisotoric hotell wiht great restrant nad wiifi",
    "queryType": "semantic",
    "speller": "lexicon",
    "queryLanguage": "en-us",
    "searchFields": "HotelName,Tags,Description",
    "select": "HotelId,HotelName,Description,Category,Tags",
    "count": true
}

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

يمكن العثور على قيم صالحة ل queryLanguage في الجدول التالي، تم نسخها من قائمة اللغات المدعومة (مرجع REST API) .

اللغة‬ queryLanguage
الإنجليزية [EN] EN، EN-US (افتراضي)
الأسبانية [ES] ES، ES-ES (افتراضي)
الفرنسية [FR] FR، FR-FR (افتراضي)
الألمانية [DE] DE، DE-DE (افتراضي)
الهولندية [NL] NL وNL-BE وNL-NL (افتراضي)

إشعار

في السابق، بينما كان الترتيب الدلالي في المعاينة العامة، استخدمت المعلمة queryLanguage أيضا للتصنيف الدلالي. الترتيب الدلالي هو الآن غير محدد اللغة.

اعتبارات محلل اللغة

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

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

لخلاصة كيفية استخدام مكتبات اللغات في Azure الذكاء الاصطناعي Search:

  • يمكن استدعاء محللات اللغة أثناء الفهرسة وتنفيذ الاستعلام، وهي إما Apache Lucene (على سبيل المثال، "de.lucene") أو Microsoft ("de.microsoft).

  • يتم تحديد المعجم اللغوي الذي تم استدعاؤه أثناء التدقيق الإملائي باستخدام أحد رموز اللغة في جدول اللغة المدعوم.

في طلب استعلام، تنطبق القيمة المعينة على queryLanguagespeller.

إشعار

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

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

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