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.

  1. Dalam definisi bidang, pastikan bidang dikaitkan sebagai "dapat dicari" dan tipe Edm.String.

  2. 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.

Baca juga