可定制的分词库——Yaha(哑哈)分词
在线测试地址:http://yaha.v-find.com/ 部署于GAE yahademo.appspot.com
Yaha分词主要特点是把分词过程分成了4个阶段,每个阶段都可以让用户加入自己的一些定制,以面向不同的用户需求。

这是一个最简单真白的示例:
# -*- coding=utf-8 -*-
import sys, re
from yaha import Cuttor, RegexCutting, SurnameCutting2, SuffixCutting

str = '唐成真是唐成牛的长寿乡是个1998love唐成真诺维斯基'
cuttor = Cuttor()

# Get 3 shortest paths for choise_best
#cuttor.set_topk(3)

# Use stage 1 to cut english and number
cuttor.set_stage1_regex(re.compile('(\d+)|([a-zA-Z]+)', re.I|re.U))

# Or use stage 2 to cut english and number
#cuttor.add_stage(RegexCutting(re.compile('\d+', re.I|re.U)))
#cuttor.add_stage(RegexCutting(re.compile('[a-zA-Z]+', re.I|re.U)))

# Use stage 3 to cut chinese name
#surname = SurnameCutting()
#cuttor.add_stage(surname)

# Or use stage 4 to cut chinese name
#surname = SurnameCutting2()
#cuttor.add_stage(surname)

# Use stage 4 to cut chinese address or english name
#suffix = SuffixCutting()
#cuttor.add_stage(suffix)

seglist = cuttor.cut(str)
print ','.join(list(seglist))

#seglist = cuttor.cut_topk(str, 3)
#for seg in seglist:
# print ','.join(seg)
阶段讲解
stage 1是在分句中实现,通过正则可直接将数字或英文单词分成独立的词,生成独立的这些词不再参与下一步的分词。
stage 2在创建有向无环图之前实现,对分句进行预扫描,加入一些可能形成的词,并赋予一定的概率。
stage 3在创建有向无环图期间实现,从字典得到词的概率,或通过一些匹配模式得到可能的词,赋予一定概率。
stage 4在得到有向无环图的最大概率之后(程序实现当中是最短路径),对一些不能成词的单字再继续进行处理;
或得到最短的多条路径之后,根据用户的兴趣得到最终的一条路径。若用户有兴趣,可以在这一步实现对词性的分析。

最新文章

  1. python基础(1)
  2. Linux 进程与线程四(加锁--解锁)
  3. UINavigationController的使用(多视图控制器)
  4. 基于python yield机制的异步操作同步化编程模型
  5. spring配置中引入properties
  6. Struts1.x下使用jquery的Ajax获取后台数据
  7. 使用Qt报错error while building deploying project
  8. Javascript中好用更改时间的方法
  9. Python基础入门教程(4)(数据类型)
  10. 201521044091 《Java程序设计》第12周学习总结
  11. PHP中isset和empty的区别(最后总结)
  12. 质量管理:PDCA循环
  13. PHP MVC框架核心类
  14. STL基础复习
  15. Unity3D 在Update中不要过多地修改Transform 信息
  16. FakeGame 集成总结
  17. xca自签发证书解决chrome浏览器证书不可信问题记录
  18. Autel MaxiSys Pro MS908P Software Update Gudie
  19. c++的读入txt文件(转)
  20. http 协议三次握手

热门文章

  1. 淘宝开放平台php-sdk测试 获取淘宝商品信息(转)
  2. 关于js sort排序方法
  3. SiteServer CMS 5.0 源码入门
  4. 在我的电脑右键 Manage 拒绝访问的解决方法
  5. Android 基础-3.0 数据存储方式
  6. UTF-8 delphi 函数
  7. php 简单笔记
  8. Java_基础_02_ThreadLocal
  9. cocos2d-x 之 CCParticleBatchNode CCParallaxNode
  10. 【leetcode刷题笔记】Sum Root to Leaf Numbers