Go語言 中文分詞技術使用技巧(一)

2021-10-04 09:50:23 字數 1521 閱讀 8916

分詞技術就是搜尋引擎中文分詞(chinese word segmentation)指的是將乙個漢字序列(句子)切分成乙個乙個的單獨的詞,分詞就是將連續的字序列按照一定的規則重新組合成詞序列的過程。

現在分詞方法大致有三種:基於字串配置的分詞方法、基於理解的分詞方法和基於統計的分詞方法。

官方介紹

模式擴充套件

主要演算法

編碼實現

執行結果

go build -o gojieba 

time ./gojieba

萬里長城萬里長 全模式:萬里|萬里長城|里長|長城|萬里|里長

萬里長城萬里長 精確模式:萬里長城|萬里|長

新增新詞:萬里長

萬里長城萬里長 精確模式:萬里長城|萬里長

北京鮮花速遞 新詞識別:北京|鮮花|速遞

北京鮮花速遞 搜尋引擎模式: 北京|鮮花|速遞

北京市朝陽公園 詞性標註: 北京市/ns|朝陽/ns|公園/n

魯迅先生 搜尋引擎模式: 魯迅|先生

魯迅先生 tokenize search mode 搜尋引擎模式: [ ]

魯迅先生 tokenize default mode搜尋引擎模式: [ ]

魯迅先生 extract: [ ]

效能評測語言

原始碼耗時

c++版本

cppjieba

7.5 s

golang版本

gojieba

9.11 s

python版本

jieba

88.7 s

計算分詞過程的耗時,不包括載入詞典耗時,cppjieba效能是gojieba的1.2倍。cppjieba效能詳見jieba-performance-comparison,gojieba由於是c++開發的cppjieba,效能方面僅次於cppjieba,如果追求效能還是可以考慮的。

Go語言 中文分詞技術使用技巧(一)

中文分詞 chinese word segmentation 指的是將乙個漢字序列 句子 切分成乙個乙個的單獨的詞,分詞就是將連續的字序列按照一定的規則重新組合成詞序列的過程。現在分詞方法大致有三種 基於字串配置的分詞方法 基於理解的分詞方法和基於統計的分詞方法。官方介紹 模式擴充套件 主要演算法 ...

Go語言中Context使用技巧

go的context是乙個設計非常精巧的介面,我們可以使用它非常方便進行上下文的值傳遞,同時也控制goroutine的生命週期。context提供了乙個withvalue函式,可將一對 key value 的值存放到context中 func testcontextwithvalue t testi...

go語言中strings的用法技巧

strings.hasprefix s string,prefix string bool 判斷字串s是否以prefix開頭 strings.hassuffix s string,suffix string bool 判斷字串s是否以suffix結尾。strings.index s string,s...