package main
import (
_ "embed"
"fmt"
"github.com/go-ego/gse"
)
func main(){
seg, err := gse.New("自定义词典1.txt,自定义词典2.txt,zh")//优先级高的在前面
if err != nil {
panic(err)
}
text := "Hello world, Helloworld. Winter is coming!你真是BTC啊 RSS订阅 abcdefg 我emo了 努力了"
po := seg.Pos(text, false)
po = seg.TrimPos(po) //去掉空格
fmt.Println("trim pos: ", po, po[1].Text, po[1].Pos)//打印元素和词性
}
几点思考:
- 为了方便拓展,可使用数据库保存自定义的词,每次启动项目重新生成自定义文件词典。
- 在项目运行期间,对数据库进行操作修改了词典以后,留一个手动刷新词典的接口,每2次刷新时间间隔需要做个限制,避免频繁刷新。
- 为了让刷新一定生效,可以写一个任务检查Redis的自增键值是否大于0,如果大于0就去刷新,重新生成字典加载。