.NET使用Lucene.Net和盘古分词类库实现中文分词

ucene.Net只是一个全文检索开发包。它的功能就是提供了全文检索功能的一个数据库。Lucene.Net不管文本数据怎么来的,用户可以基于Lucene.Net开发满足自己需求的搜索引擎。Lucene.Net智能对文本信息进行检索。如果不是文本信息,要转换为文本信息,比如检索Excel文件,就要用NPOI把Excel读取成字符串,然后把字符串扔给Lucene.Net。Lucene.Net会把扔给它的文本切词保存,加快检索速度。
Lucene.Net中不同的分词算法就是不同的类,所有分词算法类都从Analyzer类继承。

庖丁解牛、盘古分词,IKAnalyzer分词(Java)等是基于词库的分词算法,可以提高分词成功率,但是效率低。

.NET中文分词实现

Lucene.Net.dll http://www.apache.org/dist/incubator/lucene.net/binaries/2.9.4g-incubating/

PanGu.dll http://pangusegment.codeplex.com/releases/view/50811

PanGu.Lucene.Analyzer.dll

和字典文件 http://pangusegment.codeplex.com/releases/view/31531

示例代码:

        using System;
        using System.Collections.Generic;
        using System.Linq;
        using System.Text;
        using Lucene.Net.Analysis;
        using Lucene.Net.Analysis.PanGu;
        using System.IO;
        using System.Collections;
        namespace FcCApp
      {
        class Program
       {
               static void Main(string[] args)
               {
                 String text = "基于java语言开发的轻量级的中文分词工具包";
                 Analyzer anal = new PanGuAnalyzer();//使用盘古分词
                 StringReader sb = new StringReader(text);
                 TokenStream ts= anal.ReusableTokenStream("", sb);
                 Token t = null;
                 while ((t=ts.Next())!=null)
                {
                  Console.Write(t.TermText()+"|");
                }
             }
           }
 }
THE END
分享
二维码
< <上一篇
下一篇>>