[docs]defprepare_converter(mode):mode_path=mode+".json"globalOPENCC_CONVERTERifOPENCC_CONVERTERisNone:# empty converterOPENCC_CONVERTER=opencc.OpenCC(mode_path)ifnotOPENCC_CONVERTER.config.endswith(mode_path):# the config is actually a config path# update and get a new converter with specified modeOPENCC_CONVERTER=opencc.OpenCC(mode_path)
[docs]@OPERATORS.register_module(OP_NAME)classChineseConvertMapper(Mapper):"""Mapper to convert Chinese between Traditional Chinese, Simplified Chinese and Japanese Kanji."""_batched_op=True
[docs]def__init__(self,mode:str="s2t",*args,**kwargs):""" Initialization method. :param mode: Choose the mode to convert Chinese: s2t: Simplified Chinese to Traditional Chinese, t2s: Traditional Chinese to Simplified Chinese, s2tw: Simplified Chinese to Traditional Chinese (Taiwan Standard), tw2s: Traditional Chinese (Taiwan Standard) to Simplified Chinese, s2hk: Simplified Chinese to Traditional Chinese (Hong Kong variant), hk2s: Traditional Chinese (Hong Kong variant) to Simplified Chinese, s2twp: Simplified Chinese to Traditional Chinese (Taiwan Standard) with Taiwanese idiom, tw2sp: Traditional Chinese (Taiwan Standard) to Simplified Chinese with Mainland Chinese idiom, t2tw: Traditional Chinese to Traditional Chinese (Taiwan Standard), tw2t: Traditional Chinese (Taiwan standard) to Traditional Chinese, hk2t: Traditional Chinese (Hong Kong variant) to Traditional Chinese, t2hk: Traditional Chinese to Traditional Chinese (Hong Kong variant), t2jp: Traditional Chinese Characters (Kyūjitai) to New Japanese Kanji, jp2t: New Japanese Kanji (Shinjitai) to Traditional Chinese Characters, :param args: extra args :param kwargs: extra args """super().__init__(*args,**kwargs)mode_list=["s2t","t2s","s2tw","tw2s","s2hk","hk2s","s2twp","tw2sp","t2tw","tw2t","hk2t","t2hk","t2jp","jp2t",]assertmodeinmode_list,"Please make sure mode is one of {}".format(mode_list)self.mode=modeprepare_converter(self.mode)