Go 語言高效分詞, 支援英文、中文、日文等

veni發表於2017-11-16

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

更多原創文章乾貨分享,請關注公眾號
  • Go 語言高效分詞, 支援英文、中文、日文等
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章