龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp.net编程 >

Lucene.NET增加中文分词

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
一、 Lucene 的 .NET 版本介绍 到目前为止, Lucene 的 C# 移植有三个版本,最开始是 NLucene ,然后是 Lucene.NET ,当 Lucene.NET 转向商业化之后, SourceForge 上又出现了 dotLucene 项目。 猎兔推出完

一、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。

 

编辑推荐DotLucene搜索引擎文章列表:
全文搜索解决方案:DotLucene搜索引擎之创建索引
http://www.xueit.com/html/2009-02/21_606_00.html
DotLucene搜索引擎之搜索索引Demo
http://www.xueit.com/html/2009-02/21_607_00.html
全文搜索技术:dotLucene中文分词的highlight显示
http://www.xueit.com/html/2009-02/21_608_00.html
Lucene.NET增加中文分词
http://www.xueit.com/html/2009-02/21_609_00.html
全文搜索之Lucene增加中文分词功能方法
http://www.xueit.com/html/2009-02/21_610_00.html
简介下基于.NET的全文索引引擎Lucene.NET
http://www.xueit.com/html/2009-02/21_611_00.html
使用dotlucene为数据库建立全文索引
http://www.xueit.com/html/2009-02/21_612_00.html
使用dotlucene多条件检索数据库
http://www.xueit.com/html/2009-02/21_613_00.html
Lucene中文分词实现方法:基于StopWord分割分词
http://www.xueit.com/html/2009-02/21_614_00.html
dotLucene实现增量索引源代码
http://www.xueit.com/html/2009-02/21_615_00.html

精彩图集

赞助商链接