cwsharp-gogo中文分詞包
cwsharp-go
cwsharp-go是golang的文本分詞包,支持中文、英文以及中英混合詞組,除此之外,提供自定義分詞的擴展(比如日文、韓文或其它語種)。
.NET版:CWSharp-C#
安裝&測試
$ go get github.com/zhengchun/cwsharp-go
$ cd main
$ go run main.go Hello,World!你好,世界!
分詞算法
cwsharp-go支持多種分詞算法,你可以根據(jù)需求選擇適合自己的或者自定義新的分詞算法。
mmseg-tokenizer
標準的基于詞典的分詞方法。
tips: 建議使用單一實例,避免每次分詞都需重新加載字典
tokenizer, err := cwsharp.New("../data/cwsharp.dawg") //加載字典
iter := tokenizer.Tokenize(strings.NewReader("Hello,world!你好,世界!"))
for tok, ok := iter(); ok; tok, ok = iter() {
fmt.Printf("%s/%s ", tok.Text, tok.Type)
}
>> hello/w ,/p world/w !/p 你好/w ,/p 世界/w !/p
bigram-tokenizer
二元分詞方法,無需字典,速度快,支持完整的英文和數(shù)字切分。
iter := cwsharp.BigramTokenize(strings.NewReader("世界人民大團結(jié)萬歲!"))
for token, ok := iter(); ok; token, ok = iter() {
fmt.Printf("%s/%s ", token.Text, token.Type)
}
>> 世界/w 界人/w 人民/w 民大/w 大團/w 團結(jié)/w 結(jié)萬/w 萬歲/w !/p
whitespace-tokenizer
標準的英文分詞,無需字典,適合切分英文的內(nèi)容,中文會被當做獨立的字符輸出。
iter := cwsharp.WhitespaceTokenize(strings.NewReader("Hello,world!你好!"))
for token, ok := iter(); ok; token, ok = iter() {
fmt.Printf("%s/%s ", token.Text, token.Type)
}
>> hello/w ,/p world/w !/p 你/w 好/w !/p
TokenizerFunc
TokenizerFunc是自定義分詞的擴展接口幫助類,允許你自定義新的分詞。
type TokenizerFunc func(io.Reader) Iterator
評論
圖片
表情
