最近优化NER识别过程中,需要分词边界信息,现有的开源分词系统HANLP没有垂直领域词典的支持,效果差强人意。赶上pku开源了pkuseg,利用一些时间学习一下,记录一下个人一点见解。
github地址
不得不说pku对于开发者非常友好,包括训练、场景模型切换(msra/新闻领域、ctb8/混合领域、weibo/网页领域)、硬编码词典加载、模型支持对文件的处理、支持python多进程处理、提供预训练好的模型。
论文(Jingjing Xu, Xu Sun. Dependency-based Gated Recursive Neural Network for Chinese Word Segmentation. ACL 2016: 567-572)是12年,有兴趣的可以去网上看一下,基于CRF来训练的,得分函数中不仅结合了unigram和bigram等word feature、重复出现词特征,还加入了High Dimensional Edge Features 也就是观察序列的转换特征,以往传统的CRF只有隐藏状态的转移,代码中CRF模板(7.c-1c.路.之 316457,第一位为特征在整个特征组的位置,c-1c:前一个字,当前字,316457特征的索引),可以一同探讨。CRF优化方面论文中提出了基于词频自适应随机梯度下降方法,词频越高,梯度优化步调放缓。损失函数方面加入L2正则化。论文另一个创新之处为此模型还可以用于新词发现,结合CRF条件概率(p>0.5)和现有词典。实验结果在各个竞赛数据集(微软研究院、香港城市大学、北京大学)上取得很好的P值及F值。对于处理速度方面,在个人笔记本上,1045篇新闻文章,10进程,220s(和个人硬件环境有关)。以下为测试代码,主要参考的github文档。

# seg = pkuseg.pkuseg()
# text = '四川人用普通话与川普通电话'
# text = '欢迎 新老师生前来就餐'
#text = '沿海南方向前进'
# text = '黑天鹅和灰犀牛是两个突发事件'
# text = '统计局局长宁长吉'
# text = seg.cut(text)
# print(text)#带有用户自定义词典的
# user_dictionary = ['马桶LV']
# seg = pkuseg.pkuseg(user_dict=user_dictionary)
# text = seg.cut('王欣发布马桶LVapp')
# print(text)# 新闻分词模型、网络文本模型、微博数据模型
seg = pkuseg.pkuseg(model_name='../pkuseg/models/test')
text = seg.cut('沿海南方向前进')
print(text)#对文件进行分词
# from datetime import datetime
# seg = pkuseg.pkuseg(model_name='../pkuseg/models/msra')
# start = datetime.now()
# pkuseg.test('./data.txt','./data_seg.txt',nthread = 10)
# end = datetime.now()
# print(end - start)#训练模型
# pkuseg.train('./data_seg.txt','./data_seg.txt','./models',nthread=20)

本人在64G服务器上训练,训练过程进程,20进程,语料大小为74M,加载完成消耗内存61.7%。以下为训练log,仅供参考,还没有训练完成。
length = 1 : 2646488
length = 2 : 2476114
length = 3 : 294463
length = 4 : 132263
length = 5 : 47769
length = 6 : 28708
length = 7 : 31896
length = 8 : 26539
length = 9 : 29071
length = 10 : 31487
length = 11 : 33062
length = 12 : 33925
length = 13 : 33907
length = 14 : 34027
length = 15 : 34071
getting feature set
file /tmp/tmp64i03_wp/.pkuseg/temp/train.txt converting…
file converting…
file converting…

start training…

reading training & test data…
done! train/test data sizes: 868968/1025

r: 1
iter1 diff=1.00e+100 train-time(sec)=33362.17 f-score=89.92%

开源分词系统pkuseg学习相关推荐

  1. 北京大学开源分词工具pkuseg 初试与使用感受

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/meiqi0538/article/de ...

  2. 准确率创新高,北大开源中文分词工具包 pkuseg

    北京大学近日开源了一个全新的中文分词工具包 pkuseg ,相比于现有的同类开源工具,pkuseg 大幅提高了分词的准确率. pkuseg 由北大语言计算与机器学习研究组研制推出,具备如下特性: 高分 ...

  3. 基于HTTP协议的开源中文分词系统:HTTPCWS 1.0.0 发布

    基于HTTP协议的开源中文分词系统:HTTPCWS 1.0.0 发布[原创] 发布版本: httpcws 1.0.0 (最新版本:2009-08-10发布) 程序网址:http://code.goog ...

  4. 几款开源的中文分词系统

    以下介绍4款开源中文分词系统 python环境下,jieba也不错,实现词性分词性能据说不错. 1.ICTCLAS – 全球最受欢迎的汉语分词系统 中文词法分析是中文信息处理的基础与关键.中国科学院计 ...

  5. Java 开源中文分词器Ansj 学习教程

    Java有11大开源中文分词器,分别是word分词器,Ansj分词器,Stanford分词器,FudanNLP分词器,Jieba分词器,Jcseg分词器,MMSeg4j分词器,IKAnalyzer分词 ...

  6. 利用现有资源快速实现汉语专用分词系统

    利用现有资源快速实现汉语专用分词系统<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office&q ...

  7. StoneDT开源舆情系统大数据技术栈介绍

    我们目前开源的 舆情系统 分为3个部分,整个系统使用了多种开源技术组件和开源框架,涵盖涉及技术领域广泛,例如:分布式计算.大数据.人工智能.数据中台.数据挖掘.深度学习.java和python的大量实 ...

  8. 基于Java实现的中文分词系统

    资源下载地址:https://download.csdn.net/download/sheziqiong/85941192 资源下载地址:https://download.csdn.net/downl ...

  9. 首个开源 Linux 系统登陆火星,占有率超 Windows,一同登录还有一款安卓手机芯片...

    来源| 量子位  作者 | 贾浩楠 萧箫  公众号 QbitAI "确认着陆!毅力号安全到达火星表面." 就在昨日凌晨4点55分,美国"毅力号"不经变轨,直接冲 ...

  10. java系统缓存应用_著名java开源缓存系统 【zz】

    目前在学习缓存的一些开源代码,查询到 一些资料分享给大家 以下是几个著名java开源缓存系统的介绍: OSCacheOSCache是个一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何J ...

最新文章

  1. wordpress rest api 登录_WordPress版微信小程序3.5版发布
  2. pix2pixhd_一文读懂GAN, pix2pix, CycleGAN和pix2pixHD
  3. 定期清空Linux系统日志文件
  4. 机器学习-关联之FP-Growth算法原理及实战
  5. Hadoop之Shuffle机制详解
  6. ajax跨域请求(cors实现),ajax跨域请求(CORS实现)
  7. a.pop啥意思python_python中pop什么意思
  8. 怎么查看linux日志里请求量最高的url访问最多的_实用的Linux高级命令,开发运维都要懂!...
  9. group by两个条件
  10. c++ cout 控制精度、宽度、进制
  11. auto dvr_什么是“广播DVR服务器”,为什么在我的PC上运行它?
  12. Java 第一阶段建立编程思想 【面向对象编程(中级部分)】
  13. SmartFoxServer 2X管理工具
  14. 原创分享 | 如何从非技术层面实现数据驱动
  15. 阿里云物联网平台之创建产品与设备
  16. 谷歌chrome浏览器源码分析
  17. 长篇好文,手机充电放电架构与工作流程原理讲解
  18. springboot远程心电诊断系统毕业设计源码091759
  19. 定义计划协议凭证类型
  20. DEEP DOUBLE DESCENT: WHERE BIGGER MODELS AND MORE DATA HURT

热门文章

  1. shell 小米system锁adb_小米解锁Bootloder和system分区,获取完整root
  2. xp系统打印服务器自动关闭,XP系统服务管理Print spooler自动关闭的解决办法
  3. TTL与CMOS电路
  4. plsql破解的办法
  5. java简单计算器课程设计_简单计算器JAVA课程设计
  6. 2525 小b的字符串(模拟)
  7. QTreeWidget使用
  8. 侯捷《深入浅出MFC》中“Hello, MFC”如何改写到VS2012中
  9. iOS申请真机调试证书 图文详解
  10. 【Android】超级终端命令