Jika Anda mengklik dua kali teks bahasa Inggris di Chrome, kata yang dibatasi spasi yang Anda klik akan disorot. Ini tidak mengejutkan. Namun, tempo hari saya mengklik saat membaca beberapa teks dalam bahasa Jepang dan memperhatikan bahwa beberapa kata disorot pada batas kata, meskipun bahasa Jepang tidak memiliki spasi. Inilah beberapa contoh teks:
ど こ で 生 生 た か と と ん と 見 当 つ つ か ぬ 何 何 暗 暗 暗 い い め め じ じ じ じ ャ ャ ー ー ー ー ー ー い る だ だ け けけ
Misalnya, jika Anda mengklik 薄 暗 い, Chrome akan menyorotnya dengan benar sebagai satu kata, meskipun itu bukan kelas karakter tunggal (ini adalah campuran dari kanji dan hiragana). Tidak semua highlight benar, tetapi tampaknya tidak acak.
Bagaimana Chrome memutuskan apa yang harus disorot di sini? Saya mencoba mencari sumber Chrome untuk "kata Jepang" tetapi hanya menemukan tes untuk modul eksperimental yang tampaknya tidak aktif di versi Chrome saya.
sumber
Jawaban:
Jadi ternyata v8 memiliki segmenter kata multi-bahasa non-standar dan menangani bahasa Jepang.
Saya juga membuat jsfiddle yang menunjukkan ini.
Kualitasnya tidak luar biasa tapi saya terkejut ini didukung sama sekali.
sumber
Berdasarkan tautan yang diposting oleh JonathonW , jawabannya pada dasarnya bermuara pada: "Ada daftar besar kata-kata Jepang dan Chrome memeriksa untuk melihat apakah Anda mengklik dua kali dalam sebuah kata."
Secara khusus, v8 menggunakan ICU untuk melakukan banyak hal yang berhubungan dengan pemrosesan Unicode, termasuk memecah teks menjadi kata-kata . Kode deteksi batas ICU termasuk "BreakIterator Berbasis Kamus" untuk bahasa yang tidak memiliki spasi, termasuk Jepang, Cina, Thailand, dll.
Dan untuk contoh spesifik Anda dari "薄 暗 い", Anda dapat menemukan kata itu dalam kamus Cina-Jepang gabungan yang dikirimkan oleh ICU (baris 255431). Saat ini ada 315.671 total kata Cina / Jepang dalam daftar. Agaknya jika Anda menemukan kata yang Chrome tidak terbelah dengan benar, Anda dapat mengirim ICU tambalan untuk menambahkan kata itu.
sumber