PinyinCompatible with Milvus 3.0.x

Pencarian teks bahasa Mandarin sering kali mengharuskan pengguna memasukkan karakter Mandarin persis seperti yang muncul dalam teks yang diindeks. Dalam alur kerja pencarian nama, pelengkapan otomatis, dan pencarian saat mengetik, pengguna sering kali mengetik Pinyin alih-alih karakter Mandarin. Misalnya, pengguna mungkin mengetik zuqiu untuk mencari 足球. Filter " pinyin " menambahkan token Pinyin ke output penganalisis sehingga teks Mandarin dapat dicocokkan dengan masukan Pinyin tanpa perlu mengelola bidang Pinyin terpisah.

Filter ` pinyin ` biasanya digunakan bersama tokenizer Jieba untuk teks bahasa Mandarin. Filter ini berfungsi dalam pipa filter penganalisis khusus dan dapat menghasilkan beberapa bentuk token Pinyin untuk token bahasa Mandarin yang sama.

Konfigurasi

Untuk menggunakan opsi default, tentukan ` "pinyin" ` di bagian ` filter ` pada ` analyzer_params`.

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

Singkatnya, ini mempertahankan token bahasa Mandarin asli dan menghasilkan token Pinyin tingkat karakter. Fitur ini tidak menghasilkan Pinyin gabungan atau inisial Pinyin kecuali Anda mengaktifkan opsi tersebut secara eksplisit.

Untuk kontrol penuh, tentukan filter sebagai objek dan konfigurasikan bentuk token Pinyin yang dihasilkan oleh 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,
        }
    ],
}

Filter ini menerima parameter-parameter berikut.

ParameterTipeDefaultDeskripsi
keep_originalBooleantrueMenjaga token bahasa Mandarin asli dalam keluaran penganalisis.
keep_full_pinyinBooleantrueMenghasilkan token Pinyin tingkat karakter. Misalnya, " 中文 " menghasilkan " zhong " dan " wen".
keep_joined_full_pinyinBooleanfalseMenghasilkan token Pinyin yang digabungkan untuk setiap token sumber. Misalnya, 中文 menghasilkan zhongwen.
keep_separate_first_letterBooleanfalseMenghasilkan token inisial Pinyin untuk setiap token sumber. Misalnya, 中文 menghasilkan zw.

Filter ini beroperasi pada token yang dihasilkan oleh tokenizer. Untuk teks bahasa Mandarin, gunakan filter ini bersama tokenizer seperti jieba.

Contoh

Sebelum menerapkan konfigurasi penganalisis ke skema koleksi Anda, verifikasi perilakunya dengan run_analyzer.

from pymilvus import MilvusClient

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

sample_text = "中文测试"

Mencocokkan teks bahasa Mandarin dengan Pinyin tingkat karakter

Filter pinyin default mempertahankan token bahasa Mandarin asli dan menghasilkan token Pinyin tingkat karakter.

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

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

Hasil yang diharapkan:

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

Mencocokkan istilah bahasa Mandarin dengan Pinyin yang digabungkan

Aktifkan keep_joined_full_pinyin jika Anda ingin istilah bahasa Mandarin dicocokkan dengan bentuk Pinyin gabungannya yang lengkap.

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)

Hasil yang diharapkan:

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

Mencocokkan istilah bahasa Mandarin dengan inisial Pinyin

Aktifkan " keep_separate_first_letter " saat Anda ingin istilah bahasa Mandarin dicocokkan dengan inisial bentuk Pinyin-nya.

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)

Hasil yang diharapkan:

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

Diterjemahkan olehDeepL

Coba Milvus yang Dikelola secara Gratis

Zilliz Cloud bebas masalah, didukung oleh Milvus dan 10x lebih cepat.

Mulai
Umpan balik

Apakah halaman ini bermanfaat?