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)) 
}
|  |      1xrlin      2017-11-16 21:33:07 +08:00 via iPhone 支持,希望 go 的生态发展得越来越好 | 
|      2dobelee      2017-11-16 21:36:40 +08:00 via Android 这个和结巴比如何? | 
|  |      3cheneydog      2017-11-16 21:39:29 +08:00 需要词库么? | 
|  |      9picone      2017-11-17 10:37:04 +08:00 我就说怎么这么熟悉,简介文案都一模一样 https://github.com/huichen/sego | 
|  |      10picone      2017-11-17 10:38:17 +08:00 麻烦楼主尊重一下别人开源,fork 一下别人的代码呗,至少也写一下出处,我看到多处代码都一样 | 
|  |      11windyboy      2017-11-17 10:48:53 +08:00 楼主居然敢无视世界上最大的同性交友站的威力 | 
|      12thinkItThrough      2017-11-17 10:53:59 +08:00 wtf ? | 
|  |      15vway OP @thinkItThrough 有病? | 
|      21yangtukun1412      2017-11-17 12:14:41 +08:00 为什么不直接 fork 呢...感觉这样子破坏了之前的 commit history... | 
|  |      22vway OP @yangtukun1412 直接 fork 搜不到 | 
|  |      24htfy96      2017-11-17 15:13:51 +08:00 感觉这种算法 /CPU 密集的程序最好做法还是提供一个 C 接口版本,然后其他语言在上面用 FFI 包装一下,这样就不会陷入重复造轮子的情况…… | 
|  |      25wzha2008      2017-11-17 17:29:54 +08:00 再加个 HMM ? | 
|      28whyw      2017-11-17 22:12:41 +08:00 👍, 支持 |