如何做字?jǐn)?shù)統(tǒng)計(jì)-多語言

最近思考下對(duì)于單詞分割的想法,思考得來可能不同的語言對(duì)于單詞的分割是不同的,那我以空格等分割符作為基礎(chǔ),以不同語言的正則表達(dá)式去匹配,豈不是就可以獲取到單個(gè)單詞,妙啊妙啊,在網(wǎng)上沖浪的過程中也找到了和我思路一致的實(shí)現(xiàn),參考下面的參考文檔1,然而事實(shí)并沒有我想象中的那么簡單。

項(xiàng)目中發(fā)現(xiàn)了對(duì)于韓語字?jǐn)?shù)的特殊統(tǒng)計(jì)規(guī)則,感覺驚奇,難道韓語的字分割規(guī)則不同嗎?于是根據(jù)參考文章2學(xué)習(xí)了下,發(fā)現(xiàn)還真是不同的!原因就在于韓語本身是可以由一些基礎(chǔ)的表音字符拼接組成,在unicode中就體現(xiàn)為多個(gè)unicode,雖然正常來說,韓語也是使用自己單獨(dú)的unicode碼點(diǎn)來表示字,但是一旦使用了表音字符來組合成字,那么使用單獨(dú)的正則表達(dá)式分割來查找字就不足夠了。并且這還只是韓語,不同的語音在分割單詞這塊兒規(guī)則肯定略有不同

這激起了我對(duì)單詞分割的興趣,遂了解了單詞分割的規(guī)則,以下為簡版規(guī)則,真正完備的規(guī)則參考下文中的文檔3

分割單詞的規(guī)則

  1. 文本不為空的情況下,開頭和結(jié)尾是一個(gè)分割的標(biāo)記
  2. cr/lf這樣的換行符應(yīng)該當(dāng)成一個(gè)
  3. 換行符作為詞的分割線
  4. 用zwj連接起來的emoji字符,形成的單獨(dú)的emoji不應(yīng)該被分開
  5. 忽略格式化字符
  6. 大部分正常的字符不應(yīng)該分開
  7. 數(shù)字的序列不分開,或者數(shù)字臨接字母的不分開,比如”3a”
  8. 片假名之間不分開
  9. 其他的情況都分開

以上為通用規(guī)則,不同的語言之間可能還會(huì)有自己的補(bǔ)充,比如上面說的韓語,以及日語片假名等等。

由此可見,人生苦短,使用icu庫來幫我們處理這些細(xì)節(jié)吧??

參考文檔

  1. 如何設(shè)計(jì)多語言詞分隔

https://medium.com/@byn9826/multi-languages-words-count-3498e5b0fdc3

  1. 韓語書寫規(guī)則

http://gernot-katzers-spice-pages.com/var/korean_hangul_unicode.html

  1. 詞的邊界

https://www.unicode.org/reports/tr29/#Word_Boundaries

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容