اختيار المحلل المناسب لحالة الاستخدام الخاصة بك
يركز هذا الدليل على اتخاذ القرارات العملية لاختيار المحلل. للحصول على التفاصيل الفنية حول مكونات المحلل وكيفية إضافة معلمات المحلل، راجع نظرة عامة على المحلل.
فهم المحللات في دقيقتين
في Milvus، يقوم المحلل بمعالجة النص المخزن في هذا الحقل لجعله قابلاً للبحث عن ميزات مثل البحث عن النص الكامل (BM25) أو مطابقة العبارات أو مطابقة النص. فكر فيه كمعالج نصي يحول المحتوى الخام الخاص بك إلى رموز قابلة للبحث.
يعمل المحلل في مسار عمل بسيط من مرحلتين:
سير عمل المحلِّل
الترميز (مطلوب): تطبّق هذه المرحلة الأولية أداة ترميز لتقسيم سلسلة نصية متصلة إلى وحدات منفصلة ذات معنى تسمى الرموز. يمكن أن تختلف طريقة الترميز بشكل كبير اعتمادًا على اللغة ونوع المحتوى.
تصفية الرموز (اختياري): بعد الترميز، يتم تطبيق المرشحات لتعديل الرموز أو إزالتها أو تنقيحها. يمكن أن تشمل هذه العمليات تحويل جميع الرموز إلى أحرف صغيرة، أو إزالة الكلمات الشائعة التي لا معنى لها (مثل الكلمات الوقفية)، أو اختزال الكلمات إلى شكلها الجذري (الجذعية).
مثال:
Input: "Hello World!"
1. Tokenization → ["Hello", "World", "!"]
2. Lowercase & Punctuation Filtering → ["hello", "world"]
لماذا اختيار المحلّل مهم
يمكن أن يؤدي اختيار المحلل الخاطئ إلى جعل المستندات ذات الصلة غير قابلة للبحث أو إرجاع نتائج غير ذات صلة.
يلخص الجدول التالي المشاكل الشائعة الناجمة عن الاختيار غير الصحيح للمحلل ويوفر حلولاً عملية لتشخيص مشاكل البحث.
المشكلة |
الأعراض |
مثال (المدخلات والمخرجات) |
السبب (محلل سيء) |
الحل (محلل جيد) |
|---|---|---|---|---|
الإفراط في الترميز |
تفشل الاستعلامات النصية للمصطلحات التقنية أو المعرفات أو عناوين URL في العثور على المستندات ذات الصلة. |
|
|
استخدم أداة |
الترميز الناقص |
فشل البحث عن أحد مكونات عبارة متعددة الكلمات في إرجاع المستندات التي تحتوي على العبارة الكاملة. |
|
محلل مع |
استخدم أداة |
عدم تطابق اللغة |
نتائج البحث عن لغة معينة غير منطقية أو غير موجودة. |
النص الصيني: |
|
استخدم محللاً خاصاً بلغة معينة، مثل |
السؤال الأول: هل تحتاج إلى اختيار محلل؟
بالنسبة للعديد من حالات الاستخدام، لا تحتاج إلى القيام بأي شيء خاص. دعنا نحدد ما إذا كنت واحدًا منهم.
السلوك الافتراضي: standard المحلل
إذا لم تقم بتحديد محلل عند استخدام ميزات استرجاع النص مثل البحث عن النص الكامل، يستخدم ميلفوس تلقائيًا standard المحلِّل.
محلل standard
يقسم النص على المسافات وعلامات الترقيم
يحول جميع الرموز إلى أحرف صغيرة
يزيل مجموعة مضمنة من كلمات الوقف الشائعة في اللغة الإنجليزية ومعظم علامات الترقيم
مثال على التحويل:
Input: "The Milvus vector database is built for scale!"
Output: ['the', 'milvus', 'vector', 'database', 'is', 'built', 'scale']
معايير القرار: فحص سريع
استخدم هذا الجدول لتحديد ما إذا كان محلل standard الافتراضي يلبي احتياجاتك بسرعة. إذا كان لا يلبي، فستحتاج إلى اختيار مسار مختلف.
المحتوى الخاص بك |
هل المحلل القياسي مناسب؟ |
لماذا |
ما تحتاجه |
|---|---|---|---|
منشورات المدونة الإنجليزية |
✅ نعم |
السلوك الافتراضي كافٍ. |
استخدم الافتراضي (لا حاجة إلى تكوين). |
المستندات الصينية |
❌ لا |
الكلمات الصينية ليس لها مسافات وسيتم التعامل معها كرمز واحد. |
استخدم محلل |
الوثائق الفنية |
❌ لا |
يتم تجريد علامات الترقيم من المصطلحات مثل |
قم بإنشاء محلل مخصص باستخدام |
لغات مفصولة بمسافات مثل النص الفرنسي/الإسباني |
⚠️ ربما |
قد لا تتطابق الأحرف المعلمة ( |
يوصى باستخدام محلل مخصص مع |
لغات متعددة اللغات أو غير معروفة |
❌ لا |
يفتقر محلل |
استخدم محللاً مخصصًا مع بدلاً من ذلك، ضع في اعتبارك تكوين محللات متعددة اللغات أو معرّف لغة لمعالجة أكثر دقة للمحتوى متعدد اللغات. |
إذا لم يتمكن محلل standard الافتراضي من تلبية متطلباتك، فأنت بحاجة إلى تنفيذ محلل مختلف. لديك مساران:
المسار أ: استخدام محللات مدمجة
المحللات المدمجة هي حلول مهيأة مسبقاً للغات الشائعة. إنها أسهل طريقة للبدء عندما لا يكون المحلل القياسي الافتراضي مناسبًا تمامًا.
المحللات المدمجة المتاحة
المحلل |
دعم اللغة |
المكونات |
ملاحظات |
|---|---|---|---|
معظم اللغات المفصولة بمسافات (الإنجليزية والفرنسية والألمانية والإسبانية وغيرها) |
|
محلل للأغراض العامة لمعالجة النصوص الأولية. بالنسبة للسيناريوهات أحادية اللغة، توفر المحللات الخاصة بكل لغة (مثل |
|
مخصص للغة الإنجليزية، والذي يطبق الجذعية وإزالة كلمات الوقف لمطابقة دلالات اللغة الإنجليزية بشكل أفضل |
|
موصى به للمحتوى باللغة الإنجليزية فقط على |
|
الصينية |
|
يستخدم حاليًا القاموس الصيني المبسط افتراضيًا. |
مثال على التنفيذ
لاستخدام محلل مدمج، ما عليك سوى تحديد نوعه في analyzer_params عند تحديد مخطط الحقل الخاص بك.
# Using built-in English analyzer
analyzer_params = {
"type": "english"
}
# Applying analyzer config to target VARCHAR field in your collection schema
schema.add_field(
field_name='text',
datatype=DataType.VARCHAR,
max_length=200,
enable_analyzer=True,
analyzer_params=analyzer_params,
)
للحصول على الاستخدام التفصيلي، راجع بحث النص الكامل أو مطابقة النص أو مطابقة العبارة.
المسار ب: إنشاء محلل مخصص
عندما لا تفي الخيارات المضمنة باحتياجاتك، يمكنك إنشاء محلل مخصص من خلال الجمع بين مُحلل الرموز ومجموعة من المرشحات. يمنحك ذلك تحكماً كاملاً في مسار معالجة النصوص.
الخطوة 1: اختر أداة الترميز بناءً على اللغة
اختر أداة الترميز بناءً على اللغة الأساسية للمحتوى الخاص بك:
اللغات الغربية
بالنسبة للغات المفصولة فضائيًا، لديك هذه الخيارات:
أداة الترميز |
كيف يعمل |
الأفضل ل |
أمثلة |
|---|---|---|---|
تقسيم النص بناءً على المسافات وعلامات الترقيم |
النص العام وعلامات الترقيم المختلطة |
|
|
يقسم على أحرف المسافات البيضاء فقط |
محتوى معالج مسبقًا، نص منسق من قبل المستخدم |
|
لغات شرق آسيا
تتطلب اللغات المستندة إلى القاموس أدوات ترميز متخصصة لتجزئة الكلمات بشكل صحيح:
الصينية
أداة ترميز |
كيف يعمل |
الأفضل ل |
أمثلة |
|---|---|---|---|
التجزئة القائمة على القاموس الصيني مع خوارزمية ذكية |
موصى به للمحتوى الصيني - يجمع بين القاموس والخوارزميات الذكية، المصممة خصيصًا للغة الصينية |
|
|
التحليل الصرفي النقي القائم على القاموس مع القاموس الصيني(cc-cedict) |
بالمقارنة مع |
|
اليابانية والكورية
اللغة |
أداة الترميز |
خيارات القاموس |
الأفضل ل |
أمثلة |
|---|---|---|---|---|
اليابانية |
ipadic (للأغراض العامة)، ipadic-neologd (المصطلحات الحديثة)، unidic (أكاديمي) |
التحليل الصرفي مع معالجة الاسم الصحيح |
|
|
الكورية |
التحليل الصرفي الكوري |
|
لغات متعددة اللغات أو غير معروفة
للمحتوى الذي لا يمكن التنبؤ فيه باللغات أو المختلطة داخل المستندات:
أداة الترميز |
كيف يعمل |
الأفضل ل |
أمثلة |
|---|---|---|---|
الترميز المدرك للرموز الأحادية (المكونات الدولية لليونيكود) |
النصوص المختلطة أو اللغات غير المعروفة أو عندما يكون الترميز البسيط كافياً |
|
متى يتم استخدام الرمز الموحد الدولي
اللغات المختلطة حيث يكون تحديد اللغة غير عملي.
أنت لا تريد النفقات الزائدة للمحللات متعددة اللغات أو معرف اللغة.
المحتوى الذي يحتوي على لغة أساسية مع كلمات أجنبية عرضية لا تساهم إلا قليلاً في المعنى العام (على سبيل المثال، نص إنجليزي مع أسماء علامات تجارية متفرقة أو مصطلحات تقنية باللغة اليابانية أو الفرنسية).
الأساليب البديلة: للحصول على معالجة أكثر دقة للمحتوى متعدد اللغات، ضع في اعتبارك استخدام محلل متعدد اللغات أو معرّف اللغة. للحصول على التفاصيل، راجع محلل متعدد اللغات أو معرّف اللغة.
الخطوة 2: أضف مرشحات للدقة
بعد اختيار أداة الترميز الخاصة بك، قم بتطبيق عوامل التصفية بناءً على متطلبات البحث الخاصة بك وخصائص المحتوى.
المرشحات شائعة الاستخدام
هذه الفلاتر ضرورية لمعظم تكوينات اللغات المنفصلة عن بعضها البعض (الإنجليزية، والفرنسية، والألمانية، والإسبانية، وغيرها) وتحسّن جودة البحث بشكل كبير:
التصفية |
كيف تعمل |
متى تستخدم |
أمثلة |
|---|---|---|---|
تحويل جميع الرموز إلى أحرف صغيرة |
عالمي - ينطبق على جميع اللغات ذات الأحرف الصغيرة |
|
|
اختزال الكلمات إلى صيغتها الجذرية |
اللغات ذات تصريفات الكلمات (الإنجليزية والفرنسية والألمانية وغيرها) |
للإنجليزية
|
|
إزالة الكلمات الشائعة التي لا معنى لها |
معظم اللغات - فعّالة بشكل خاص للغات ذات التصريفات الفراغية |
|
بالنسبة للغات شرق آسيا (الصينية واليابانية والكورية وغيرها)، ركز على المرشحات الخاصة بكل لغة بدلاً من ذلك. عادةً ما تستخدم هذه اللغات أساليب مختلفة لمعالجة النصوص وقد لا تستفيد بشكل كبير من عملية التصفية.
مرشحات تطبيع النص
تعمل هذه المرشحات على توحيد اختلافات النص لتحسين اتساق المطابقة:
المرشحات |
كيف تعمل |
متى تستخدم |
أمثلة |
|---|---|---|---|
تحويل الأحرف المعلمة إلى معادلات ASCII |
المحتوى الدولي، المحتوى الذي ينشئه المستخدم |
|
تصفية الرموز
التحكم في الرموز التي يتم الاحتفاظ بها بناءً على محتوى الحرف أو طوله:
التصفية |
كيف يعمل |
متى تستخدم |
أمثلة |
|---|---|---|---|
إزالة رموز علامات الترقيم المستقلة |
تنظيف المخرجات من |
|
|
الاحتفاظ بالحروف والأرقام فقط |
المحتوى التقني، معالجة النص النظيف |
|
|
إزالة الرموز خارج نطاق الطول المحدد |
تصفية الضوضاء (الرموز الطويلة بشكل مفرط) |
|
|
تصفية مستندة إلى نمط مخصص |
متطلبات الرموز الرمزية الخاصة بالمجال |
|
مرشحات خاصة باللغة
تتعامل هذه المرشحات مع خصائص لغة محددة:
عامل التصفية |
اللغة |
كيف تعمل |
أمثلة |
|---|---|---|---|
الألمانية |
يقسم الكلمات المركبة إلى مكونات قابلة للبحث |
|
|
الصينية |
يحتفظ بالأحرف الصينية + أبجدية رقمية |
|
|
الصينية |
يحتفظ بالأحرف الصينية فقط |
|
الخطوة 3: الجمع والتنفيذ
لإنشاء مُحلل مخصص، تقوم بتحديد مُحلل الرموز وقائمة من المرشحات في قاموس analyzer_params. يتم تطبيق المرشحات بالترتيب المدرجة به.
# Example: A custom analyzer for technical content
analyzer_params = {
"tokenizer": "whitespace",
"filter": ["lowercase", "alphanumonly"]
}
# Applying analyzer config to target VARCHAR field in your collection schema
schema.add_field(
field_name='text',
datatype=DataType.VARCHAR,
max_length=200,
enable_analyzer=True,
analyzer_params=analyzer_params,
)
النهائي: اختبر مع run_analyzer
تحقق دائمًا من صحة التكوين الخاص بك قبل تطبيقه على مجموعة:
# Sample text to analyze
sample_text = "The Milvus vector database is built for scale!"
# Run analyzer with the defined configuration
result = client.run_analyzer(sample_text, analyzer_params)
print("Analyzer output:", result)
المشاكل الشائعة التي يجب التحقق منها
الإفراط في الترميز: المصطلحات الفنية التي يتم تقسيمها بشكل غير صحيح
نقص الترميز: عدم فصل العبارات بشكل صحيح
الرموز المفقودة: مصطلحات مهمة يتم تصفيتها
للاطلاع على الاستخدام التفصيلي، راجع Run_analyzer.
التكوينات الموصى بها حسب حالة الاستخدام
يوفر هذا القسم التكوينات الموصى بها لأداة الترميز والتصفية لحالات الاستخدام الشائعة عند العمل مع أدوات التحليل في Milvus. اختر المجموعة التي تتوافق بشكل أفضل مع نوع المحتوى ومتطلبات البحث الخاصة بك.
قبل تطبيق محلل على مجموعتك، نوصيك باستخدام run_analyzer لاختبار أداء تحليل النص والتحقق من صحة أدائه.
اللغات ذات علامات التشكيل (الفرنسية والإسبانية والألمانية وغيرها)
استخدم أداة ترميز standard مع تحويل الأحرف الصغيرة، والوقف الخاص باللغة، وإزالة الكلمات المتوقفة. يعمل هذا التكوين أيضًا مع اللغات الأوروبية الأخرى عن طريق تعديل المعلمات language و stop_words.
# French example
analyzer_params = {
"tokenizer": "standard",
"filter": [
"lowercase",
"asciifolding", # Handle accent marks
{
"type": "stemmer",
"language": "french"
},
{
"type": "stop",
"stop_words": ["_french_"]
}
]
}
# For other languages, modify the language parameter:
# "language": "spanish" for Spanish
# "language": "german" for German
# "stop_words": ["_spanish_"] or ["_german_"] accordingly
المحتوى الإنجليزي
لمعالجة النص الإنجليزي مع تصفية شاملة. يمكنك أيضًا استخدام english المدمج:
analyzer_params = {
"tokenizer": "standard",
"filter": [
"lowercase",
{
"type": "stemmer",
"language": "english"
},
{
"type": "stop",
"stop_words": ["_english_"]
}
]
}
# Equivalent built-in shortcut:
analyzer_params = {
"type": "english"
}
المحتوى الصيني
استخدم أداة الترميز jieba وطبِّق عامل تصفية الأحرف للاحتفاظ فقط بالأحرف الصينية والحروف اللاتينية والأرقام.
analyzer_params = {
"tokenizer": "jieba",
"filter": ["cnalphanumonly"]
}
# Equivalent built-in shortcut:
analyzer_params = {
"type": "chinese"
}
بالنسبة للغة الصينية المبسطة، cnalphanumonly يزيل جميع الرموز باستثناء الأحرف الصينية والنصوص الأبجدية الرقمية والأرقام. هذا يمنع علامات الترقيم من التأثير على جودة البحث.
المحتوى الياباني
استخدم أداة الترميز lindera مع القاموس والمرشحات اليابانية لتنظيف علامات الترقيم والتحكم في طول الرمز المميز:
analyzer_params = {
"tokenizer": {
"type": "lindera",
"dict": "ipadic" # Options: ipadic, ipadic-neologd, unidic
},
"filter": [
"removepunct", # Remove standalone punctuation
{
"type": "length",
"min": 1,
"max": 20
}
]
}
المحتوى الكوري
على غرار اليابانية، باستخدام أداة الترميز lindera مع القاموس الكوري:
analyzer_params = {
"tokenizer": {
"type": "lindera",
"dict": "ko-dic"
},
"filter": [
"removepunct",
{
"type": "length",
"min": 1,
"max": 20
}
]
}
محتوى مختلط أو متعدد اللغات
عند العمل مع محتوى يمتد على عدة لغات أو يستخدم نصوصًا بشكل غير متوقع، ابدأ باستخدام محلل icu. يتعامل هذا المحلل المدرك للرموز الأحادية مع النصوص والرموز المختلطة بفعالية.
التكوين الأساسي متعدد اللغات (بدون جذع):
analyzer_params = {
"tokenizer": "icu",
"filter": ["lowercase", "asciifolding"]
}
معالجة متقدمة متعددة اللغات:
لتحكم أفضل في سلوك الرموز عبر لغات مختلفة:
استخدم تكوين محلل متعدد اللغات. للحصول على التفاصيل، راجع محلل متعدد اللغات.
تنفيذ معرّف لغة على المحتوى الخاص بك. للحصول على التفاصيل، راجع معرّف اللغة.
التكامل مع ميزات استرجاع النصوص
بعد اختيار المحلّل الخاص بك، يمكنك دمجه مع ميزات استرجاع النصوص التي يوفرها Milvus.
البحث عن النص الكامل
تؤثر المحللات بشكل مباشر على البحث عن النص الكامل المستند إلى BM25 من خلال توليد المتجهات المتفرقة. استخدم نفس المحلّل لكل من الفهرسة والاستعلام لضمان اتساق الترميز. توفر المحللات الخاصة باللغات بشكل عام درجات BM25 أفضل من تلك العامة. للحصول على تفاصيل التنفيذ، راجع البحث عن النص الكامل.
مطابقة النص
تقوم عمليات مطابقة النص بإجراء مطابقة تامة للرموز بين الاستعلامات والمحتوى المفهرس بناءً على مخرجات المحلل. للحصول على تفاصيل التنفيذ، راجع مطابقة النص.
مطابقة العبارات
تتطلب مطابقة العبارات ترميزًا متناسقًا عبر التعبيرات متعددة الكلمات للحفاظ على حدود العبارات ومعناها. للحصول على تفاصيل التنفيذ، راجع مطابقة العبارة.