fumiama / emozi

Emoji-lized HanZi generator. 🐑🚬🧗👤🕸️😐🧗✍️👈🌞😨🏠🌹🧦😨👥🌹🔐😨💦⬅️☀️😨🏡💦💡🍉🌱🍵💡🧗🪓🍆👔😨🐶

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EMOZI

See My Viedo

参考古埃及圣书体设计的一种基于颜文字的汉字抽象转写法
🐑🚬🧗👤🕸️😐🧗✍️👈🌞😨🏠🌹🧦😨👥🌹🔐😨💦⬅️☀️😨🏡💦💡🍉🌱🍵💡🧗🪓🍆👔😨🐶


命令行工具

位于cmd文件夹。

用法: [-h|f|nr] [-db 字.db] [-d 🌹‪🐱⁢🐴‭👩] [-e 好] 形声字选择1 形声字选择2 ...
  -a string
        添加一个汉字到附加库
  -d string
        解码颜文字为汉字序列
  -db string
        符合规范的查询数据库位置, 不存在则会自动释放到该路径. (default "字.db")
  -deloverlay int
        删除一个附加库中的字
  -delradical
        删除-r指定的部首的记录
  -e string
        编码汉字序列为颜文字
  -f    强制解码并非由本程序生成的颜文字序列
  -h    显示帮助信息
  -i    指定汉字-a和带声调的拼音-p以计算其全局唯一ID
  -nr
        不随机选取所有读音相近的颜文字
  -p string
        带声调的拼音
  -r string
        指定欲编辑的部首
  -re string
        指定部首对应的颜文字
  -stabilize int
        固定附加库中的字到主库

下面是一些用例。

计算一个字的国际音标、部首、全局ID

该计算不查数据库, 完全与数据库无关.

go run cmd/main.go -i -a 哦 -p o
文字: 哦 拼音IPA: 0 ɔ 轻声 ID: 93346820784388
程序处理结束

查询库中记录的字的信息

go run cmd/main.go -a 行
查询到汉字 行 的记录:
0)      #149859999752449 行 [ɕ, iŋ, 阳平] 从行 xing xínɡ
1)      #149859999554817 行 [x, ɑŋ, 阳平] 从行 hang háng
程序处理结束

编码

注意: 可以指定-nr参数从而使编解码结果唯一。

go run cmd/main.go -e 好
编码结果: 🌹‪🐱⁢🐴‭👩
程序处理结束

解码

go run cmd/main.go -d 🌹‪🐱⁢🐴‭👩
解码结果: 好
程序处理结束

添加一个字到附加库

go run cmd/main.go -e 的
编码结果: 的‬🈳🈳⁤🈳
程序处理结束

go run cmd/main.go -a 的 -p de -r 日 -re 🌞
已添加汉字: 的 读音: t, ɤ, 轻声 部首: 日 ID: 130309308023300
已添加部首: 日 颜文字: 🌞
查询到汉字 的 的记录:
0)      #130309308023300 的 [t, ɤ, 轻声] 从日 de de
程序处理结束

go run cmd/main.go -e 的 
编码结果: 🔪‬😋‭😯‍🌞
程序处理结束

指定多音字

go run cmd/main.go -e 你好,世界!看看多音字:行。
编码结果: 🥛⁩👔⁨🐴‍👤🌸🐱🐴👩,📙☀️😨🌍🦶👴😨👨‍🌾!👖🔐🍉👁️😭🔐🍉👁️🫘🌀🍉🪩💊🎵🍉🎵⬅🌅😨🚼:[✨🦅🧗‍♂️⛕|🐵👍🧗‍♂️⛕]。
可选形声: [2]
在参数中指定形声字编号(从0开始)以生成不带中括号的编码结果
程序处理结束

go run cmd/main.go -e 你好,世界!看看多音字:行。 1
编码结果: 🥛👔⁨🐴👤🌼😺🐴👩,🏔️🌅😨🌍➖👴😨👨‍🌾!👖🔐🍉👁️👖🔐🍉👁️🔪🌀🍉🪩🦷🎵🍉🎵⬅☀️😨🚼:🔥👍🧗⛕。
程序处理结束

go run cmd/main.go -d "🥛👔⁨🐴👤🌼😺🐴👩,🏔️🌅😨🌍➖👴😨👨‍🌾!👖🔐🍉👁️👖🔐🍉👁️🔪🌀🍉🪩🦷🎵🍉🎵⬅☀️😨🚼:🔥👍🧗⛕。"
解码结果: [你|儗]好,世[界|畍]!看看多音字:行。
程序处理结束

作为库引用

特别注意

package使用了自修改的modernc.org/sqlite数据库,如欲引入本包,需要在go.mod添加如下替换项。

replace modernc.org/sqlite => github.com/fumiama/sqlite3 v1.20.0-with-win386

replace github.com/remyoudompheng/bigfft => github.com/fumiama/bigfft v0.0.0-20211011143303-6e0bfa3c836b

拼音识别拆分

将带声调的拼音拆分为以国际音标表示的声母韵母。

s, y, t, err := emozi.SplitPinyin("jiǒng")
if err != nil {
    panic(err)
}
fmt.Println(s, y, tone) // tɕ i̯ʊŋ 上声

查汉字

查一个汉字在数据库中的记录。

coder, err := emozi.NewCoder(time.Minute)
if err != nil {
    panic(err)
}
defer coder.Close()
lst, err := coder.Lookup('行')
if err != nil {
    panic(err)
}
fmt.Println("查询到汉字 行 的记录:")
    for i, x := range lst {
    fmt.Printf("%d)\t%s\n", i, x)
}
/*
查询到汉字 行 的记录:
0)      #149859999752449 行 [ɕ, iŋ, 阳平] 从行 xing xínɡ
1)      #149859999554817 行 [x, ɑŋ, 阳平] 从行 hang háng
*/

About

Emoji-lized HanZi generator. 🐑🚬🧗👤🕸️😐🧗✍️👈🌞😨🏠🌹🧦😨👥🌹🔐😨💦⬅️☀️😨🏡💦💡🍉🌱🍵💡🧗🪓🍆👔😨🐶

License:GNU Affero General Public License v3.0


Languages

Language:Go 100.0%