
Go 语言高效分词, 支持英文、中文、日文等
词典用双数组 trie ( Double-Array Trie )实现, 分词器算法为基于词频的最短路径加动态规划。
支持普通和搜索引擎两种分词模式,支持用户词典、词性标注,可运行 JSON RPC 服务。
分词速度单线程 9MB/s,goroutines 并发 42MB/s ( 8 核 Macbook Pro )。
go get -u github.com/go-ego/gse go get -u github.com/go-ego/re To create a new gse application
$ re gse my-gse To run the application we just created, you can navigate to the application folder and execute:
$ cd my-gse && re run package main import ( "fmt" "github.com/go-ego/gse" ) func main() { // 载入词典 var segmenter gse.Segmenter segmenter.LoadDict() // segmenter.LoadDict("your gopath"+"/src/github.com/go-ego/gse/data/dict/dictionary.txt") // 分词 text := []byte("中华人民共和国中央人民政府") segments := segmenter.Segment(text) // 处理分词结果 // 支持普通模式和搜索模式两种分词,见代码中 ToString 函数的注释。 fmt.Println(gse.ToString(segments, false)) text1 := []byte("深圳地王大厦") segments1 := seg.Segment([]byte(text1)) fmt.Println(gse.ToString(segments1, false)) } 1 xrlin Nov 16, 2017 via iPhone 支持,希望 go 的生态发展得越来越好 |
2 dobelee Nov 16, 2017 via Android 这个和结巴比如何? |
3 cheneydog Nov 16, 2017 需要词库么? |
9 picone Nov 17, 2017 我就说怎么这么熟悉,简介文案都一模一样 https://github.com/huichen/sego |
10 picone Nov 17, 2017 麻烦楼主尊重一下别人开源,fork 一下别人的代码呗,至少也写一下出处,我看到多处代码都一样 |
11 windyboy Nov 17, 2017 楼主居然敢无视世界上最大的同性交友站的威力 |
12 thinkItThrough Nov 17, 2017 wtf ? |
15 vway OP @thinkItThrough 有病? |
21 yangtukun1412 Nov 17, 2017 为什么不直接 fork 呢...感觉样子破坏了之前的 commit history... |
22 vway OP @yangtukun1412 直接 fork 搜不到 |
24 htfy96 Nov 17, 2017 感觉这种算法 /CPU 密集的程序最好做法还是提供一个 C 接口版本,然后其他语言在上面用 FFI 包装一下,这样就不会陷入重复造轮子的情况…… |
25 wzha2008 Nov 17, 2017 再加个 HMM ? |
28 whyw Nov 17, 2017 , 支持 |