当前位置: 首页 > news >正文

面向搜索的中文分词设计

我开发的中文分词程序,开源发布 ,其实哪个中文分词的整体架构是比较糟糕的。架构是否优秀决定了很多构思无法实现,思考了比较久,最近准备开发第二版,抛弃以前的架构,重新实现。下面是一些设计和构思。计划是两周时间开发完成beta版(如果因为工作关系,也有可能放弃),主要是希望和大家交流下设计思想,我觉得构思很重要,想得实现不了,可以慢慢研究,想不到才是头大的问题,希望能和大家一起交流下:

新版中文分词构想(面向搜索):

分解流程:
1,分段,根据基本的分隔符号对文本进行分段,比如,。;!!,; \r\n等分解文本
2,分字符区,即分解成纯粹的 中文文本区 ,数字区 ,综合字符区(包括英文,数字或者其他符号),分割符号区
3,对中文文本区调用中文分词算法,对数字区区按空格分词,对综合字符区调用英文分词算法,分割符号区保留
4,对初步分解的单字中文进行中文姓名识别。
5,结合前后词,对单字中文和数字做日期识别分析
6,未登陆词分析与识别

算法构想:
1,中文分词算法
  匹配模式:正向最大化,反向最大化,概率最大化
  也会考虑参考SharpICTCLAS系统的NShortpath分词算法(不过目前还没看懂,迟钝的很)
 
2,中文姓名识别算法
  主要根据中文姓,加上初步分解出的单字中文进行分析:基于词库分析单字中文作为名的概率。
 
3,日期识别算法
  将分解出的单字中文结合前后字符,判断是否为以下格式之一:
  数字+年+数字+月+数字+日
  数字+年+数字+月
  数字+月+数字+日
  数字+月
  数字+日
 
4,新词识别(未登陆词识别)
  1,将分解出的单字中文判断排除常用单词(StopWords)外,作为单字出现的概率。所以需要一个单字字库,包括单字出现概率的信息。
  当然也可以将现有词库对词进行分解成单字概率分布模型库(具体如何设计还没考虑好),提出来和大家交流下:
  单字出现在第一个字符概率 出现在中间的概率 出现在尾部的概率
 
  2,将上叙分析的新词进行概率分析,比如在全文中出现超过N次(比如2次,次数越大,作为一个词的可能性越高),以提高新词识别的准确度;
  不过如此大动作的分析,性能估计有很大问题。
 
5,英文分词算法
  1,将全部字符处理为半角字符。
  2,将全部字符处理为小写字符。
  3,识别各种英文字符格式,比如电子邮件格式,网址格式等等。(用正则表达式)
  4,处理英文形式问题:比如将所有英文复数形式转换成单数形式。将各种简写形式处理为同一形式等等(这部分有兴趣可以参考dotlucene和snowball.net对英文处理的方式,这个部分我也没有深入研究过。)

转载于:https://www.cnblogs.com/kwklover/archive/2007/03/19/679425.html


http://www.taodudu.cc/news/show-647369.html

相关文章:

  • 【physx/wasm】在physx中添加自定义接口并重新编译wasm
  • excel---常用操作
  • Lora训练Windows[笔记]
  • linux基础指令讲解(ls、pwd、cd、touch、mkdir)
  • InnoDB 事务处理机制
  • 启明云端ESP32 C3 模组WT32C3通过 MQTT 连接 AWS
  • SQL Server 2005与2000写法上的差别
  • CG笔记之一——透视投影
  • SQLite B+树实现代码
  • Some thoughts on my own O/R Mapping or Code Generation tools
  • [翻译] 构建完美的WPF开发工作站
  • J2EE Architecture(4)
  • JSF优点(转载自中国IT实验室)
  • 如何自学JSP。--摘抄http://hi.baidu.com/comasp
  • max与top的效率
  • 精确计算代码执行时间
  • 理解 ActivityExecutionContextManager
  • Linq 演变的过程(delegate = Lamb = Linq)
  • 光阴四载,梦想在望
  • CSS常用文本属性
  • VSS2005 添加文件夹方法!
  • 一个不错的SQL储存过程分页,储存过程+Repeater,如果只是浏览数据的话,快就一个字...
  • DotNetNuke与MemberShip的结合(五年版) 三步汇总
  • 快速恢复Word、Excel的默认初始设置
  • AnkhSVN 1.0.2778 简体中文版发布
  • [转]获取xml节点值和属性值(兼容ie和firefox)
  • 请问如何把.net framework框架集成在安装程序里头?
  • 修改资料时碰到的问题,
  • 过滤脚本(C#,script,iframe,html)
  • 聊聊我对黑客技术的思考
  • 以Post方式发送数据采用WebClient
  • 今天20号!
  • discuz nt 安装,完全攻略。
  • SQL概述及在网络安全中的应用
  • F41G-UT 安装Windows server 2003系统后无法安装显卡驱动的解决办法
  • 《算法设计与分析基础》Chapt 2 算法效率分析基础