之前在页面中使用简体转繁体的功能一般是使用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 直接调用c函数,使用cgo 编译,个人在跨平台编译中遇到一些问题(用源码安装可能会解决这个问题)
- https://github.com/sgoby/opencc 使用OpenCC 的字典,纯go实现
- https://github.com/liuzl/gocc 使用OpenCC 的字典,纯go实现
处于性能考虑,个人使用第一个项目,下面是其使用的例子。
我在Mac 里安装OpenCC
1
2
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 实现简体转繁体示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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)
}
运行后输出:
1
2
Test Converter class:
中國鼠標軟件打印機後臺灣
opencc 源码安装
在 ubuntu/debian 使用 apt-get install opencc
安装,当运行 go get github.com/stevenyao/go-opencc
时可能会遇到下面的错误:
1
2
3
4
5
# 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
再用源码安装
1
2
3
4
5
6
7
git clone https://github.com/BYVoid/OpenCC.git
apt-get install cmake
apt-get install doxygen
cd OpenCC
make
make install
成功安装 opencc
1
2
3
4
$ opencc --version
Open Chinese Convert (OpenCC) Command Line Tool
Version: 1.0.5
本文网址: https://pylist.com/topic/191.html 转摘请注明来源