CWSharp - .Net中英文分詞組件
CWSharp 是 .Net 的中英文分詞組件。
特性
-
內嵌多種分詞算法及可擴展的自定義分詞接口
-
StandardTokenizer
-
BigramTokenizer
-
StopwordTokenizer
-
自定義分詞接口
-
支持自定義詞典
-
支持Lucene.Net分詞
-
MIT授權協議
安裝&編譯
-
NuGet
nuget install CWSharp
-
Package Manager Console
PM> install-package CWSharp
-
編譯
build.cmd v4.5 Release //.NET 4.5 build.cmd v4.0 Release //.NET 4.0 build.cmd v3.5 Release //.NET 3.5
算法
TODO
-
HMM算法,識別未登記詞語以及人名、地名識別
-
支持跨平臺Windows、Linux
示例
-
StandardTokenizer
var dawgFile = @"dict.dawg"; var tokenizer = new StandardTokenizer(dawgFile) { OptionOutputOriginalCase = true }; foreach (var token in tokenizer.Traverse("微軟宣布它愛Linux")) { Console.Write(token.Text + "/" + token.Type); }
微軟/CJK 宣布/CJK 它/CJK 愛/CJK Linux/ALPHANUM
-
BigramTokenizer
var tokenizer = new BigramTokenizer(); foreach (var token in tokenizer.Traverse("微軟宣布它愛Linux")) { Console.Write(token.Text + "/" + token.Type); }
微軟/CJK 軟宣/CJK 宣布/CJK 布它/CJK 它愛/CJK linux/ALPHANUM
-
StopwordTokenizer
var tokenizer = new StopwordTokenizer( new StandardTokenizer(dawgFile), new string[] { "它", "a", "the", "an" }); foreach (var token in tokenizer.Traverse("微軟宣布它愛Linux")) { Console.Write(token.Text + "/" + token.Type); Console.Write(" "); }
微軟/CJK 宣布/CJK 愛/CJK linux/ALPHANUM
-
自定義分詞接口
//一元分詞 public class CustomTokenizer : ITokenizer { private ITokenizer _tokenizer; public CustomTokenizer(ITokenizer tokenizer) { _tokenizer = tokenizer; } public IEnumerable<Token> Traverse(string text) { foreach (var token in _tokenizer.Traverse(text)) { if (token.Type == TokenType.CJK) { foreach (var ch in token.Text) yield return new Token(ch.ToString(), TokenType.CJK); } else yield return token; } } }
微/CJK 軟/CJK 宣/CJK 布/CJK 它/CJK 愛/CJK linux/ALPHANUM
FAQ
-
詞典 - 如何生成DAWG詞典文件,如何添加新的詞組到DAWG詞典中。
-
lucene.net插件 - Lucene.Net分詞接口
本文由用戶 mmntt 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!