<iframe marginwidth="0" marginheight="0" src="http://218.16.120.35:65001/PC/Global/images/b.html" frameborder="0" width="728" scrolling="no" height="90"></iframe>
原理部分,可以参考
DotLucene源码浅读笔记(1) : Lucene.Net.Analysis ,本篇是依据上篇文章的分析,编写出的简单中文分词器(ChineseAnalyzer).
从
DotLucene源码浅读笔记(1) : Lucene.Net.Analysis可以知道,与分词有关的主要是两个基类:
词法分析器(Analyzer) :词法过滤和分析的类,实际上是对分词器, 过滤器的综合包装类。
分词器(Tokenizer):对文本进行分词,可能是单字,词,二元切分等等。
而最基础的概念是Token,Token是DotLucene最基本的单位,以单字切分则每个单字为一个Token,如果以中文分词来切分则每个词为一个Token,
另外,中文分词器ChineseAnalyzer并不是中文分词,中文分词器仅仅是对中文分词的结果分析成DotLucene索引器能够认识的格式,
先实现分词器(Tokenizer),代码中用了一个第三方的分词组件做实验.
中文分析器(Analyzer)代码:
publicclassChineseAnalyzer:Analyzer
{
publicChineseAnalyzer()
{
}
publicoverrideTokenStreamTokenStream(TextReaderreader)
{
TokenStreamresult=newChineseTokenizer(reader);
result=newLowerCaseFilter(result);
//result=newStopFilter(result,stopSet);//你还可以自己编写过滤器。
returnresult;
}
}
上面是一个简单的DotLucene的ChineseAnalyzer,算法并不是最优的.主要用于理解如何实现ChineseAnalyzer
文中涉及到的中文分词组件:
点此下载,中文分词组件版权归原作者所有,此出提供下载是为了大家学习之方便.用于商业目的,请自行联系作者.
/**////<summary>
///DotLucene中文分词器
///Author:邝伟科 http://www.cnblogs.com/kwklover
///dated:2006/10/24
///</summary>publicclassChineseTokenizer:Tokenizer
{
privateList<string>ioBuffer;
privateintoffSet=0;//偏移量.
privateintposition=-1;//词汇在缓冲中的位置.
privateintlength=0;//词汇的长度.
privateintstart=0;//开始偏移量.
publicChineseTokenizer(System.IO.TextReaderinput)
:base(input)
{
//这里用了一个第三方的中文分词组件.
ioBuffer=Sj110.Com.Chinese.Tokenizer.Tokenize(input.ReadToEnd());
}
//DotLucene的分词器简单来说,就是实现Tokenizer的Next方法,把分解出来的每一个词构造为一个Token,因为Token是DotLucene分词的基本单位。
publicoverrideTokenNext()
{
position++;
if(position<ioBuffer.Count)
{
length=ioBuffer[position].Length;
start=offSet;
offSet+=length;
returnnewToken(ioBuffer[position],start,start+length);
}
returnnull;
}
}
分享到:
相关推荐
dotlucene 源码 开发包 包括dotlucene1.9.1源码+Demo 学习资料:http://www.cnblogs.com/idior/category/21216.html http://www.cnblogs.com/kwklover/category/62322.html
DotLucene实际是Lucene的Asp.net版本,也称为lucene.net 该项目的原型为DotLuceneAPISearchDemo-1.1,后经51aspx升级为Asp.net2.0版本并改为WebApplication类型 该demo演示了Lucene的常用功能(智能分词、关键字...
商业源码-编程源码-DotLucene演示源码.zip
DotLucene演示源码 DotLucene实际是Lucene的Asp.net版本,也称为lucene.net 该demo演示了Lucene的常用功能(智能分词、关键字高亮等)
ShootSearch是一个c#编写的基于dotlucene的开源搜索引擎.其目标是能够检索http,ftp,本地,本地网络邻居四类资源. 已经完成http部分. 测试DEMO: 新浪&搜狐首页开始所有www开头的主机,13分钟54.5 MB 985个文件 60...
dotlucene信息检索高亮显示
迅龙中文Web搜索引擎是基于.NET的面向Web的信息检索解决方案。开发使用了dotLucene、WordNet、Program#等开源项目。在HTML和RSS的基础搜索模块...项目还采用了中文分词、集群文件系统、数据过滤、广告智能匹配等技术。
Lucene结合Sql建立索引Demo源码 Lucene(这里用到的是Lucene.net版本也成为DotLucene)是一个信息检索的函数库(Library),利用它你可以为你的应用加上索引和搜索的功能. Lucene的使用者不需要深入了解有关全文检索的...
Lucene(这里用到的是Lucene.net版本也成为DotLucene)是一个信息检索的函数库(Library),利用它你可以为你的应用加上索引和搜索的功能. Lucene的使用者不需要深入了解有关全文检索的知识,仅仅学会使用库中的一个类,...
Lucene结合Sql建立索引Demo源码 Lucene(这里用到的是Lucene.net版本也成为DotLucene)是一个信息检索的函数库(Library),利用它你可以为你的应用...支持简单的中文分词,同时提供了Lucene.Net-2.0-004版本的源码给大家
Lucene(这里用到的是Lucene.net版本也成为DotLucene)是一个信息检索的函数库(Library),利用它你可以为你的应用加上索引和搜索的功能. ...支持简单的中文分词,同时提供了Lucene.Net-2.0-004版本的源码给大家
UindexWeb搜索是一个完整的蜘蛛程序,他的...开源的DotLucene作为索引器,他也是开源的,使用C#语言编写, 与Java版本的Lucene兼容,而且只需将索引文件放到服务器目录 就能实现搜索,再加上ASP.Net的支持,简直就是必然选择.
Lucene.Net 2.0 源码+文档
一款.net平台开源CMS内容管理框架,可用于学习NHibernate、dotLucene、Castle等开源框架,以及Web建站的二次开发等用途。
DotLucene,Demo
对初学使用dotlucent作站...利用dotlucene为网站做的索引文件的应用程序。 数据库源是SQL Server,项目是用VS.NET2008开发的。 应用程序界面可以配置数据库链接,生成报告,定时执行增量索引,对单条索引进行更新操作。
DotLucene实际是Lucene的Asp.net版本,也称为lucene.net 该项目的原型为DotLuceneAPISearchDemo-1.1,后经51aspx升级为Asp.net2.0版本并改为WebApplication类型 该demo演示了Lucene的常用功能(智能分词、关键字高亮...
www.dotlucene.net.zip
Lucene结合Sql建立索引Demo源码,Lucene(这里用到的是Lucene.net版本也成为DotLucene)是一个信息检索的函数库(Library),利用它你可以为你的应用加上索引和搜索的功能。Lucene的使用者不需要深入了解有关全文检索的...