البينيينCompatible with Milvus 3.0.x

غالبًا ما يتطلب البحث عن النص الصيني من المستخدمين إدخال الأحرف الصينية تمامًا كما تظهر في النص المفهرس. في عمليات البحث عن الأسماء، والإكمال التلقائي، والبحث أثناء الكتابة، غالبًا ما يكتب المستخدمون بينيين بدلاً من الأحرف الصينية. على سبيل المثال، قد يكتب المستخدم « zuqiu » للبحث عن « 足球 ». يضيف مرشح « pinyin » رموز بينيين إلى ناتج المحلل بحيث يمكن للنص الصيني مطابقة الإدخال بالبينيين دون الحاجة إلى حقل منفصل للبينيين.

يُستخدم مرشح pinyin عادةً مع أداة تجزئة Jieba للنص الصيني. وهو يعمل في مسار مرشحات محلل مخصص ويمكنه إصدار أشكال متعددة من رموز بينيين لنفس الرمز الصيني.

التكوين

لاستخدام الخيارات الافتراضية، حدد « "pinyin" » في قسم « filter » في « analyzer_params ».

analyzer_params = {
    "tokenizer": "jieba",
    "filter": ["pinyin"],
}

يحتفظ هذا الاختصار بالرموز الصينية الأصلية ويُنتج رموز بينيين على مستوى الحرف. ولا يُنتج بينيين مركبًا أو أحرف بينيين الأولى ما لم تقم بتمكين هذه الخيارات صراحةً.

للتحكم الكامل، حدد المرشح ككائن وقم بتكوين أشكال رموز بينيين التي ينتجها Milvus.

analyzer_params = {
    "tokenizer": "jieba",
    "filter": [
        {
            "type": "pinyin",
            "keep_original": True,
            "keep_full_pinyin": True,
            "keep_joined_full_pinyin": False,
            "keep_separate_first_letter": False,
        }
    ],
}

يقبل المرشح المعلمات التالية.

المعلمةالنوعالقيمة الافتراضيةالوصف
keep_originalمنطقيةtrueيحتفظ بالرمز الصيني الأصلي في ناتج المحلل.
keep_full_pinyinمنطقيةtrueيصدر رموز بينيين على مستوى الحرف. على سبيل المثال، ينتج عن 中文 zhong و wen.
keep_joined_full_pinyinمنطقيةfalseيُصدر رمز بينيين مدمجًا لكل رمز مصدر. على سبيل المثال، ينتج عن 中文 الرمز zhongwen.
keep_separate_first_letterمنطقيةfalseيُخرج رمزًا من الأحرف الأولى بالبينيين لكل رمز مصدر. على سبيل المثال، يُنتج 中文 الرمز zw.

يعمل المرشح على الرموز التي ينتجها أداة تحليل الرموز. بالنسبة للنص الصيني، استخدمه مع أداة تحليل رموز مثل jieba.

أمثلة

قبل تطبيق تكوين المحلل على مخطط المجموعة الخاص بك، تحقق من سلوكه باستخدام run_analyzer.

from pymilvus import MilvusClient

client = MilvusClient(uri="http://localhost:19530")

sample_text = "中文测试"

مطابقة النص الصيني مع الرموز الصوتية (Pinyin) على مستوى الحرف

يحتفظ مرشح pinyin الافتراضي بالرموز الصينية الأصلية ويصدر رموز بينيين على مستوى الحرف.

analyzer_params = {
    "tokenizer": "jieba",
    "filter": ["pinyin"],
}

result = client.run_analyzer(sample_text, analyzer_params)
print(result)

الناتج المتوقع:

['中文', 'zhong', 'wen', '测试', 'ce', 'shi']

مطابقة المصطلحات الصينية مع نظام بينيين المركب

قم بتمكين keep_joined_full_pinyin عندما تحتاج إلى مطابقة مصطلح صيني مع شكله الكامل المركب من بينيين.

analyzer_params = {
    "tokenizer": "jieba",
    "filter": [
        {
            "type": "pinyin",
            "keep_original": True,
            "keep_full_pinyin": False,
            "keep_joined_full_pinyin": True,
            "keep_separate_first_letter": False,
        }
    ],
}

result = client.run_analyzer(sample_text, analyzer_params)
print(result)

الناتج المتوقع:

['中文', 'zhongwen', '测试', 'ceshi']

مطابقة المصطلحات الصينية مع الأحرف الأولى من بينيين

قم بتمكين " keep_separate_first_letter " عندما تحتاج إلى مطابقة مصطلح صيني مع الأحرف الأولى من شكله بالبينيين.

analyzer_params = {
    "tokenizer": "jieba",
    "filter": [
        {
            "type": "pinyin",
            "keep_original": True,
            "keep_full_pinyin": False,
            "keep_joined_full_pinyin": False,
            "keep_separate_first_letter": True,
        }
    ],
}

result = client.run_analyzer(sample_text, analyzer_params)
print(result)

النتيجة المتوقعة:

['中文', 'zw', '测试', 'cs']

ترجمة بواسطةDeepL

جرب Managed Milvus مجاناً

Zilliz Cloud خالي من المتاعب، ويعمل بواسطة Milvus ويعمل بسرعة 10 أضعاف.

ابدأ
التعليقات

هل كانت هذه الصفحة مفيدة؟