2019年9月21日 星期六

2019年9月18日 星期三

漢字的標準化問題

在整理索引檔時發現一個奇怪的問題,像"糖尿"這個詞竟然出現兩次,而且有完全不同的編碼。經過一番整理之後,才了解有些字有所謂的"異體字"問題,某些字型可以看得出不同,某些字型則看來完全相同。詳細的列表可見 https://ctext.org/faq/normalization/zh

解決的方式是在後續處理之前先進行正規化,這類的例字還有 Guillain-Barré 中 é 有相當數量以 e (無重音) 出現的例子。參 https://python3-cookbook.readthedocs.io/zh_CN/latest/c02/p09_normalize_unicode_text_to_regexp.html

程式就一行,其中 ORIGINAL_TEXT 為尚未正規化的原始字串:

unicodedata.normalize('NFC', ORIGINAL_TEXT)


2019年9月7日 星期六

神仙打鼓有時錯之--javascript 檢查文字是否為數字所組成--stackoverflow篇

錯誤示範

https://stackoverflow.com/questions/175739/built-in-way-in-javascript-to-check-if-a-string-is-a-valid-number (2000+個 up vote)

正確解答

https://stackoverflow.com/questions/4434076/best-way-to-alphanumeric-check-in-javascript (80+)

https://lowrey.me/test-if-a-string-is-alphanumeric-in-javascript/

我也被這個雷到,今天才發現,花了老子兩年才發現這個bug…

話說回來,測試真的很重要,tdd = test driven development ROCKS!!
話說回來,測試真的很重要,tdd = test driven development ROCKS!!
話說回來,測試真的很重要,tdd = test driven development ROCKS!!