Python受欢迎的原因之一就是其计算生态丰富,据不完全统计,Python 目前为止有约13万+的第三方库。
本系列将会陆续整理分享一些有趣、有用的第三方库。
-
通过百度网盘获取:
链接:https://pan.baidu.com/s/1FSGLd7aI_UQlCQuovVHc_Q?pwd=mnsj
提取码:mnsj
-
前往GitHub获取:
https://github.com/returu/Python_Ecosystem
-
严格区分“一简对多繁”和“一简对多异”; -
完全兼容异体字,支持动态替换; -
严格审核“一简对多繁”的词条,原则是“能分则不分”; -
支持中国大陆、台湾、香港地区的异体字和习惯用词转换; -
词库和函数库完全分离,用户可以自由修改、导入和扩展。
pip install opencc
https://github.com/BYVoid/OpenCC
https://opencc.byvoid.com/
OpenCC提供了多种预设的转换模式,以满足不同场景下的简繁转换需求:
-
s2t:简体中文到繁体中文;
-
t2s:繁体中文到简体中文; -
s2tw:简体中文到台湾繁体; -
tw2s:台湾繁体到简体中文; -
s2hk:简体中文到香港繁体; -
hk2s:香港繁体到简体中文; -
s2twp:简体中文到繁体中文(台湾标准)并转换为台湾常用词汇; -
tw2sp:繁体中文(台湾标准)到简体中文并转换为中国大陆常用词汇; -
t2tw:繁体中文(OpenCC 标准)到台湾繁体; -
hk2t:香港繁体到繁体中文; -
t2hk:繁体中文(OpenCC 标准)到香港繁体; -
t2jp:繁体中文(旧字体)到日语新字体; -
jp2t:日语新字体到繁体中文(旧字体); -
tw2t:台湾繁体到繁体中文。
-
示例 1、简体转繁体:
import opencc
# 创建一个 OpenCC 对象,指定转换模式
converter = opencc.OpenCC('s2t') # 简体到繁体
# 进行转换
result = converter.convert('汉字')
print(result) # 输出:漢字
-
示例 2、繁体转简体:
# 创建一个 OpenCC 对象,指定转换模式
converter = opencc.OpenCC('t2s') # 繁体到简体
# 进行转换
result = converter.convert('漢字')
print(result) # 输出:汉字
-
示例 3、处理地区差异:
通过不同转换模式适配地区用词。
# 简体转台湾繁体(带地区词汇)
converter_tw = opencc.OpenCC('s2twp')
# 简体转香港繁体
converter_hk = opencc.OpenCC('s2hk')
# 进行转换
result_tw = converter_tw.convert('鼠标')
result_hk = converter_hk.convert('鼠标')
print(f"台湾繁体:{result_tw}")
# 输出:台湾繁体:滑鼠
print(f"香港繁体:{result_hk}")
# 输出:香港繁体:鼠標
-
示例 4、严格区分“一简对多繁”和“一简对多异”:
在中文简繁转换中,“一简对多繁”和“一简对多异”是两种不同的情况:
-
一简对多繁:指一个简体字对应多个繁体字,在进行简体转繁体时,需要根据上下文来准确选择对应的繁体字。例如,“发” 在不同语境下可对应 “發”(如 “发展”)和 “髮”(如 “头发”)。
-
一简对多异:一个简体字对应多个意义有细微差异的异体繁体字。
OpenCC 库在转换时会严格区分这些情况,下面通过代码来详细解释。
# 创建转换器实例,将简体中文转换为繁体中文
converter = opencc.OpenCC('s2t.json')
# 示例文本
simplified_text = "皇后在后宫中"
traditional_text = converter.convert(simplified_text)
print("简体中文:", simplified_text)
# 输出:简体中文: 皇后在后宫中
print("繁体中文:", traditional_text)
# 输出:繁体中文: 皇后在後宮中
-
示例 5、文本文件的转换:
OpenCC可以用于文本文件的转换,例如将一个简体文本文件转换为繁体:
import opencc
# 简体转繁体
mode = "s2t"
# 定义一个函数 convert_txt,用于将输入文件中的文本进行简繁转换,并将结果保存到输出文件中
# input_file:输入文件的路径,包含需要进行转换的文本
# output_file:输出文件的路径,用于保存转换后的文本
# mode:转换模式,默认为上面指定的 "s2t"
def convert_txt(input_file, output_file, mode=mode):
# 打开输入文件
with open(input_file, "r", encoding="utf-8") as file:
# 读取文件中的所有文本内容
text = file.read()
# 创建一个 OpenCC 转换器对象,使用指定的转换模式
converter = opencc.OpenCC(mode)
# 调用转换器的 convert 方法,对读取到的文本进行简繁转换
converted_text = converter.convert(text)
# 以写入模式打开输出文件,并使用 UTF-8 编码写入转换后的文本
with open(output_file, "w", encoding="utf-8") as file:
# 将转换后的文本写入输出文件
file.write(converted_text)
# 调用 convert_txt 函数
convert_txt("test.txt", "converted_test.txt")
-
示例 6、创建自定义词库:
OpenCC支持词库和函数库的分离,用户可以通过修改或创建新的配置文件来实现自定义词库。
假设我们想创建一个自定义的简繁转换词库,将“鼠标”转换为“滑鼠”(默认转换为鼠標),“软件”转换为“軟碟”(默认转换为軟件)。
创建自定义转换词库的核心思路是创建或修改词库配置文件,然后使用新的配置文件创建OpenCC
转换器。具体步骤如下:
-
①、创建自定义配置文件(JSON 格式):
{
"name": "Simplified Chinese to Traditional Chinese",
"segmentation": {
"type": "mmseg",
"dict": {
"type": "text",
"file": "STPhrases.txt"
}
},
"conversion_chain": [{
"dict": {
"type": "group",
"dicts": [{
"type": "text",
"file": "custom_phrases.txt"
},{
"type": "text",
"file": "STPhrases.txt"
}, {
"type": "text",
"file": "STCharacters.txt"
}]
}
}]
}
-
②、创建字符映射文件:

-
③、创建自定义词典文件:
鼠标 滑鼠
软件 軟碟
-
④、使用自定义配置文件进行转换:
import opencc
# 待转换文本
text = '鼠标和软件'
# 默认词库
cc_o = opencc.OpenCC('s2t')
# 加载自定义词库
cc_c = opencc.OpenCC('./custom_config/custom_config.json')
converted_o = cc_o.convert(text)
converted_c = cc_c.convert(text)
print(f"默认转换结果:{converted_o}")
# 输出:默认转换结果:鼠標和軟件
print(f"自定义转换结果:{converted_c}")
# 输出:自定义转换结果:滑鼠和軟碟
更多内容可以前往GitHub页面查看:
https://github.com/BYVoid/OpenCC


本篇文章来源于微信公众号: 码农设计师