Menambahkan penganalisis bahasa ke bidang string dalam indeks Pencarian Azure AI
Penganalisis bahasa adalah jenis penganalisis teks spesifik yang melakukan analisis leksikal menggunakan aturan linguistik bahasa target. Setiap bidang yang dapat dicari memiliki properti penganalisis. Jika konten Anda terdiri dari untai (karakter) yang diterjemahkan, seperti bidang terpisah untuk teks bahasa Inggris dan Cina, Anda dapat menentukan penganalisis bahasa di setiap bidang untuk mengakses kemampuan linguistik yang kaya dari penganalisis tersebut.
Kapan menggunakan penganalisis bahasa
Anda harus mempertimbangkan penganalisis bahasa saat kesadaran akan struktur kata atau kalimat menambah nilai pada penguraian teks. Contoh umumnya adalah asosiasi bentuk kata kerja tidak teratur ("bring" dan "brought”) atau kata benda jamak ("mice" dan "mouse"). Tanpa kesadaran linguistik, untai (karakter) ini diurai pada karakteristik fisik saja, yang gagal menangkap koneksi. Karena potongan teks yang besar lebih mungkin memiliki konten ini, bidang yang terdiri dari deskripsi, ulasan, atau ringkasan adalah kandidat yang baik untuk penganalisis bahasa.
Anda juga harus mempertimbangkan penganalisis bahasa ketika konten terdiri dari untai (karakter) bahasa non-Barat. Meskipun penganalisis default (Standar Lucene) adalah bahasa-agnostik, konsep menggunakan spasi dan karakter khusus (tanda hubung dan garis miring) untuk memisahkan string cenderung lebih dapat diterakan untuk bahasa Barat daripada yang non-Barat.
Misalnya, dalam bahasa Tionghoa, Jepang, Korea (CJK), dan bahasa Asia lainnya, spasi belum tentu menjadi pemisah kata. Pertimbangkan untai (karakter) Jepang berikut. Karena tidak memiliki spasi, penganalisis bahasa-agnostik kemungkinan akan menganalisis seluruh untai (karakter) sebagai satu token, padahal sebenarnya untai (karakter) tersebut adalah frasa.
これは私たちの銀河系の中ではもっとも重く明るいクラスの球状星団です。
(This is the heaviest and brightest group of spherical stars in our galaxy.)
Untuk contoh di atas, kueri yang berhasil harus menyertakan token lengkap, atau token parsial menggunakan sufiks kartubebas, yang menghasilkan pengalaman pencarian yang tidak wajar dan membatasi.
Pengalaman yang lebih baik adalah mencari kata individual: 明 い い (Terang), 私たち の (Kami), 銀河系 (Galaksi). Menggunakan salah satu penganalisis Jepang yang tersedia di Azure AI Search lebih cenderung membuka kunci perilaku ini karena penganalisis tersebut lebih dilengkapi untuk membagi potongan teks menjadi kata-kata yang bermakna dalam bahasa target.
Membandingkan Lucene dan Microsoft Analyzer
Azure AI Search mendukung 35 penganalisis bahasa yang didukung oleh Lucene, dan 50 penganalisis bahasa yang didukung oleh teknologi pemrosesan bahasa alami Microsoft eksklusif yang digunakan di Office dan Bing.
Beberapa pengembang mungkin lebih suka solusi Lucene yang lebih akrab, sederhana, dan sumber terbuka. Penganalisis bahasa Lucene lebih cepat, tetapi penganalisis Microsoft memiliki kemampuan canggih, seperti lemmatisasi, penguraian kata (dalam bahasa seperti Jerman, Denmark, Belanda, Swedia, Norwegia, Estonia, Finlandia, Hongaria, Slovakia) dan pengenalan entitas (URL, email, tanggal, angka). Jika memungkinkan, Anda harus menjalankan perbandingan kedua penganalisis Microsoft dan Lucene untuk memutuskan mana yang lebih cocok. Anda dapat menggunakan Analyze API untuk melihat token yang dihasilkan dari teks yang diberikan menggunakan analyzer khusus.
Pengindeksan dengan penganalisis Microsoft rata-rata dua hingga tiga kali lebih lambat Lucene yang setara dengannya, tergantung pada bahasanya. Performa pencarian tidak boleh terpengaruh secara signifikan untuk kueri ukuran rata-rata.
Penganalisis Bahasa Inggris
Penganalisis default adalah Standard Lucene, yang bekerja dengan baik untuk bahasa Inggris, tetapi mungkin tidak sebaik penganalisis bahasa Inggris Lucene atau penganalisis bahasa Inggris Microsoft.
Penganalisis Bahasa Inggris Lucene memperluas penganalisis Standar. Penganalisis ini menghilangkan posesif (trailing 's) dari kata-kata, menerapkan stemming sesuai algoritma Porter Stemming, dan menghapus kata-kata berhenti dalam bahasa Inggris.
Penganalisis bahasa Inggris Microsoft melakukan lemmatisasi alih-alih stemming. Ini berarti dapat menangani bentuk kata yang tidak fleksibel dan tidak teratur jauh lebih baik yang menghasilkan hasil pencarian yang lebih relevan.
Cara menentukan penganalisis bahasa
Atur penganalisis selama pembuatan indeks sebelum dimuat dengan data.
Dalam definisi bidang, pastikan bidang dikaitkan sebagai "dapat dicari" dan tipe Edm.String.
Set properti "Penganalisis" ke salah satu analisis bahasa dari daftar penganalisis yang didukung.
Properti "penganalisis" adalah satu-satunya properti yang akan menerima penganalisis bahasa, dan digunakan untuk pengindeksan dan kueri. Properti terkait penganalisis lainnya ("searchAnalyzer" dan "indexAnalyzer") tidak akan menerima penganalisis bahasa.
Penganalisis bahasa tidak dapat disesuaikan. Jika penganalisis tidak memenuhi persyaratan Anda, buat penganalisis kustom dengan microsoft_language_tokenizer atau microsoft_language_stemming_tokenizer, lalu tambahkan filter untuk pemrosesan pra-dan pasca-tokenisasi.
Contoh berikut menggambarkan spesifikasi penganalisis bahasa dalam indeks:
{
"name": "hotels-sample-index",
"fields": [
{
"name": "Description",
"type": "Edm.String",
"retrievable": true,
"searchable": true,
"analyzer": "en.microsoft",
"indexAnalyzer": null,
"searchAnalyzer": null
},
{
"name": "Description_fr",
"type": "Edm.String",
"retrievable": true,
"searchable": true,
"analyzer": "fr.microsoft",
"indexAnalyzer": null,
"searchAnalyzer": null
},
Untuk informasi selengkapnya tentang membuat indeks dan mengatur properti bidang, lihat Membuat Indeks (REST). Untuk informasi selengkapnya tentang analisis teks, lihat Penganalisis di Azure AI Search.
Penganalisis bahasa yang didukung
Di bawah ini adalah daftar bahasa yang didukung, dengan nama penganalisis Lucene dan Microsoft.
Bahasa | Nama Penganalisis Microsoft | Nama Penganalisis Lucene |
---|---|---|
Arab | ar.microsoft | ar.lucene |
Armenia | hy.lucene | |
Bengali | bn.microsoft | |
Basque | eu.lucene | |
Bulgaria | bg.microsoft | bg.lucene |
Katalan | ca.microsoft | ca.lucene |
Mandarin Sederhana | zh-Hans.microsoft | zh-Hans.lucene |
Mandarin Tradisional | zh-Hant.microsoft | zh-Hant.lucene |
Kroasia | hr.microsoft | |
Cheska | cs.microsoft | cs.lucene |
Dansk | da.microsoft | da.lucene |
Belanda | nl.microsoft | nl.lucene |
Inggris | en.microsoft | en.lucene |
Esti | et.microsoft | |
Suomi | fi.microsoft | fi.lucene |
Prancis | fr.microsoft | fr.lucene |
Galisia | gl.lucene | |
Jerman | de.microsoft | de.lucene |
Yunani | el.microsoft | el.lucene |
Gujarat | gu.microsoft | |
Ibrani | he.microsoft | |
Hindi | hi.microsoft | hi.lucene |
Hungaria | hu.microsoft | hu.lucene |
Islandia | is.microsoft | |
Bahasa Indonesia (Bahasa) | id.microsoft | id.lucene |
Irlandia | ga.lucene | |
Italia | it.microsoft | it.lucene |
Jepang | ja.microsoft | ja.lucene |
Kannada | kn.microsoft | |
Korea | ko.microsoft | ko.lucene |
Latvi | lv.microsoft | lv.lucene |
Lituavi | lt.microsoft | |
Malayalam | ml.microsoft | |
Melayu (Latin) | ms.microsoft | |
Marathi | mr.microsoft | |
Norwegia | nb.microsoft | no.lucene |
Farsi | fa.lucene | |
Polski | pl.microsoft | pl.lucene |
Portugis (Brasil) | pt-Br.microsoft | pt-Br.lucene |
Portugis (Portugal) | pt-Pt.microsoft | pt-Pt.lucene |
Punjabi | pa.microsoft | |
Rumania | ro.microsoft | ro.lucene |
Rusia | ru.microsoft | ru.lucene |
Serbia (Sirilik) | sr-cyrillic.microsoft | |
Serbia (Latin) | sr-latin.microsoft | |
Slovak | sk.microsoft | |
Sloven | sl.microsoft | |
Spanyol | es.microsoft | cs.lucene |
Swedia | sv.microsoft | sv.lucene |
Tamil | ta.microsoft | |
Telugu | te.microsoft | |
Thailand | th.microsoft | th.lucene |
Turki | tr.microsoft | tr.lucene |
Ukraina | uk.microsoft | |
Urdu | ur.microsoft | |
Vietnam | vi.microsoft |
Semua penganalisis dengan nama yang dianotasikan dengan Lucene didukung oleh penganalisis bahasa Apache Lucene.