Golang结合OpenCC实现高效的中文简体繁体互转
🕚 by pyList at 2019-11-28 22:04
之前在页面中使用简体转繁体的功能一般是使用JS对页面进行字典替换,这样可以解决大部分问题,但要进行精确的转换,才发现简繁体的转换是个复杂的过程。幸好有个非常棒的繁体转简体开源项目OpenCC可以很好的工作。
OpenCC 特性
- 嚴格區分「一簡對多繁」和「一簡對多異」。
- 完全兼容異體字,可以實現動態替換。
- 嚴格審校一簡對多繁詞條,原則爲「能分則不合」。
- 支持中國大陸、臺灣、香港異體字和地區習慣用詞轉換,如「裏」「裡」、「鼠標」「滑鼠」。
- 詞庫和函數庫完全分離,可以自由修改、導入、擴展。
- 支持C、C++、Python、PHP、Java、Ruby、Node.js and Android。
- 兼容Windows、Linux、Mac平臺。
OpenCC 的 Golang 库
目前有较好的几个 golang 库推荐
- https://github.com/stevenyao/go-opencc 58 直接调用c函数,使用cgo 编译,个人在跨平台编译中遇到一些问题(用源码安装可能会解决这个问题)
- https://github.com/sgoby/opencc 93 使用OpenCC 的字典,纯go实现
- https://github.com/liuzl/gocc 71 使用OpenCC 的字典,纯go实现
处于性能考虑,个人使用第一个项目,下面是其使用的例子。
我在Mac 里安装OpenCC
brew install opencc
go get github.com/stevenyao/go-opencc
OpenCC 预设置
s2t.json
Simplified Chinese to Traditional Chinese 簡體到繁體t2s.json
Traditional Chinese to Simplified Chinese 繁體到簡體s2tw.json
Simplified Chinese to Traditional Chinese (Taiwan Standard) 簡體到臺灣正體tw2s.json
Traditional Chinese (Taiwan Standard) to Simplified Chinese 臺灣正體到簡體s2hk.json
Simplified Chinese to Traditional Chinese (Hong Kong Standard) 簡體到香港繁體(香港小學學習字詞表標準)hk2s.json
Traditional Chinese (Hong Kong Standard) to Simplified Chinese 香港繁體(香港小學學習字詞表標準)到簡體s2twp.json
Simplified Chinese to Traditional Chinese (Taiwan Standard) with Taiwanese idiom 簡體到繁體(臺灣正體標準)並轉換爲臺灣常用詞彙tw2sp.json
Traditional Chinese (Taiwan Standard) to Simplified Chinese with Mainland Chinese idiom 繁體(臺灣正體標準)到簡體並轉換爲中國大陸常用詞彙t2tw.json
Traditional Chinese (OpenCC Standard) to Taiwan Standard 繁體(OpenCC 標準)到臺灣正體t2hk.json
Traditional Chinese (OpenCC Standard) to Hong Kong Standard 繁體(OpenCC 標準)到香港繁體(香港小學學習字詞表標準)
具体实例
go-opencc 实现简体转繁体示例:
package main
import (
"fmt"
"github.com/stevenyao/go-opencc"
)
const (
input = "中国鼠标软件打印机后台湾"
config_s2t = "/usr/local/Cellar/opencc/1.0.5/share/opencc/s2t.json"
)
func main() {
fmt.Println("Test Converter class:")
c := opencc.NewConverter(config_s2t)
defer c.Close()
output := c.Convert(input)
fmt.Println(output)
}
运行后输出:
Test Converter class:
中國鼠標軟件打印機後臺灣
opencc 源码安装
在 ubuntu/debian 使用 apt-get install opencc
安装,当运行 go get github.com/stevenyao/go-opencc
时可能会遇到下面的错误:
# github.com/stevenyao/go-opencc
opencc.c:5:10: fatal error: opencc/opencc.h: No such file or directory
#include "opencc/opencc.h"
^~~~~~~~~~~~~~~~~
compilation terminated.
可以先卸载 apt-get remove opencc
再用源码安装
git clone https://github.com/BYVoid/OpenCC.git
apt-get install cmake
apt-get install doxygen
cd OpenCC
make
make install
成功安装 opencc
$ opencc --version
Open Chinese Convert (OpenCC) Command Line Tool
Version: 1.0.5
本文网址: https://pylist.com/t/1574949866 (转载注明出处)
如果你有任何建议或疑问可以在下面 留言
发表第一条评论!
相关推荐
小工具
标签
template
golang
tornado
tenjin
性能
time
timestamp
小结
时间
go2o
开源
完整
商业
web
nginx
quic
抢先
之坑
files
open
服务
正则
字符串
切割
md5
文件
计算
lru
缓存
高效
简单
模版
方法
webdriver
微博
selenium
登录
低功耗
爬虫
服务器
组装
bbr
openwrt
路由
开启
系统启动
usb
ubuntu
mac
debian
默认值
struct
设置
sublime
换行
替换
百度
google
pk
三大
必应
上网卡
共享
网络
硬件加速
ubnt
er
固件
搜索引擎
网址
提交
主动
经验
身份验证
authenticator
迁移
手机
编译
python
sqlite
数据库
提速
csv
读写
标准
gmail
smtp
发信
密码
开通
虚拟机
virtualbox
很慢
解决
failed
load
devtools
sourcemap
chrome
自动更新
microsoft
关闭
app
store
未知
静音
风扇
主机
笔记本
改造
微信
尝鲜
视频
体验
cpu
查看
温度
server
浏览
gnu
linux
安装
宅家
坑记
屏幕
动手
最近发表
- Chrome 控制台 DevTools failed to load SourceMap 警告的消除方法
- Mac 关闭 Microsoft 自动更新
- Mac 登录 App Store 出现“发生了未知错误”的解决方法
- 老笔记本改造为无风扇静音主机方案
- 自己组装21瓦低功耗家庭爬虫、文件、web服务器
- 微信视频号尝鲜体验
- Ubuntu/Debian 查看CPU温度的方法
- 在Ubuntu/debian Server 系统使用Chrome 无头浏览模式
- 换手机后 Google 身份验证器 Google Authenticator 数据迁移的简单方法
- 使用Golang selenium WebDriver 自动登录微博
- 在 Ubuntu 或其它 GNU/Linux 系统下安装 Debian
- Mac 下制作 USB ubuntu/debian 系统启动、安装盘的几种方法
- ubuntu/debian 下自行编译 OpenWRT 固件
- 宅家自己动手换手机屏幕掉坑记
- 路由 UBNT ER-X 官方固件升级及开启硬件加速的方法
- 在 Nginx 和 Golang web 上抢先体验 QUIC
最近浏览
- 自己组装21瓦低功耗家庭爬虫、文件、web服务器
- Openwrt 路由上开启BBR
- Mac 下制作 USB ubuntu/debian 系统启动、安装盘的几种方法
- go struct 设置默认值
- Sublime 把字符串替换为换行
- 神奇:google、必应、百度三大翻译PK,百度出奇制胜!
- 使用Golang selenium WebDriver 自动登录微博
- Openwrt 使用USB 4G 上网卡共享网络
- 路由 UBNT ER-X 官方固件升级及开启硬件加速的方法
- 向各搜索引擎主动提交网址的经验
- 换手机后 Google 身份验证器 Google Authenticator 数据迁移的简单方法
- ubuntu/debian 下自行编译 OpenWRT 固件
- python SQLite 数据库提速经验
- python 标准库读写CSV 文件
- 使用Gmail smtp发信,开通专用密码的方法
- VirtualBox 虚拟机里网络很慢的解决方法