四角编码
TODO 2023-2-3 01:28:40 编写文档
一、四角编码是什么?应用场景有哪些?
TODO 2024-1-29 21:59:38
二、安装依赖
go get -u github.com/cryptography-research-lab/go-sijiao-encode
三、API示例
package main
import (
"fmt"
sijiao_encoder "github.com/cryptography-research-lab/go-sijiao-encode"
)
func main() {
s := "陈二"
sijiaoSlice := sijiao_encoder.EncodeChineseStringToSiJiao(s)
fmt.Println(sijiaoSlice)
maybeChineseStrings := sijiao_encoder.DecodeSiJiaoSliceToChineseStrings(sijiaoSlice)
fmt.Println(maybeChineseStrings)
trie, err := sijiao_encoder.DecodeToChineseTrieFromSiJiaoSlice(sijiaoSlice)
if err != nil {
panic(err)
}
fmt.Println(trie.ExportToDotLanguage())
}
四、TODO
从四角编码到中文的映射是一对多的,这是展开的字典树,看看是不是能够有什么办法,从这颗庞大的字典树中定位到正确的解?
一个可能的思路:搞一个汉字矩阵表,存储这每个汉字的下一个汉字是啥的概率,比如汉字A的下一个汉字是A的概率,下一个汉字是B的概率,下一个汉字是C的概率,等等等等...然后计算字典树上所有叶子的概率,概率最大的那个就是最可能的答案。