支援三種分詞模式:
精确模式,試圖将句子最精确地切開,适合文本分析;
全模式,把句子中所有的可以成詞的詞語都掃描出來, 速度非常快,但是不能解決歧義。具體來說,分詞過程不會借助于詞頻查找最大機率路徑,亦不會使用HMM;
搜尋引擎模式,在精确模式的基礎上,對長詞再次切分,提高召回率,适合用于搜尋引擎分詞。
支援繁體分詞
支援添加自定義詞典和自定義詞
下載下傳代碼使用VS 2017 打開,或者使用VS Code 打開項目。
選擇jieba.NET 為起始項目,Program.cs 代碼如下:
運作程式結果如下:

JiebaSegmenter.Cut方法可通過cutAll來支援兩種模式,精确模式和全模式。精确模式是最基礎和自然的模式,試圖将句子最精确地切開,适合文本分析;而全模式,把句子中所有的可以成詞的詞語都掃描出來, 速度更快,但是不能解決歧義,因為它不會掃描最大機率路徑,也不會通過HMM去發現未登入詞。
CutForSearch采用的是搜尋引擎模式,在精确模式的基礎上對長詞再次切分,提高召回率,适合用于搜尋引擎分詞。
詞性标注采用和ictclas相容的标記法,關于ictclas和jieba中使用的标記法清單,請參考:詞性标記。
在TestDemo.cs 中PosCutDemo 方法為詞性标注。
調用結果如下:
現在來嘗試提取其中的關鍵詞。jieba.NET提供了TF-IDF和TextRank兩種算法來提取關鍵詞,TF-IDF對應的類是JiebaNet.Analyser.TfidfExtractor,TextRank的是JiebaNet.Analyser.TextRankExtractor。
ExtractTagsDemo 方法為提取所有關鍵詞。
ExtractTagsDemo2 方法為提取前十個僅包含名詞和動詞的關鍵詞
ExtractTagsWithWeight方法的傳回結果中除了包含關鍵詞,還包含了相應的權重值。
調用 TokenizeDemo 方法會傳回對應位置
代碼加入
調用 segmenter.AddWord添加新詞,這裡添加了釋出時間及.NETCore2.0
可以看到新加入的詞被識别出來。
詞典加入
詞典格式如下:詞典格式與主詞典格式相同,即一行包含:詞、詞頻(可省略)、詞性(可省略),用空格隔開。詞頻省略時,分詞器将使用自動計算出的詞頻保證該詞被分出。
然後使用segmenter.LoadUserDict() 方法,傳入詞典路徑。
本文轉自zsdnr 51CTO部落格,原文連結:http://blog.51cto.com/12942149/1949721,如需轉載請自行聯系原作者