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 dalam alur kerja pencarian klasik yang tidak menyertakan model bahasa besar dan kesadaran mereka tentang aturan linguistik dan konten multibahasa.

Dalam pencarian kelas, Anda dapat menambahkan penganalisis bahasa ketika kesadaran terhadap struktur kata atau kalimat memberikan nilai tambah 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, string ini diparse berdasarkan karakteristik fisik saja, yang tidak berhasil menangkap hubungan. 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 mungkin juga mempertimbangkan penganalisis bahasa saat konten terdiri dari string bahasa non-Barat. Meskipun penganalisis default (Standar Lucene) tidak bergantung pada bahasa, konsep menggunakan spasi dan karakter khusus (tanda hubung dan garis miring) untuk memisahkan string lebih berlaku 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 teks 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 dengan menggunakan wildcard sufiks, yang menghasilkan pengalaman pencarian yang terasa tidak alami dan terbatas.

Pengalaman yang lebih baik adalah mencari kata individual: 明 い い (Terang), 私たち の (Kami), 銀河系 (Galaksi). Menggunakan salah satu penganalisis Jepang yang tersedia di Pencarian Azure AI 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

Pencarian Azure AI 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 sumber terbuka Lucene. 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 dari penganalisis Lucene yang setara, 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 mengembangkan 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 terinfleksi dan tidak beraturan dengan 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",
  "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 Pencarian Azure AI.

Penganalisis bahasa yang didukung

Di bawah ini adalah daftar bahasa yang tersedia, beserta nama penganalisis Lucene dan Microsoft.

Bahasa Nama Penganalisis Microsoft Nama Penganalisis Lucene
Bahasa Arab ar.microsoft ar.lucene
Armenia hy.lucene
Bengali bn.microsoft
Bahasa 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
Bahasa Hindi hi.microsoft hi.lucene
Hungaria hu.microsoft hu.lucene
Islandia is.microsoft
Bahasa Indonesia id.microsoft id.lucene
Irlandia ga.lucene
Italia it.microsoft it.lucene
Jepang ja.microsoft ja.lucene
Kannada kn.microsoft
Bahasa 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
Bahasa Serbia (Latin) sr-latin.microsoft
Bahasa Slowakia sk.microsoft
Sloven sl.microsoft
Spanyol es.microsoft es.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
Bahasa Urdu ur.microsoft
Bahasa Vietnam vi.microsoft

Semua penganalisis dengan nama yang dianotasikan dengan Lucene didukung oleh penganalisis bahasa Apache Lucene.

Lihat juga