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.
| Parameter | Tipe | Default | Deskripsi |
|---|---|---|---|
keep_original | Boolean | true | Menjaga token bahasa Mandarin asli dalam keluaran penganalisis. |
keep_full_pinyin | Boolean | true | Menghasilkan token Pinyin tingkat karakter. Misalnya, " 中文 " menghasilkan " zhong " dan " wen". |
keep_joined_full_pinyin | Boolean | false | Menghasilkan token Pinyin yang digabungkan untuk setiap token sumber. Misalnya, 中文 menghasilkan zhongwen. |
keep_separate_first_letter | Boolean | false | Menghasilkan 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']