https://www.toutiao.com/a6690352675990536718/

2019-05-13 11:45:19

中文分词是中文文本处理的一个基础步骤,也是中文人机自然语言交互的基础模块。不同于英文的是,中文句子中没有词的界限,因此在进行中文自然语言处理时,通常需要先进行分词,分词效果将直接影响词性、句法树等模块的效果。当然分词只是一个工具,场景不同,要求也不同。

在人机自然语言交互中,成熟的中文分词算法能够达到更好的自然语言处理效果,帮助计算机理解复杂的中文语言。竹间智能在构建中文自然语言对话系统时,结合语言学不断优化,训练出了一套具有较好分词效果的算法模型,为机器更好地理解中文自然语言奠定了基础。

在此,对于中文分词方案、当前分词器存在的问题,以及中文分词需要考虑的因素及相关资源,竹间智能 自然语言与深度学习小组 做了些整理和总结,希望能为大家提供一些参考。

中文分词根据实现原理和特点,主要分为以下2个类别:

1、基于词典分词算法

也称字符串匹配分词算法。该算法是按照一定的策略将待匹配的字符串和一个已建立好的“充分大的”词典中的词进行匹配,若找到某个词条,则说明匹配成功,识别了该词。常见的基于词典的分词算法分为以下几种:正向最大匹配法、逆向最大匹配法和双向匹配分词法等。基于词典的分词算法是应用最广泛、分词速度最快的。很长一段时间内研究者都在对基于字符串匹配方法进行优化,比如最大长度设定、字符串存储和查找方式以及对于词表的组织结构,比如采用TRIE索引树、哈希索引等。

2、基于统计的机器学习算法

这类目前常用的是算法是HMM、CRF、SVM、深度学习等算法,比如stanford、Hanlp分词工具是基于CRF算法。以CRF为例,基本思路是对汉字进行标注训练,不仅考虑了词语出现的频率,还考虑上下文,具备较好的学习能力,因此其对歧义词和未登录词的识别都具有良好的效果。

Nianwen Xue在其论文《Combining Classifiers for Chinese Word Segmentation》中首次提出对每个字符进行标注,通过机器学习算法训练分类器进行分词,在论文《Chinese word segmentation as character tagging》中较为详细地阐述了基于字标注的分词法。

常见的分词器都是使用机器学习算法和词典相结合,一方面能够提高分词准确率,另一方面能够改善领域适应性。

随着深度学习的兴起,也出现了基于神经网络的分词器,例如有人员尝试使用双向LSTM+CRF实现分词器,其本质上是序列标注,所以有通用性,命名实体识别等都可以使用该模型,据报道其分词器字符准确率可高达97.5%。算法框架的思路与论文《Neural Architectures for

Named Entity Recognition》类似,利用该框架可以实现中文分词,如下图所示:

首先对语料进行字符嵌入,将得到的特征输入给双向LSTM,然后加一个CRF就得到标注结果。

分词器当前存在问题:

目前中文分词难点主要有三个:

1、分词标准:比如人名,在哈工大的标准中姓和名是分开的,但在Hanlp中是合在一起的。这需要根据不同的需求制定不同的分词标准。

2、歧义:对同一个待切分字符串存在多个分词结果。歧义又分为组合型歧义、交集型歧义和真歧义三种类型。

1) 组合型歧义:分词是有不同的粒度的,指某个词条中的一部分也可以切分为一个独立的词条。

2) 交集型歧义:在“郑州天和服装厂”中,“天和”是厂名,是一个专有词,“和服”也是一个词,它们共用了“和”字。

3) 真歧义:本身的语法和语义都没有问题, 即便采用人工切分也会产生同样的歧义,只有通过上下文的语义环境才能给出正确的切分结果。例如:对于句子“美国会通过对台售武法案”,既可以切分成“美国/会/通过对台售武法案”,又可以切分成“美/国会/通过对台售武法案”。

一般在搜索引擎中,构建索引时和查询时会使用不同的分词算法。常用的方案是,在索引的时候使用细粒度的分词以保证召回,在查询的时候使用粗粒度的分词以保证精度。

以下部分分词器的简单说明:

哈工大的分词器:主页上给过调用接口,每秒请求的次数有限制。

清华大学THULAC:目前已经有Java、Python和C++版本,并且代码开源

斯坦福分词器:作为众多斯坦福自然语言处理中的一个包,目前最新版本3.7.0, Java实现的CRF算法。可以直接使用训练好的模型,也提供训练模型接口。

Hanlp分词:求解的是最短路径。优点:开源、有人维护、可以解答。原始模型用的训练语料是人民日报的语料,当然如果你有足够的语料也可以自己训练。

结巴分词工具:基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 (DAG);采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合;对于未登录词,采用了基于汉字成词能力的 HMM 模型,使用了 Viterbi 算法。

字嵌入+Bi-LSTM+CRF分词器:本质上是序列标注,这个分词器用人民日报的80万语料,据说按照字符正确率评估标准能达到97.5%的准确率,各位感兴趣可以去看看。

ZPar分词器:新加坡科技设计大学开发的中文分词器,包括分词、词性标注和Parser,支持多语言,据说效果是公开的分词器中最好的,C++语言编写。

比较好的中文分词方案汇总推荐相关推荐

  1. 中文分词方法汇总笔记

    中文分词方法汇总笔记 分词难点 分词方法 传统基于字典(规则分词) 基于机器学习的分词方法 统计分词 语言模型 隐马尔可夫 HMM 模型 其他 分词工具和云服务 其他 感谢知乎 @华天清 的总结 分词 ...

  2. 新浪SAE中文分词接口

    最近发现新浪SAE平台上竟然也提供分词功能,分词效果也还不错,由新浪爱问提供的分词服务,研究了一番,做了一个简易版的在线调用接口(get方式,非post) 官网说明:http://apidoc.sin ...

  3. 机器学习笔记二十四 中文分词资料整理

    一.常见的中文分词方案 1. 基于字符串匹配(词典) 基于规则的常见的就是最大正/反向匹配,以及双向匹配. 规则里糅合一定的统计规则,会采用动态规划计算最大的概率路径的分词. 以上说起来很简单,其中还 ...

  4. 97.5%准确率的深度学习中文分词(字嵌入+Bi-LSTM+CRF)

    摘要 深度学习当前在NLP领域发展也相当快,翻译,问答,摘要等基本都被深度学习占领了. 本文给出基于深度学习的中文分词实现,借助大规模语料,不需要构造额外手工特征,在2014年人民日报语料上取得97. ...

  5. 深度学习核心技术精讲100篇(十七)-多标准中文分词( Multi-Criteria-CWS)

    前言 论文:https://arxiv.org/pdf/1712.02856.pdf  : 代码和语料:https://github.com/hankcs/multi-criteria-cws . 本 ...

  6. 搜索引擎学习(四)中文分词器

    一.简介 分词原理 Reader读取数据流 数据经过第一个分词器将大写转换小写 数据经过第二个分词器根据空格分割成一个一个的单词 数据经过第三个分词器把标点符号,介词等剔除 经过三次过滤,生成若干语汇 ...

  7. 各种中文分词工具的使用方法

    诸神缄默不语-个人CSDN博文目录 本文将介绍jieba.HanLP.LAC.THULAC.NLPIR.spacy.stanfordcorenlp.pkuseg等多种中文分词工具的简单使用方法. 对于 ...

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

    简单有效的多标准中文分词详解 本文介绍一种简洁优雅的多标准中文分词方案,可联合多个不同标准的语料库训练单个模型,同时输出多标准的分词结果.通过不同语料库之间的迁移学习提升模型的性能,在10个语料库上的 ...

  9. 中文分词一些思路的总结

    中文分词一些思路的总结  中文分词是中文自然语言处理的第一步,也是最为核心的基础,分词的好坏和准确率直接影响到后续进行的其他处理和分析.常用的中文分词工具包括jieba分词.哈工大分词.Stanfor ...

最新文章

  1. 海康威视摄像头安装插件检测不到_海康威视摄像机常见问题解答
  2. zabbix专题:第三章 Zabbix Agent客户端安装详解
  3. 安卓如何运行python_如何在android上运行Python代码?
  4. Oracle PL/SQL小练习
  5. 一款好用的JS时间日期插件layDate
  6. 修改db2管理服务器,创建DB2管理服务器的两种情况
  7. 大唐波斯将军 机器人_跑到大唐的萨珊波斯遗民
  8. 字节跳动最新开源!java条件运算符判断三个数大小
  9. 3星|《三联生活周刊》2017年43期:美国就医可以获取最新的治疗技术(主要是新药)和先进的医院服务(以病人为中心的医生团队服务)...
  10. 九章云极DataCanvas公司荣获机器之心三大奖项,助力产业数智化升级
  11. 怎样用计算机将二进制转换成十进制,二进制如何转换为十进制?
  12. [Joy]冷笑话急转弯
  13. ups监控软件测试表格,ups检测报告单完整版.docx
  14. 【转】布同:如何循序渐进学习Python语言
  15. ionic给图片加水印
  16. 汽车装配线粘合剂市场现状及未来发展趋势
  17. 当幸福来敲门,不是影评
  18. 小白有这六个Python学习网站,比那些收费几百几千的还要好用
  19. ARM工控主板LS1012A
  20. 行路难之后,物流业的出路

热门文章

  1. unsupported operand type(s) for + NoneType and int
  2. CRF算法中辅助概念 团 极大团 最大团
  3. 周炯槃 信息理论基础
  4. 四、创建第一个springboot项目
  5. Linux下使用service启动jar包.md
  6. 清华大学史作强副教授专访:用流形、偏微分方程揭秘人工智能
  7. 使用OpenCV(Python,C ++)无缝克隆
  8. 在Win10 Anaconda中安装Tensorflow
  9. 科学家认为“人脑+AI”至少有三大尺度:最低级是脑启发,最高级是创造机器意识...
  10. 清华大学金涛:《数据安全分级划分》