简体繁体转换
如今,世界上存在两种中文,一种是中文简体,一种是中文繁体。如果要完全掌握中文语言的自然语言处理,那么简繁都不可避免。所以,掌握了简体与繁体的转换,往往能够事半功倍。
而HanLP也提供了简繁转换的类:CharTable,用它来执行字符正规化。比如简体转换繁体,全角转换半角,大写转换小写,都可以使用该类来实现。
使用CharTable进行简繁体转换
下面,我们来直接使用CharTable进行一段诗词的繁体到简单的转换。具体代码如下所示:
if __name__ == "__main__": CharTable=JClass('com.hankcs.hanlp.dictionary.other.CharTable') print(CharTable.convert('空山新雨後,天氣晚來秋。明月松間照,清泉石上流。 竹喧歸浣女,蓮動下漁舟。隨意春芳歇,王孫自可留。'))
运行之后,效果如下:
不过,繁体发展并不是仅仅只有一种。汉语历史悠久,发展至今在字符级别存在着“一简对多个繁体”和“一繁对多简”的现象。为此,HanLP实现了“简体”、“繁体”、“台湾繁体”、“香港繁体”间的互相转换功能,力图将简繁转换做到极致。
HanLP中文分类如下:
简体s
繁体t
台湾繁体tw
香港繁体hk
多种繁简之间的转换
尽然有这种多繁体,那么转换起来也肯定有很多种。下面,我们来分别实现这些字体之间的互相转换。完整代码如下所示:
if __name__ == "__main__": text_tw="空山新雨後,天氣晚來秋。明月鬆間照,清泉石上流。 竹喧歸浣女,蓮動下漁舟。隨意春芳歇,王孫自可留。" text_sc = "空山新雨后,天气晚来秋。明月松间照,清泉石上流。 竹喧归浣女,莲动下渔舟。随意春芳歇,王孙自可留。" text_hk="空山新雨後,天氣晚來秋。明月鬆間照,清泉石上流。 竹喧歸浣女,蓮動下漁舟。隨意春芳歇,王孫自可留。" text_st="空山新雨後,天氣晚來秋。明月鬆間照,清泉石上流。 竹喧歸浣女,蓮動下漁舟。隨意春芳歇,王孫自可留。" #简体转台湾繁体 print(HanLP.s2tw(text_sc)) #台湾繁体转简体 print(HanLP.tw2s(text_tw)) #简体转香港繁体 print(HanLP.s2hk(text_sc)) #香港繁体转简体 print(HanLP.hk2s(text_hk)) #香港繁体转台湾繁体 print(HanLP.hk2tw(text_hk)) # 台湾繁体转香港繁体 print(HanLP.tw2hk(text_tw)) #香港台湾繁体转标准繁体转换 print(HanLP.tw2t(text_tw)) print(HanLP.hk2t(text_hk)) # 标准繁体转换转香港台湾繁体 print(HanLP.t2tw(text_st)) print(HanLP.t2hk(text_st))
运行之后,效果如下: