Lucene.Net中的分词算法 和 第三方分词算法
2013-10-14 21:14
447 查看
一元分词:内置的StandardAnalyzer是将英文按照空格、标点符号等进行分词,将中文按照单个字进行分词,一个汉字算一个词。代码如下
Analyzer analyzer = new StandardAnalyzer();
TokenStream tokenStream = analyzer.TokenStream("", new StringReader("北京,Hi欢迎你们大家"));
Lucene.Net.Analysis.Token token = null;
while ((token = tokenStream.Next()) != null)
{
this.listBox1.Items.Add(token.TermText()); //将分词后的结果添加到listBox中
}
二元分词:lCJKAnalyzer 使用的是网上下载的此类。 代码与上面基本一致
Analyzer analyzer = new CJKAnalyzer();
TokenStream tokenStream = analyzer.TokenStream("", new StringReader("北京,Hi欢迎你们大家"));
Lucene.Net.Analysis.Token token = null;
while ((token = tokenStream.Next()) != null)
{
this.listBox1.Items.Add(token.TermText());
}
盘古分词:基于词库的分词算法,基于一个词库进行分词,可以提高分词的成功率
要使用盘古分词,首先要引用PanGu.dll 和PanGu.Lucene.Analyzer.dll
将下载的词库Dictionaries添加到项目根路径(改名为Dict),添加对PanGu.dll(同目录下不要有Pangu.xml,那个默认的配置文件的选项对于分词结果有很多无用信息)、PanGu.Lucene.Analyzer.dll的引用,代码与上面大致相同
Analyzer analyzer = new PanGuAnalyzer();
TokenStream tokenStream = analyzer.TokenStream("", new StringReader("北京,Hi欢迎你们大家!"));
Lucene.Net.Analysis.Token token = null;
while ((token = tokenStream.Next()) != null)//next(),继续分词,如果没有更多的词,则返回null
{
this.listBox1.Items.Add(token.TermText());//得到分到的词。
}
Analyzer analyzer = new StandardAnalyzer();
TokenStream tokenStream = analyzer.TokenStream("", new StringReader("北京,Hi欢迎你们大家"));
Lucene.Net.Analysis.Token token = null;
while ((token = tokenStream.Next()) != null)
{
this.listBox1.Items.Add(token.TermText()); //将分词后的结果添加到listBox中
}
二元分词:lCJKAnalyzer 使用的是网上下载的此类。 代码与上面基本一致
Analyzer analyzer = new CJKAnalyzer();
TokenStream tokenStream = analyzer.TokenStream("", new StringReader("北京,Hi欢迎你们大家"));
Lucene.Net.Analysis.Token token = null;
while ((token = tokenStream.Next()) != null)
{
this.listBox1.Items.Add(token.TermText());
}
盘古分词:基于词库的分词算法,基于一个词库进行分词,可以提高分词的成功率
要使用盘古分词,首先要引用PanGu.dll 和PanGu.Lucene.Analyzer.dll
将下载的词库Dictionaries添加到项目根路径(改名为Dict),添加对PanGu.dll(同目录下不要有Pangu.xml,那个默认的配置文件的选项对于分词结果有很多无用信息)、PanGu.Lucene.Analyzer.dll的引用,代码与上面大致相同
Analyzer analyzer = new PanGuAnalyzer();
TokenStream tokenStream = analyzer.TokenStream("", new StringReader("北京,Hi欢迎你们大家!"));
Lucene.Net.Analysis.Token token = null;
while ((token = tokenStream.Next()) != null)//next(),继续分词,如果没有更多的词,则返回null
{
this.listBox1.Items.Add(token.TermText());//得到分到的词。
}
相关文章推荐
- ASP Lucene.net(站内搜索,分词算法)
- 盘古分词 lucene.net
- Lucene.Net 2.3.1开发介绍 —— 二、分词(三)
- Lucene自定义分词算法实现
- 重写lucene.net的分词器支持3.0.3.0版本
- lucene.net 3.0.3、结合盘古分词进行搜索的小例子(分页功能)
- 让盘古分词支持最新的Lucene.Net 3.0.3
- Lucene.Net:使用eaglet的盘古分词进行分词和搜索(转载)
- 盘古分词在 Lucene.net 2.9 版本下搜索没有结果的原因分析及盘古分词2.0版本要开发的新功能
- Lucene.Net 2.3.1开发介绍 —— 二、分词(三)
- Lucene.net站内搜索2—Lucene.Net简介和分词
- .NET使用Lucene.Net和盘古分词类库实现中文分词
- Lucene.Net2.9(中科院分词.net 版) DEMO
- Lucene.Net 2.3.1开发介绍 —— 二、分词(六)
- 【盘古分词】Lucene.Net 盘古分词 实现公众号智能自动回复
- Lucene.Net简介和分词
- Lucene.net中文分词探究
- Lucene.Net 2.3.1开发介绍 —— 二、分词(四)
- Lucene.Net 开发介绍 —— 二、分词(四)
- 关于Lucene.net中文分词后的结果着色问题