当前位置:首页 | 技术文档 | 文章正文

Lucene.NET增加中文分词

一、Lucene.NET版本介绍

到目前为止,LuceneC#移植有三个版本,最开始是NLucene,然后是Lucene.NET,当Lucene.NET转向商业化之后,SourceForge上又出现了dotLucene项目。

       猎兔推出完全使用C#开发的,支持Lucene.NET的中文分词模块。

 

二、调用接口

 

seg.result.CnTokenizer,该类继承Lucene.Net.Analysis.TokenStream

 

       其中环境变量dic.dir指定数据文件路径,如:

"-Ddic.dir=d:/lg/work/SSeg/dic"

 

一个简单的使用例子是:

using System;

using System.Runtime.InteropServices;

using seg.result;

using Lucene.Net.Analysis;

 

namespace ConsoleApplication1

{

       /// <summary>

       /// Class1 的摘要说明。

       /// </summary>

       class Class1

       {

              /// <summary>

              /// 应用程序的主入口点。

              /// </summary>

              [DllImport("Kernel32.DLL", SetLastError=true)]

              public static extern bool SetEnvironmentVariable(string lpName, string lpValue);

 

              [STAThread]

              static void Main(string[] args)

              {

                     SetEnvironmentVariable( "dic.dir", "d:/lg/work/SSeg/dic");

                     //

                     // TODO: 在此处添加代码以启动应用程序

                     //

                     testCnAnalyzer();

                     System.Console.Read();

              }

             

              public static void testCnAnalyzer()

              {

                     System.IO.TextReader input;

                 

                     CnTokenizer.makeTag= true;

                     string sentence = "邀请王振国今年9月参加在洛杉矶举行的30届美国治癌成就大奖会";

                 

                     input = new System.IO.StringReader(sentence);

                     TokenStream tokenizer = new seg.result.CnTokenizer(input);

                 

                     for (Token t = tokenizer.Next(); t != null; t = tokenizer.Next())

                     {

                            System.Console.WriteLine(t.TermText() + " " + t.StartOffset() + " "

                                   + t.EndOffset() + " "+t.Type());

                     }

              }

       }

}

 

三、输出结果介绍

输出结果中的词性标注代码和分词效果与当前Java版的一样,可以参考Lucene增加中文分词功能

 

四、试用版免费下载

       点击这里下载免费试用版

 

五、 Lucene.Net源码下载

       点击这里下载Lucene.Net当前最新版本2.1。修正了官方版本的一个bug。