[转帖]中文分词源代码解析和下载

来源:互联网 发布:链家要自己买端口么 编辑:程序博客网 时间:2024/05/01 10:22
导读:
  写了一个分词程序,在此与大家一起分享。由于本人精力有限,希望大家能把在实际运行过程中出现的分词不准确的部分回馈给我,也便于进一步的完善。下面简要描述设计思路和算法。
  1. 分词的算法
  分词算法采用的是最大匹配算法,按从左至右正向最大匹配和从右到左反向最大匹配,当两种分词结果不一致时,按最少切分原则,取切分词数最少的一种,如果两种分词结果切分的词数一样,取反向最大匹配作为分词的结果,这种分词的结果准确率在99%以上,可以满足一般的应用和需求。
  2. 程序设计
  建立一个字典,字典由多个子字典组成,每个子字典的单词字数相同且已经排序,以独立文件的形式存储于磁盘,字典支持新单词的导入。对于要一段文字,首先过滤一次,把源文件按标点、英文字母、数字、其它符号分解成一个List,list中若包含中文的为要分词的最小单位,如:你好,你是哪的ABC人,过滤的结果为你好/,/你是哪的/ABC/人,要切分的部分有你好你是哪的人三部分,然后按分词算法对这三个部分切分。
  3. 使用方法
  首先导入词库,词库是纯文本文件,每个单词一行,然后可以开始分词,具体运行参见com.xq.Execute.java。词库我用的是“中文词库素材”,大家可以在网上搜到,在此非常感谢“中文词库素材”的作者。
  4. 测试
  没有字典时,导入“中文词库素材3.2/词库/标准词库/去除拼音字母的标准词库213663词条.TXT”这个文件用时17890毫秒,导入单词数212512,z在这个字典上再导入“中文词库素材3.2/词库/专业扩充词库/区县地名(大词库不包含).txt”用时500毫秒,导入单词:1747,速度还是比较快的。对一篇两千字的文章分词用时110毫秒,准确率在99%以上,当词库越完善,准确率会更高。总体来看,导入词库、分词速度和准确度对于一般的应用是可接受的。测试电脑配置:P43.2,1G内存。
  这次先写到这,欢迎大家与我一起交流,如果大家觉得有必要,我将用几期博客详细解析所有的源代码,我个人的研究方向是中文分词,希望今后能带给大家更好的分词源码。

本文转自
http://www.blogjava.net/xq-studio/archive/2007/09/27/148608.html
原创粉丝点击