0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

北大语言计算与机器学习研究组推出一套全新中文分词工具包pkuseg

MqC7_CAAI_1981 来源:lq 2019-01-11 15:55 次阅读

日前,北京大学语言计算与机器学习研究组研制推出一套全新中文分词工具包 pkuseg,这一工具包有如下三个特点:

高分词准确率。相比于其他的分词工具包,当使用相同的训练数据和测试数据,pkuseg 可以取得更高的分词准确率。

多领域分词。不同于以往的通用中文分词工具,此工具包同时致力于为不同领域的数据提供个性化的预训练模型。根据待分词文本的领域特点,用户可以自由地选择不同的模型。而其他现有分词工具包,一般仅提供通用领域模型。

支持用户自训练模型。支持用户使用全新的标注数据进行训练。

各项性能对比如下:

与 jieba、THULAC 等国内代表分词工具包进行性能比较:

考虑到 jieba 分词和 THULAC 工具包等并没有提供细领域的预训练模型,为了便于比较,开发团队重新使用它们提供的训练接口在细领域的数据集上进行训练,用训练得到的模型进行中文分词。他们选择 Linux 作为测试环境,在新闻数据(MSRA)、混合型文本(CTB8)、网络文本(WEIBO)数据上对不同工具包进行了准确率测试。在此过程中,他们使用第二届国际汉语分词评测比赛提供的分词评价脚本,其中 MSRA 与 WEIBO 使用标准训练集测试集划分,CTB8 采用随机划分。对于不同的分词工具包,训练测试数据的划分都是一致的;即所有的分词工具包都在相同的训练集上训练,在相同的测试集上测试。

以下是在不同数据集上的对比结果:

同时,为了比较细领域分词的优势,开发团队比较了他们的方法和通用分词模型的效果对比。其中 jieba 和 THULAC 均使用了软件包提供的、默认的分词模型:

从结果上来看,当用户了解待分词文本的领域时,细领域分词可以取得更好的效果。然而 jieba 和 THULAC 等分词工具包仅提供了通用领域模型。

目前,该工具包已经在 GitHub 开源,编译、安装和使用说明如下。

编译和安装

1. 通过 pip 下载(自带模型文件)

pip install pkuseg之后通过 import pkuseg 来引用

2. 从 github 下载(需要下载模型文件,见预训练模型)

将 pkuseg 文件放到目录下,通过 import pkuseg 使用模型需要下载或自己训练。

使用方式

1. 代码示例

代码示例1 使用默认模型及默认词典分词import pkusegseg = pkuseg.pkuseg() #以默认配置加载模型text = seg.cut('我爱北京***') #进行分词print(text)

代码示例2 设置用户自定义词典import pkuseglexicon = ['北京大学', '北京***'] #希望分词时用户词典中的词固定不分开seg = pkuseg.pkuseg(user_dict=lexicon) #加载模型,给定用户词典text = seg.cut('我爱北京***') #进行分词print(text)

代码示例3import pkusegseg = pkuseg.pkuseg(model_name='./ctb8') #假设用户已经下载好了ctb8的模型并放在了'./ctb8'目录下,通过设置model_name加载该模型text = seg.cut('我爱北京***') #进行分词print(text)

代码示例4import pkusegpkuseg.test('input.txt', 'output.txt', nthread=20) #对input.txt的文件分词输出到output.txt中,使用默认模型和词典,开20个进程

代码示例5import pkusegpkuseg.train('msr_training.utf8', 'msr_test_gold.utf8', './models', nthread=20) #训练文件为'msr_training.utf8',测试文件为'msr_test_gold.utf8',模型存到'./models'目录下,开20个进程训练模型

2. 参数说明

pkuseg.pkuseg(model_name='ctb8', user_dict=[])model_name 模型路径。默认是'ctb8'表示我们预训练好的模型(仅对pip下载的用户)。用户可以填自己下载或训练的模型所在的路径如model_name='./models'。user_dict 设置用户词典。默认不使用词典。填'safe_lexicon'表示我们提供的一个中文词典(仅pip)。用户可以传入一个包含若干自定义单词的迭代器。

pkuseg.test(readFile, outputFile, model_name='ctb8', user_dict=[], nthread=10)readFile 输入文件路径outputFile 输出文件路径model_name 同pkuseg.pkuseguser_dict 同pkuseg.pkusegnthread 测试时开的进程数

pkuseg.train(trainFile, testFile, savedir, nthread=10)trainFile 训练文件路径testFile 测试文件路径savedir 训练模型的保存路径nthread 训练时开的进程数

预训练模型

分词模式下,用户需要加载预训练好的模型。开发团队提供了三种在不同类型数据上训练得到的模型,根据具体需要,用户可以选择不同的预训练模型。以下是对预训练模型的说明:

MSRA: 在MSRA(新闻语料)上训练的模型。新版本代码采用的是此模型。

下载地址:https://pan.baidu.com/s/1twci0QVBeWXUg06dK47tiA

CTB8: 在CTB8(新闻文本及网络文本的混合型语料)上训练的模型。

下载地址:https://pan.baidu.com/s/1DCjDOxB0HD2NmP9w1jm8MA

WEIBO: 在微博(网络文本语料)上训练的模型。

下载地址:https://pan.baidu.com/s/1QHoK2ahpZnNmX6X7Y9iCgQ

开发团队预训练好其它分词软件的模型可以在如下地址下载:

jieba: 待更新

THULAC: 在 MSRA、CTB8、WEIBO、PKU 语料上的预训练模型,下载地址:https://pan.baidu.com/s/11L95ZZtRJdpMYEHNUtPWXA,提取码:iv82

其中 jieba 的默认模型为统计模型,主要基于训练数据上的词频信息,开发团队在不同训练集上重新统计了词频信息。对于 THULAC,他们使用其提供的接口进行训练(C++版本),得到了在不同领域的预训练模型。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器学习
    +关注

    关注

    66

    文章

    8192

    浏览量

    131242
  • 数据集
    +关注

    关注

    4

    文章

    1186

    浏览量

    24466

原文标题:学界 | 北大开源中文分词工具包 pkuseg

文章出处:【微信号:CAAI-1981,微信公众号:中国人工智能学会】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    PIC 语言工具包问题

    大家好,PIC 我是新手,有个简单的问题请教下,就是我导入个mcp的,mplab会报语言工具包不对,这个要如何处理,因我导的是网上下下
    发表于 04-19 14:00

    跪求sound and vibration工具包中文手册。

    跪求sound and vibration工具包中文手册。
    发表于 09-24 10:46

    Hanlp等七种优秀的开源中文分词库推荐

    ,不过目前仍在维护的且质量较高的并不多。下面整理了些个人认为比较优秀的中文分词库,以供大家参考使用。1、HanLP —— 汉语言处理Ha
    发表于 10-12 11:23

    自然语言处理中的分词问题总结

    研究院的技术经理牟小峰老师讲授的语言处理中的分词问题。如何界定分词中文分词指的是将
    发表于 10-26 13:48

    Python人工智能学习工具包+入门与实践资料集锦

    ,之后渐渐成为我工作中的第辅助脚本语言,虽然开发语言是C/C++,但平时的很多文本数据处理任务都交给了Python。这些年来,接触和使用了很多Python工具包,特别是在文本处理,科
    发表于 11-22 14:46

    目前常用的自然语言处理开源项目/开发包大汇总

    中文词法分析工具包,具有中文分词和词性标注功能。开发语言:网址:THULAC:个高效的
    发表于 11-26 10:31

    简单有效的多标准中文分词详解

    语言习惯本来就与大陆不同。这些差异导致无法简单合并各方语料形成个更大量级的语料库,只能在某个语料库上训练,浪费了其他标注数据。已经有工作开始研究如何利用多方语料库来联合
    发表于 12-28 14:39

    求LabVIEW2014 机器学习工具包

    有哪位大神有labview2014 机器学习工具包啊,分享下,急需!!非常感谢!
    发表于 03-15 23:08

    分词工具Hanlp基于感知机的中文分词框架

    结构化感知机标注框架是一套利用感知机做序列标注任务,并且应用到中文分词、词性标注与命名实体识别这三个问题的完整在线学习框架,该框架利用1个算法解决3个问题,时自治同意的系统,同时三个任
    发表于 04-03 11:28

    NLPIR汉语分词融合机器学习推动行业应用

    。  编码转换:自动识别内容的编码,并把编码统转换为其他编码。  中文分词技术应时代的要求应运而生,在很大程度上满足了人们对自然语言处理的需要,解决了人和
    发表于 04-19 11:50

    中文分词研究难点-词语切分和语言规范

    学习模型学习词语切分的规律(称为训练),从而实现对未知文本的切分。随着大规模语料库的建立,统计机器学习方法的研究和发展,基于统计的
    发表于 09-04 17:39

    ARM软件开发工具包2.50版参考指南

    ARM软件开发工具包(SDT)由一套应用程序以及支持文档和示例组成,使您能够为ARM系列RISC处理器编写和调试应用程序。 您可以使用SDT来开发、生成和调试C、C++或ARM汇编语言程序。
    发表于 08-21 07:17

    基于表示学习方法的中文分词系统

    将词向量聚类,并将聚类结果作为条件随机场(CRF)模型的特征进行训练;最后基于该语言模型进行分词和未登录词识别。对词向量的维数、聚类数及不同聚类算法对分词的影响进行了分析。基于第四届自然语言
    发表于 12-11 14:35 0次下载
    基于表示<b class='flag-5'>学习</b>方法的<b class='flag-5'>中文</b><b class='flag-5'>分词</b>系统

    北大开源了一个中文分词工具包,名为——PKUSeg

    多领域分词:不同于以往的通用中文分词工具,此工具包同时致力于为不同领域的数据提供个性化的预训练模型。根据待
    的头像 发表于 01-16 10:29 6523次阅读
    <b class='flag-5'>北大</b>开源了一个<b class='flag-5'>中文</b><b class='flag-5'>分词</b><b class='flag-5'>工具包</b>,名为——<b class='flag-5'>PKUSeg</b>

    Microchip(微芯)推出MPLAB机器学习开发工具包

    机器学习(ML)正成为嵌入式设计人员开发或改进各种产品的标准要求。为满足这一需求,Microchip(微芯)近日推出全新的MPLAB®机器
    的头像 发表于 09-12 18:26 706次阅读
    Microchip(微芯)<b class='flag-5'>推出</b>MPLAB<b class='flag-5'>机器</b><b class='flag-5'>学习</b>开发<b class='flag-5'>工具包</b>