您的位置:首页 > 其它

Lucene.net 搜索引擎中中文词组分词的实现

2012-11-14 16:21 295 查看
Lucene.net标准分词器在英文分词中有非常好的体验。比喻说:在邮件,IP地址,符号处理方面,它都处理得非常好。只是很遗憾,它不支持中文词组分词。于是,我就通过修改里面的核心代码让它扩展,支持中文的分词。

目标:使它能够增加对中文词组的切词。

效果:

原句:“我是中国人!I am chiness!Email:youpeizun126@126.com;IP:172.17.34.168”

切词效果:

我/是/中国人/中国/中/国/人/Email/youpeizun126@126.com/IP/172.17.34.168

所要完成的任务:

1. 装载词库

2. 截取一段连续的中文字段

3. 进行连续的分词.

下面是设计扩展Lucene.net标准分词器的支持中文词组分词的流程图.

using System;
using System.Collections.Generic;
using System.Text;
using Lucene.Net.Analysis.Standard;
using Lucene.Net.Analysis;
using Lucene.Net.Index;
using Lucene.Net.Documents;
using System.IO;
using Lucene.Net.Analysis.Cn;
using Lucene.Net.Analysis.CJK;
//date:11-02-2007
//home page:http://www.cnblogs.com/xuanfeng
//author:peizunyou
namespace TokenizerTest

测试代代码下载

三、 五中分词器代码设计探究

从下面分词器代码设计中的静态结构图可以清晰的看出其继承关系。无论是哪个分词器,其分词最终实现的算法都是在Next()方法,想深入了解,请看其相关源码。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: