Bagikan melalui


Pertimbangan Linguistik dan Unicode Lain-lain

Topik ini menjelaskan pertimbangan stemming untuk bahasa aglutinatif dan pasangan pengganti Unicode, dan untuk menggunakan pasangan pengganti untuk memperluas kumpulan karakter Unicode untuk mengakomodasi set karakter yang berbeda. Topik ini juga menjelaskan bagaimana pemecah kata mengidentifikasi frasa dalam teks dan menangani spasi yang tidak pecah, dan bagaimana pemecah kata dan stemmer menangani angka dan tanggal, kata majemuk, frasa majemuk, kata dan karakter khusus, akronim dan singkatan, dan kapitalisasi.

Topik ini diatur sebagai berikut:

Identifikasi Frasa

Frasa adalah kata atau sekelompok kata yang dimodifikasi oleh satu atau beberapa kata lainnya. Frasa sulit diidentifikasi secara konsisten karena pengubah yang sama dapat digunakan dalam lebih dari satu frasa dengan kata benda yang sama. Misalnya, "rumah baru," "Gedung Parlemen," "Gedung Parlemen baru."

Windows Search paling sering menggunakan frasa pada waktu kueri. Frasa dalam teks kueri menerima bobot yang lebih tinggi daripada kata individual. Dari contoh sebelumnya, dokumen yang berisi "Gedung Parlemen" diberi peringkat lebih tinggi dari yang berisi "Rumah" dan "Parlemen" di titik yang berbeda dalam dokumen. Kami menyarankan agar pemecah kata menghasilkan frasa pada waktu kueri jika frasa cenderung cocok dengan setidaknya satu dokumen.

Bahasa Aglutinatif

Bahasa aglutinatif membentuk kata-kata melalui kombinasi morphemes yang lebih kecil untuk mengekspresikan ide-ide mampul. Masing-masing morfem ini umumnya memiliki satu arti atau fungsi dan mempertahankan bentuk dan makna aslinya selama proses kombinasi. Untuk bahasa yang memiliki morfologi aglutinatif, seperti Turki, Finlandia, Hungaria, atau Korea, dimungkinkan untuk menghasilkan ribuan bentuk untuk kata akar tertentu.

Tabel berikut ini memperlihatkan daftar formulir yang tidak bergerak untuk kata Finlandia "talo" ("rumah").

Word Terjemahan
Talo Rumah
Taloni Rumahku
Talossa Di rumah
Talossani Di rumah saya
Taloja Rumah
Taloissa Di rumah-rumah

 

Bahasa inflektif, seperti Bahasa Inggris, Prancis, dan Latin, memiliki sejumlah kecil kemungkinan bentuk kata untuk satu kata akar. Dalam bahasa yang tidak bergerak, morfem mempengaruhi satu sama lain saat mengikat. Sebagian besar perubahan dalam infleksi ada di batang atau akhir kata. Berbeda dengan bahasa aglutinatif, bahasa yang tidak bergerak cenderung memiliki fungsi yang berbeda untuk satu morfema. Misalnya, morpheme dapat menentukan angka dan kasus.

Stemmer untuk bahasa aglutinatif harus menimbang trade-off antara performa dan akurasi untuk menghasilkan hanya subset dari jumlah kemungkinan bentuk kata.

Angka, Waktu, dan Tanggal

Word breaker harus menggunakan format umum untuk mewakili angka, waktu, dan tanggal untuk memfasilitasi kueri yang konsisten.

Ketika Anda membuat pemecah kata, kami menyarankan agar pemecah kata menormalkan angka ke representasi kanonis dengan menggunakan pola "NNddDcc", di mana NN adalah urutan harfiah "NN", dd adalah bagian bilangan bulat dari angka tersebut, D adalah literal "D", dan cc adalah bagian pecahan dari angka tersebut. Word breaker tidak membatasi jumlah digit untuk bilangan bulat atau bagian pecahan angka. Sebaiknya pemutus kata mengenali pola numerik yang dibatasi oleh titik (.) dan koma (,). Misalnya, Windows Search mewakili "1,000.2" dan "1.000,2" sebagai "NN1000D2."

Pilih satu format untuk pemecah kata dan stemmer. Angka Arab byte tunggal dinormalisasi sewaktu-waktu sehingga kueri yang berisi salah satu formulir ini cocok dengan dokumen dengan formulir lain.

Ketika Anda membuat pemecah kata, kami menyarankan agar pemecah kata hadir sepanjang waktu sebagai representasi 24 jam menggunakan pola "TThhmmss," di mana TT adalah awalan harfiah "TT", hh adalah jam, mm adalah menit, dan ss adalah detik. Windows Search tidak cocok dengan satuan waktu tambahan, seperti milidetik. Memilah pola A.M. dan P.M. bersifat opsional.

Ketika Anda membuat pemecah kata, kami menyarankan agar pemecah kata menghasilkan tanggal dalam format kanonis "DDyyyymmdd", di mana DD adalah literal "DD", yyyy adalah tahun, mm adalah bulan, dan dd adalah hari. Kami juga menyarankan agar pemecah kata menyimpan dua digit tahun dalam format abad ke-20 dan dua puluh abad pertama. Misalnya, pemecah kata mewakili "2.2.99" sebagai "DD19990202" dan "DD20990202". Pada waktu kueri, Windows Search memperoleh tanggal dengan menggunakan antarmuka pemrograman aplikasi (API) Windows untuk menentukan tanggal crossover server untuk menampilkan format yang benar, 19XX atau 20XX.

Kata Mamur

Dalam beberapa bahasa, seperti Jerman, kata benda digabungkan dari kata benda yang lebih sederhana. Kata benda mampul ini terlalu spesifik dalam arti untuk pengenalan kueri yang wajar. Misalnya, tanpa penguraian, kueri untuk "Versicherung" ("asuransi") tidak cocok dengan "Lebensversicherungsgesellschaft" ("penjual asuransi jiwa"). Dalam kasus seperti ini, kami menyarankan agar pemecah kata memecah kata-kata majemuk ini menjadi komponen dasar selama pembuatan indeks dan waktu kueri. Pemecah kata Jerman memecah "Lebensversicherungsgesellschaft" menjadi kata komponen "Leben," "Versicherung," dan "Gesellschaft." Ini menerapkan penguraian yang sama pada waktu kueri, bersama dengan stemming opsional untuk setiap istilah yang dihasilkan.

Frasa Campuran

Beberapa bahasa, seperti Korea, berisi frasa kompleks yang dapat dipecah dengan sejumlah cara berbeda. Frasa Korea terdiri dari kata konten, seperti kata benda, kata ganti, kata kerja, dan kata sifat, diikuti dengan kata fungsional. Kata-kata fungsi ditemukan di pasca-posisi dan akhiran. Pasca-posisi menunjukkan peran fungsional kata benda atau kata ganti dalam kalimat; akhir menunjukkan peran fungsi dari kata kerja atau kata sifat.

Satu frasa dapat memiliki beberapa analisis, dan setiap analisis dapat terdiri dari beberapa kata konten. Pemecah kata harus menggunakan heuristik khusus bahasa untuk menentukan, dari konteks, berapa banyak bobot yang diberikan untuk analisis yang berbeda. Pemecah kata dapat menentukan penguraian mana yang akan digunakan berdasarkan jumlah kata komponen yang dihasilkan. Beberapa pemecah kata mungkin mendukung urutan pendek istilah yang lebih panjang, sedangkan pemecah kata lain mungkin mendukung urutan kata-kata yang lebih kecil.

Pertimbangan lain adalah bahwa dalam bahasa Korea, kata benda, dan kata ganti dapat disimpan dalam indeks tanpa kata-kata fungsional yang sesuai. Bahasa Korea adalah bahasa aglutinatif dan menggabungkan banyak akhir kata dengan kata kerja dan kata sifat untuk membentuk bentuk yang tidak terhitung jumlahnya. Kata kerja dan kata sifat yang diidentifikasi dalam frasa disimpan dengan akhirannya dalam indeks, tetapi pemecah kata tidak menghasilkan formulir baru.

Karakter dan Kata Khusus

Karakter khusus adalah karakter seperti "," "©," dan "™". Karakter ini jarang digunakan dalam kueri. Word breaker harus menghapus karakter khusus selama pembuatan indeks dan pada waktu kueri.

Kami menyarankan agar pemecah kata mengenali kata-kata khusus, seperti "C++," "C#," ".NET," nilai, dan notasi musik. Word breaker dapat menggunakan heuristik bahasa untuk mengidentifikasi pola untuk kata-kata khusus. Word breaker juga dapat menggunakan kamus kustom yang berisi kata-kata khusus yang dikenali.

Singkatan dan Singkatan

Akronim dan singkatan harus dipertimbangkan ketika Anda menerapkan pemecah kata. Dalam banyak bahasa, huruf individual akronim dipisahkan oleh titik. Terkadang, kata-kata yang tidak dikenali akronim atau singkatan disingkat. Misalnya, "Amerika Serikat Amerika" dapat disingkat sebagai "AS" atau "A.S.A." Word breaker yang disertakan dengan Windows Search biasanya mengidentifikasi kata-kata huruf tunggal sebagai kata kebisingan dan memperlakukan kata-kata tersebut sebagai tempat penampung selama waktu kueri. Selama waktu kueri, pemecah kata yang tidak menyadari akronim umum, atau yang tidak mengenali singkatan, mengonversi singkatan "A.S.A." menjadi "U", "S", dan "A". Penguraian ini tidak memberikan informasi yang cukup untuk mencocokkan kata dalam indeks teks lengkap karena semua istilah kueri adalah kata-kata kebisingan. Saat Anda membuat pemecah kata, kami menyarankan agar pemecah kata menghapus titik yang memisahkan huruf akronim. Dalam contoh, "A.S.A." disimpan sebagai "AS" dan istilah kueri yang berisi "A.S.A." sebenarnya kueri untuk "AS." Jika pemecah kata memproses singkatan, periode dalam singkatan tersebut tidak diperlakukan sebagai istirahat EOS. Karena itu, pemecah kata mungkin tidak mengidentifikasi jeda EOS dengan benar jika singkatannya ada di akhir kalimat.

Kapitalisasi

Windows Search saat ini tidak mempertahankan kapitalisasi ketika menyimpan kata-kata ke indeks teks-penuh. Word pemecah dan stemmer tidak boleh memodifikasi huruf besar/kecil untuk kata-kata.

Spasi Yang Tidak Terganggu

Saat Anda membuat pemecah kata, kami sarankan Anda memastikan bahwa pemecah kata memperlakukan spasi yang tidak pecah sebagai pemisah kata. Disarankan juga agar pemecah kata menghasilkan bentuk kata alternatif, dengan dan tanpa spasi yang tidak pecah. Beberapa karakter, seperti garis bawah, adalah karakter khusus yang diperlakukan sebagai karakter yang tidak pecah karena sumber teks tempat mereka ditemukan. Misalnya, kode sumber atau nama file dapat menyertakan garis bawah sebagai karakter yang tidak pecah.

Pasangan Pengganti

Pasangan pengganti adalah representasi karakter dalam kode sumber yang mewakili satu karakter yang terdiri dari urutan dua nilai Unicode. Dalam pasangan berkode, nilai pertama adalah pengganti tinggi dan yang kedua adalah pengganti rendah. Pengganti tinggi adalah karakter dalam rentang U+D800 hingga U+DBFF. Pengganti rendah adalah karakter dalam rentang U+DC00 hingga U+DFFF. Pasangan pengganti memperluas kumpulan karakter di luar karakter Unicode. Kami menyarankan agar pemecah kata harus menggunakan aturan berikut saat menangani pasangan pengganti:

  • Pengganti tinggi harus mendahului pengganti yang rendah.
  • Pengganti yang rendah harus mengikuti pengganti yang tinggi.
  • Pengganti tinggi atau rendah tanpa nilai yang sesuai untuk bagian lainnya tidak memiliki arti.

Word pemutus harus mempertimbangkan pasangan apa pun dan menghasilkan pasangan seperti dalam indeks. Untuk informasi selengkapnya, lihat Pengganti dan Karakter Tambahan.