开源中文分词引擎大比拼

本贴最后更新于 2659 天前,其中的信息可能已经事过景迁

在逐渐步入 DT(Data Technology)时代的今天,自然语义分析技术越发不可或缺。对于我们每天打交道的中文来说,并没有类似英文空格的边界标志。而理解句子所包含的词语,则是理解汉语语句的第一步。汉语自动分词的任务,通俗地说,就是要由机器在文本中的词与词之间自动加上空格。

一提到自动分词,通常会遇到两种比较典型的质疑。一种质疑是来自外行人的:这件事看上去平凡之极,好像一点儿也不“fancy”,会有什么用呢?另一种质疑则是来自业内:自动分词研究已经进行了数年,而网上也存在各种不同的开放分词系统,但对于实际商用似乎也未见一个“即插即用”的系统。

那么,目前常见的开放分词引擎,到底性能如何呢?为了进行测试,我们调研了 11 款网上常见的并且公开提供服务的分词系统,包括:

分词的客观量化测试离不开标注数据,即人工所准备的分词“标准答案”。在数据源方面,我们将测试分为:

  1. 新闻数据:140 篇,共 30517 词语;

  2. 微博数据:200 篇,共 12962 词语;

  3. 汽车论坛数据(汽车之家)100 篇:共 27452 词语;

  4. 餐饮点评数据(大众点评):100 条,共 8295 词语。

准确度计算规则:

  1. 将所有标点符号去除,不做比较
  2. 参与测试的部分系统进行了实体识别,可能造成词语认定的不统一。我们将对应位置替换成了人工标注的结果,得到准确率估算的上界。
  3. 经过以上处理,用 SIGHAN 分词评分脚本比较得到最终的准确率,召回率和 F1 值。

以上所有数据采用北大现代汉语基本加工规范对所有数据进行分词作为标准。具体数据下载地址请参见附录。通过这四类数据综合对比不同分词系统的分词准确度。

上图为参与比较的 10 款分词引擎在不同数据的分词准确度结果。可以看出,在所测试的四个数据集上,BosonNLP 和哈工大语言云都取得了较高的分词准确率,尤其在新闻数据上。因为庖丁解牛是将所有可能成词的词语全部扫描出来(例如:“最不满意”分为:“最不 不满 满意”),与其他系统输出规范不同,因而不参与准确率统计。

为了更直接的比较不同数据源的差别,我们从每个数据源的测试数据中抽取比较典型的示例进行更直观的对比。

【新闻数据】

新闻数据的特点是用词规整,符合语法规则,也是普遍做得比较不错的一个领域。对比其他数据源,有 7 家系统都在新闻领域达到最高。包括 IKAnalyzer、盘古分词、搜狗分词、新浪云、NLPIR、语言云、BosonNLP。并且有三家系统准确率超过 90%。

样例:香港 中文 大学 将 来 合肥 一中 进行 招生 宣传 今年 在 皖 招 8 人 万家 热线 安徽 第一 门户

【微博数据】

微博数据用词多样、话题广泛,并常包含错别字及网络流行词。能够比较全面的体现每家分词系统的准确度。

样例:补 了 battle 赛 峰暴班 的 两 个 弟弟 妹妹 @ 杨宝心 @ 修儿 一个 是 我 很 挺 的 好 弟弟 一个 是 我 推荐 进 好声音 的 妹子 虽然 都 在 battle 阶段 都 下来 了 但是 我 依然 像 之前 那样 觉得 你们 非常 棒

【汽车论坛】

汽车数据是针对汽车领域的专业评价数据,会出现很多的专业术语。例如示例中的“胎噪”、“风燥”等,如果系统没有足够强大的训练词库或领域优化,会使准确率有较大程度降低。比较有意思的是,对比其他数据源,有 3 家系统都在汽车论坛领域达到最高:腾讯文智、SCWS 中文分词、结巴分词。

样例:舒适性 胎噪 风噪 偏 大 避震 偏 硬 过 坎 弹跳 明显

【餐饮点评】

餐饮点评数据为顾客评论数据,更偏重口语化。会出现很多类似“闺蜜”、“萌萌哒”口语化词语和很多不规范的表达,使分词更加困难。

样例:跟 闺蜜 在 西单 逛街 想 吃 寿司 了 在 西单 没 搜 到 其他 的 日料店 就 来 禾绿 了 我们 俩 都 觉得 没 以前 好 了

各家系统对于多数简单规范的文本的分词已经达到很高的水平。但在仔细对比每一家中文分词后依旧发现切分歧义词和未登陆词(即未在训练数据中出现的词)仍然是影响分词准确度的两大“拦路虎”。

1.切分歧义:根据测试数据的切分结果,一类属于机器形式的歧义,在真实语言环境下,只有唯一可能的正确切分结果,称其为伪歧义。另一类有两种以上可实现的切分结果,称为真歧义。由于真歧义数据无法比较正确或者错误。所有我们着重举例来比较各家系统对伪歧义的处理效果。

正确: 在 伦敦 奥运会 上 将 可能 有 一 位 沙特阿拉伯 的 女子

(BosonNLP、新浪云、语言云、NLPIR、腾讯文智)

错误: 在 伦敦 奥运会 上将 可能 有 一 位 沙特阿拉伯 的 女子

(PHP 结巴分词、SCWS 中文分词、搜狗分词、庖丁解牛)

示例中原意指伦敦奥运会可能有一位沙特阿拉伯的女子,错误分词的意思是指上将(军衔)中有一位是沙特阿拉伯的女子,句意截然不同。当然,分析的层次越深,机器对知识库质量、规模等的依赖性就越强,所需要的时间、空间代价也就越大。

2.未登录词:未登录词大致包含三大类:

a) 新涌现的通用词:类似“神马”、“纳尼”、“甩卖”、“玫瑰金”等新思想、新事物所带来的新词汇,不管是文化的、政治的、还是经济的,在人们的生活中不断涌现。同时很多词语也具有一定的时效性。

b) 专业术语:是相对日常用语而言的,一般指的某一行业各种名称用语,大多数情况为该领域的专业人士所熟知。这种未登录词理论上是可预期的。能够人工预先添加到词表中(但这也只是理想状态,在真实环境下并不易做到)。

c) 专有名词:如中国人名、外国译名、地名、公司名等。这种词语很多基本上不可通过词典覆盖,考验分词系统的新词识别能力。

【新涌现的通用词或专业术语】

示例中的蓝色字包括专业术语:“肚腩”、“腹肌”、“腹直肌”、“腹外斜肌”、“腹横肌”;新涌现的通用词:“人鱼线”、“马甲线”。大多数的系统对于示例文本的分词结果都不够理想,例如:“大肚 腩”(SCWS 中文分词) “腹 直 肌 腹 外 斜 肌”(搜狗分词、IKAnalyer、NLPIR、SCWS 中文分词)、“人 鱼线”(PHP 结巴分词)。总的来说这两种类型的数据每家系统都存在一定的缺陷,相对而言哈工大的语言云在这方面表现的较好。

本 季 最 强 家庭 瘦 腰 计划 彻底 告别 大 肚腩 没有 腹肌 的 人生 是 不 完整 的 平面 模特 yanontheway 亲身 示范 的 9 个 动作 彻底 强化 腹直肌 腹外斜肌 腹内斜肌 以及 腹横肌 每个 动作 认真 做 足 50 次 一定 要 坚持 做 完美 的 人鱼线 性感 的 马甲线 都 要 我们 自己 去 争取

【专有名词】

示例出现的专有名词包括“蒂莫西伊斯顿”(姓名)、“英国”“意大利”“北欧”(地点)、“金斯敦”(机构名)、“伊丽莎白 格林希尔兹”(机构名)。而这种用词典无法穷尽的专有名词也成为各家分词准确率降低的重要原因。其中搜狗分词、IKAnalyer、PHP 结巴分词、腾讯文智、SCWS 中文分词在新词识别时较为谨慎,常将这类专有名词切分成多个词语。

油画 英国 画家 蒂莫西伊斯顿 唯美 风 油画 timothy easton 毕业 于 英国 金斯敦 艺术 学院 曾 获 伊丽莎白 格林希尔兹 基金会 奖 得以 前往 意大利 和 北欧 学习 一 年 的 机会

当然在分词准确度可以接受的情况下,很多细节问题,包括是否有出错情况、是否支持各种字符、是否标注词性等都可能让我们望而却步。在分词颗粒度选择当中,BosonNLP、SCWS、盘古分词、结巴分词、庖丁解牛都提供了多种选择,可以根据需求来采用不同的分词粒度。与北大的分词标准对比来说,新浪云默认的分词粒度较大,而搜狗分词、腾讯文智分词粒度相对较小。除此之外,BosonNLP、新浪云、NLPIR、腾讯文智同时提供了实体识别、情感分析、新闻分类等其他扩展服务。下表给出了各家系统在应用方面的详细对比。

中文分词是其他中文信息处理的基础,并且在很多领域都有广泛的应用,包括搜索引擎、机器翻译(MT)、语音合成、自动分类、自动摘要、自动校对等等。随着非结构化文本的广泛应用,中文分词等文本处理技术也变得越来越重要。通过评测可以看出,部分开放分词系统在不同领域已经达到较高准确率。对于数据分析处理的从业者,相信在此之上构建数据分析系统、人机交互平台,更能够起到事半功倍的效果。

注意:分词数据准备及评测由__BosonNLP__完成。

附录

评测数据地址 http://bosonnlp.com/dev/resource

各家分词系统链接地址

BosonNLP:http://bosonnlp.com/dev/center

IKAnalyzer:http://www.oschina.net/p/ikanalyzer

NLPIR:http://ictclas.nlpir.org/docs

SCWS 中文分词:http://www.xunsearch.com/scws/docs.php

结巴分词:https://github.com/fxsjy/jieba

盘古分词:http://pangusegment.codeplex.com/

庖丁解牛:https://code.google.com/p/paoding/

搜狗分词:http://www.sogou.com/labs/webservice/

腾讯文智:http://www.qcloud.com/wiki/API%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3

新浪云:http://www.sinacloud.com/doc/sae/python/segment.html

语言云:http://www.ltp-cloud.com/document

转载收藏之

  • 中文分词
    4 引用 • 3 回帖
  • 开源

    Open Source, Open Mind, Open Sight, Open Future!

    409 引用 • 3585 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖 • 1 关注
  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 30 关注
  • 尊园地产

    昆明尊园房地产经纪有限公司,即:Kunming Zunyuan Property Agency Company Limited(简称“尊园地产”)于 2007 年 6 月开始筹备,2007 年 8 月 18 日正式成立,注册资本 200 万元,公司性质为股份经纪有限公司,主营业务为:代租、代售、代办产权过户、办理银行按揭、担保、抵押、评估等。

    1 引用 • 22 回帖 • 786 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    56 引用 • 25 回帖 • 3 关注
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 138 关注
  • LeetCode

    LeetCode(力扣)是一个全球极客挚爱的高质量技术成长平台,想要学习和提升专业能力从这里开始,充足技术干货等你来啃,轻松拿下 Dream Offer!

    209 引用 • 72 回帖 • 1 关注
  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖 • 2 关注
  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 720 关注
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    58 引用 • 22 回帖 • 1 关注
  • 支付宝

    支付宝是全球领先的独立第三方支付平台,致力于为广大用户提供安全快速的电子支付/网上支付/安全支付/手机支付体验,及转账收款/水电煤缴费/信用卡还款/AA 收款等生活服务应用。

    29 引用 • 347 回帖
  • Excel
    31 引用 • 28 回帖
  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1439 引用 • 10067 回帖 • 492 关注
  • CSDN

    CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

    14 引用 • 155 回帖
  • 生活

    生活是指人类生存过程中的各项活动的总和,范畴较广,一般指为幸福的意义而存在。生活实际上是对人生的一种诠释。生活包括人类在社会中与自己息息相关的日常活动和心理影射。

    230 引用 • 1454 回帖
  • Wide

    Wide 是一款基于 Web 的 Go 语言 IDE。通过浏览器就可以进行 Go 开发,并有代码自动完成、查看表达式、编译反馈、Lint、实时结果输出等功能。

    欢迎访问我们运维的实例: https://wide.b3log.org

    30 引用 • 218 回帖 • 640 关注
  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    117 引用 • 99 回帖 • 209 关注
  • Oracle

    Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。

    107 引用 • 127 回帖 • 364 关注
  • 叶归
    5 引用 • 16 回帖 • 9 关注
  • Typecho

    Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。

    12 引用 • 67 回帖 • 441 关注
  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 659 关注
  • C

    C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    85 引用 • 165 回帖
  • 招聘

    哪里都缺人,哪里都不缺人。

    188 引用 • 1057 回帖
  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1063 引用 • 3455 回帖 • 167 关注
  • Sillot

    Insights(注意当前设置 master 为默认分支)

    汐洛彖夲肜矩阵(Sillot T☳Converbenk Matrix),致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点。其中汐洛绞架(Sillot-Gibbet)基于自思源笔记(siyuan-note),前身是思源笔记汐洛版(更早是思源笔记汐洛分支),是智慧新录乄终端(多端融合,移动端优先)。

    主仓库地址:Hi-Windom/Sillot

    文档地址:sillot.db.sc.cn

    注意事项:

    1. ⚠️ 汐洛仍在早期开发阶段,尚不稳定
    2. ⚠️ 汐洛并非面向普通用户设计,使用前请了解风险
    3. ⚠️ 汐洛绞架基于思源笔记,开发者尽最大努力与思源笔记保持兼容,但无法实现 100% 兼容
    29 引用 • 25 回帖 • 105 关注
  • 旅游

    希望你我能在旅途中找到人生的下一站。

    93 引用 • 901 回帖
  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    315 引用 • 547 回帖 • 3 关注
  • Ubuntu

    Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

    127 引用 • 169 回帖