• golang实现中文分词,scws,jieba


    一、scws

    1、安装 scws

    官网以及文档
    https://github.com/hightman/scws

    wget -q -O - http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2 | tar xjf -
    
    cd scws-1.2.3
    ./configure --prefix=/usr/local/scws --enable-shared
    make && make install
    
    Libraries have been installed in: /usr/local/scws/lib
    
    cli客户端
    /usr/local/scws/bin/scws -hwget 下载并解压词典,或从主页下载然后自行解压再将 *.xdb 放入 /usr/local/scws/etc 目录中。
    cd /usr/local/scws/etc
    wget http://www.xunsearch.com/scws/down/scws-dict-chs-utf8.tar.bz2
    wget http://www.xunsearch.com/scws/down/scws-dict-chs-gbk.tar.bz2
    tar xjf scws-dict-chs-utf8.tar.bz2
    tar xjf scws-dict-chs-gbk.tar.bz2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    2、golang调用scws

    go get github.com/jk0011/goscws

    package main
    
    import (
    	"log"
    
    	"github.com/jk0011/goscws"
    )
    
    func main() {
    	gs := goscws.NewScws()
    	gs.SetCharset("utf8")
    	err := gs.SetDict("/usr/local/scws/etc/dict.utf8.xdb", goscws.SCWS_XDICT_MEM)
    	if err != nil {
    		log.Println(err)
    	}
    	err = gs.SetRule("/usr/local/scws/etc/rules.utf8.ini")
    	if err != nil {
    		log.Println(err)
    	}
    	err = gs.SetIgnore(0)
    	if err != nil {
    		log.Println(err)
    	}
    	text := []byte(`陈凯歌并不是《无极》的唯一著作权人,一部电影的整体版权归电影制片厂所有。`)
    	gs.SendText(text, len(text))
    	for res := gs.GetResult(); res != nil; res = gs.GetResult() {
    		log.Println(string(res.Word), res.Idf, string(res.Attr))
    	}
    	gs.DeleteScws()
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    go run goscws.go

    报错:error while loading shared libraries: libscws.so.1: cannot open shared object file: No such file or directory
    解决:cp /usr/local/scws/lib/*scws* /usr/lib/

    > go run goscws.go
    
    2023/10/12 11:47:46 陈凯歌 11.87 nr
    2023/10/12 11:47:46 并 0 c
    2023/10/12 11:47:46 不是 4.74 v
    2023/10/12 11:47:46 《 0 un
    2023/10/12 11:47:46 无极 10.02 ns
    2023/10/12 11:47:46 》 0 un
    2023/10/12 11:47:46 的 0 uj
    2023/10/12 11:47:46 唯一 4.9 b
    2023/10/12 11:47:46 著作权人 6.07 n
    2023/10/12 11:47:46 , 0 un
    2023/10/12 11:47:46 一 0 m
    2023/10/12 11:47:46 部 0 n
    2023/10/12 11:47:46 电影 4.17 n
    2023/10/12 11:47:46 的 0 uj
    2023/10/12 11:47:46 整体 4.93 n
    2023/10/12 11:47:46 版权 4.92 n
    2023/10/12 11:47:46 归 0 v
    2023/10/12 11:47:46 电影 4.17 n
    2023/10/12 11:47:46 制片厂 8.38 n
    2023/10/12 11:47:46 所有 4.72 v
    2023/10/12 11:47:46 。 0 un
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    2、jieba

    主要是两个库
    github.com/yanyiwu/gojieba
    github.com/wangbin/jiebago

  • 相关阅读:
    【苹果推位置推iMessage】Apple Notification Center Service (ANCS)
    JAVA毕设项目Web企业客户管理系统(Vue+Mybatis+Maven+Mysql+sprnig+SpringMVC)
    2022/09/06 day03:命令2
    【MHA】MySQL高可用MHA介绍1-功能,架构,优势,案例
    【线性代数】为什么 AA* = |A|E
    黑马头条 热点文章实时计算、kafkaStream
    向量数据库,为什么是大模型的最佳拍档?
    实用技巧,用lsof命令监控tar文件解压进度,简单有效!
    005 OpenCV直方图
    Win11打不开exe应用程序怎么办?Win11无法打开exe程序解决方法
  • 原文地址:https://blog.csdn.net/raoxiaoya/article/details/133787714