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)


沒有留言:

張貼留言