• 请不要在回答技术问题时复制粘贴 AI 生成的内容
vway
V2EX  ›  程序员

Go 语言高效分词, 支持英文、中文、日文等

  •  
  •   vway · Nov 16, 2017 · 8365 views
    This topic created in 3273 days ago, the information mentioned may be changed or developed.

    Go 语言高效分词, 支持英文、中文、日文等

    词典用双数组 trie ( Double-Array Trie )实现, 分词器算法为基于词频的最短路径加动态规划。

    支持普通和搜索引擎两种分词模式,支持用户词典、词性标注,可运行 JSON RPC 服务。

    分词速度单线程 9MB/s,goroutines 并发 42MB/s ( 8 核 Macbook Pro )。

    安装 /更新

    go get -u github.com/go-ego/gse
    

    Build-tools

    go get -u github.com/go-ego/re 
    

    re gse

    To create a new gse application

    $ re gse my-gse
    

    re run

    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)) 
    }
    

    项目地址: https://github.com/go-ego/gse

    31 replies  •  2017-11-17 23:37:16 +08:00
    xrlin
    xrlin
    Nov 16, 2017 via iPhone
    1
    支持,希望 go 的生态发展得越来越好
    dobelee
    dobelee
    Nov 16, 2017 via Android
    2
    这个和结巴比如何?
    cheneydog
    cheneydog
    Nov 16, 2017
    3
    需要词库么?
    vway
    vway
    OP
    Nov 17, 2017
    4
    @xrlin 感谢
    vway
    vway
    OP
    Nov 17, 2017
    5
    @cheneydog 需要词库
    vway
    vway
    OP
    Nov 17, 2017
    6
    @dobelee c++绑定的 gojieba? 纯 go, 性能差不多, 比 Python 版好很多
    secsilm
    secsilm
    Nov 17, 2017 via Android
    7
    @vway 比 Python 版本好在哪?
    qsnow6
    qsnow6
    Nov 17, 2017
    8
    @secsilm 干嘛非要比,不同环境下的工具
    picone
    picone
    Nov 17, 2017
    9
    我就说怎么这么熟悉,简介文案都一模一样
    https://github.com/huichen/sego
    picone
    picone
    Nov 17, 2017
    10
    麻烦楼主尊重一下别人开源,fork 一下别人的代码呗,至少也写一下出处,我看到多处代码都一样
    windyboy
    windyboy
    Nov 17, 2017
    11
    楼主居然敢无视世界上最大的同性交友站的威力
    thinkItThrough
    thinkItThrough
    Nov 17, 2017
    12
    wtf ?
    vway
    vway
    OP
    Nov 17, 2017 via iPhone
    13
    @picone 请看底部
    vway
    vway
    OP
    Nov 17, 2017 via iPhone
    14
    @picone 你有认真看介绍和 License,没看就不要乱说
    vway
    vway
    OP
    Nov 17, 2017 via iPhone
    15
    @thinkItThrough 有病?
    vway
    vway
    OP
    Nov 17, 2017 via iPhone
    16
    @windyboy ???
    vway
    vway
    OP
    Nov 17, 2017 via iPhone
    17
    @picone 没写出处?
    vway
    vway
    OP
    Nov 17, 2017 via iPhone
    18
    @picone github 和 License 中写了,你都没看项目,就不要瞎喷
    vway
    vway
    OP
    Nov 17, 2017 via iPhone
    19
    @qsnow6 是的
    vway
    vway
    OP
    Nov 17, 2017 via iPhone
    20
    @windyboy 没有登,🤭,作者不维护,才开的新分支
    yangtukun1412
    yangtukun1412
    Nov 17, 2017
    21
    为什么不直接 fork 呢...感觉这样子破坏了之前的 commit history...
    vway
    vway
    OP
    Nov 17, 2017
    22
    @yangtukun1412 直接 fork 搜不到
    vway
    vway
    OP
    Nov 17, 2017
    23
    @secsilm 只能说性能更好吧
    htfy96
    htfy96
    Nov 17, 2017
    24
    感觉这种算法 /CPU 密集的程序最好做法还是提供一个 C 接口版本,然后其他语言在上面用 FFI 包装一下,这样就不会陷入重复造轮子的情况……
    wzha2008
    wzha2008
    Nov 17, 2017
    25
    再加个 HMM ?
    vway
    vway
    OP
    Nov 17, 2017
    26
    @htfy96 嗯, 那样更通用, 但部署会不方便
    vway
    vway
    OP
    Nov 17, 2017
    27
    @wzha2008 感谢建议, 会列入考虑
    whyw
    whyw
    Nov 17, 2017
    28
    👍, 支持
    secsilm
    secsilm
    Nov 17, 2017 via Android
    29
    @qsnow6 怪我比了?楼主说的比 Python 好啊,我就想知道好在哪
    vway
    vway
    OP
    Nov 17, 2017
    30
    @secsilm 我说的是性能好很多, 不好意思有歧义
    vway
    vway
    OP
    Nov 17, 2017
    31
    @whyw 🤝, 感谢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4926 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 09:14 · PVG 17:14 · LAX 01:14 · JFK 04:14
    ♥ Do have faith in what you're doing.