中文路径_中文分词的原理、方法与工具
海德格尔说“词语破碎处,无物可存在”。中文句子不像英文那样的词与词之间有显示空格边界,使得词和词组边界模糊。
为了让计算机更容易理解文本,通常中文信息处理的第一步是中文分词。中文分词是在中文句子中的词与词之间加上边界标记。
本文首先介绍词、词组、句子、语言模型等基本概念及基本原理,比如:短语结构语法(PSG)模型、n元语法模型( n-gram)、神经网络语言模型(NNLM)、Masked Language Model(MLM);
接着介绍主要中文分词方法,比如最短路径分词、n元语法分词、由字构词分词、循环神经网络分词、Transformer分词;
然后介绍当前主要使用的分词工具,比如jieba、HanLP、FoolNLTK;
最后抛出个人认为垂直领域如何中文分词及发展趋势。
文章目录如下:
一、中文分词原理
1、中文分词
2、词、词组、句子
3、语言模型
4、中文分词发展简史
二、中文分词方法
1、最短路径分词
2、n元语法分词
3、由字构词分词
4、循环神经网络分词
5、Transformer分词
三、中文分词工具
1、jieba
2、HanLP
3、FoolNLTK
四、总结
1、规则 VS 统计 VS 深度
2、垂直领域中文分词
3、中文分词发展趋势
直接上PPT
为什么要中文分词?
一、中文分词原理
1、中文分词
什么是中文分词?
给出定义:中文分词是在中文句子中的词与词之间加上边界标记。
中文分词总的来说就两种方法:一种是由句子到词;另一种是由字到词。
中文分词本质:划分词的边界
同时,中文分词也面临着分词规范、歧义切分、新词识别等挑战。
2、词、词组、句子
什么是词?什么是词组?什么是句子?
搞懂这些基本概念,更容易处理它们。
3、语言模型
什么是语言模型?
由语音、词汇、语法构成的交流模型。
短语结构语法( Phrase Structure Grammar, PSG)
n元语法模型( n-gram)
常见的n元语法模型如下表所示:
神经网络语言模型(NNLM)
Masked Language Model(MLM)
4、中文分词发展简史
二、中文分词方法
中文分词代表方法有最短路径分词、n元语法分词、由字构词分词、循环神经网络分词、Transformer分词等。
1、最短路径分词
2、n元语法分词
举一个n元语法分词的例子。
3、由字构词分词
常用的三类由字构词
4、循环神经网络分词
循环神经网中文分词有:LSTM、LSTM+CRF、BiLSTM-CRF、LSTM-CNNs-CRF等。
循环神经网络中文分词的结构图如下:
5、Transformer分词
2014年,Google在《Recurrent Models of Visual Attention》论文中提出Attention机制。
2017年,Google在《Attention is All You Need》论文中提出Transformer模型。
2019年,邱锡鹏在《Multi-Criteria Chinese Word Segmentation with Transformer》论文中提出Transformer中文分词模型如下图所示:
Transformer中文分词学习结果如下图所示:
三、中文分词工具
中文分词工具工具很多,这里我们选择使用较多,关注度较高的jieba、HanLP、FoolNLTK等来介绍。
jieba、HanLP、snownlp、FoolNLTK、LTP、THULAC等分词工具概览。
1、jieba
jieba概述
jieba分词原理:HMM(隐马尔可夫模型)。更多HMM内容可参考:
刘启林:隐马尔可夫模型HMM的原理及应用zhuanlan.zhihu.com
jieba中文分词代码实例如下:
# jieba 0.42.1import jiebastring = '我喜欢北京冬奥会'print(",".join(jieba.cut(string)))
2、HanLP
HanLP概述
HanLP实现的基于CRF分词原理如下:
HanLP中文分词代码实例如下:
# HanLP1.7.7from pyhanlp import *string = '我喜欢北京冬奥会'HanLP.Config.ShowTermNature = Falseprint(HanLP.segment(string))
3、FoolNLTK
FoolNLTK概要
FoolNLTK分词原理如下:
BiLSTM-CRF模型架构
各分词工具对比表如下:
中文分词工具使用总结如下:
四、总结
1、规则 VS 统计 VS 深度
基于规则分词、基于统计分词与基于深度学习分词的对比。
2、垂直领域中文分词
垂直领域的中文分词现状与挑战。
3、中文分词发展趋势
中文分词呈现两个发展趋势:
1、越来越多的Attention方法应用到中文分词上。
2、数据科学与语言科学融合,发挥彼此优势。
由于当前自己的能力和水平的限制,我的可能是错的,或者是片面,这里抛砖引玉,期待与您一起交流探讨。
参考文献:
1、中国社会科学院语言研究所词典编辑室, 现代汉语词典(第7版), 商务印书馆[M], 2017.01
2、宗成庆, 统计自然语言处理(第2版), 清华大学出版社[M], 2013.08
3、黄昌宁, 赵海, 由字构词——中文分词新方法, 中国中文信息学会二十五周年学术会议[J], 2006
4、姜维, 文本分析与文本挖掘, 科学出版社[M], 2018.12
5、Xipeng Qiu等, Multi-Criteria Chinese Word Segmentation with Transformer, 2019.06
中文路径_中文分词的原理、方法与工具相关推荐
- 使GDAL库支持中文路径或中文文件名的处理方法
之前生成的gdal 2.1.1动态库,在通过命令行执行时,遇到有中文路径或中文图像名时,GDALOpen函数不能正确的被调用,如下图: 解决方法: 1. 在所有使用GDALAllRegist ...
- cv2.imread无法读取/保存中文路径下的图片的解决方法
cv2.imread无法读取/保存中文路径下的图片的解决方法 关于无法读取 用cv2.imread读取中文路径下的图片会出现空.这种情况下windows会出现,mac好像还没出现过. 解决方法是,使用 ...
- GDAL C#中文路径,中文属性名称乱码问题
昨天写的博客,将C#读取shp中文属性值乱码的问题应该可以解决,博客地址为:http://blog.csdn.net/liminlu0314/article/details/54096119,然后又测 ...
- python图片(带有中文路径和中文名称的)读写
import cv2 import numpy as np import os # 读带有中文路径和中文名称的图片 def cv_imread(file_path):cv_img = cv2.imde ...
- php900塞孔油墨_丝印产品塞孔方法和工具的制作方法
丝印产品塞孔方法和工具的制作方法 [专利说明] [技术领域] [0001]本发明涉及一种丝印领域,特别涉及一种丝印产品的塞孔方法. [[背景技术]] [0002]印制板也称为印制线路板或印制电路板(P ...
- python支持中文路径_打开python遍历中文目录得到的文件路径报错
各位朋友们好,我是一名python新手,现在遇到一个问题,恳请各位朋友们能指点一下我. 我的环境是:ubuntu14.04系统,python2.7 用python遍历一个目录,目录层次结构如下: 这是 ...
- python找不到文件中文文件名_找不到的方法虽然存在于同一个py文件中 - python
我是python的新手,我的背景是VB.我收到错误,因为"NameError:name'GetASetting'未定义". 日志:[INFO ] Kivy v1.8.0 Purge ...
- composer 路径_深入学习Composer原理(三)
本系列第三篇文章,一起了解下PSR规范中的PSR4和PSR0规范 首先恭喜大家,包括我自己,坚持到了现在.这篇文章之后,Composer的基础原理就清晰明了咯.也就是说,Composer所利用的正是s ...
- C++正则匹配中文乱码_中文正则表达式匹配-正则中文匹配
使用std::wregex #include <QtCore/QCoreApplication> #include <iostream> #include <string ...
最新文章
- hdu5701-中位数计数
- Java线程池原理及使用
- 一元多项式的加减以及求导
- bob战队 rust_c、rust、golang、swift性能比较
- html——windows.onload()与$(document).ready()区别
- java子网划分_IP地址子网划分_动力节点Java学院整理
- 你必须知道的10项大数据思维原理
- 西电软件工程概论复习纲要
- 树莓派是什么?能干什么?
- HTML5和CSS3 API文档分享
- pip install:Requirement already satisfied
- 日本护照持有者可以免签进入全球193个目的地,创下历史记录
- 教育直播系统如何开发?
- 道不投不足与谋:(,决定放弃原来的博客空间,不再更新
- 腾讯微博android版本,腾讯微博 Android版
- STM32读取SHT3x系列温湿度传感器,标准库和HAL库
- python接口自动化项目_Python+requests接口自动化完整项目框架整理笔记
- 搜索引擎与PageRank
- ROS wiki系列|通过ROS wiki-tutorials学习服务和参数
- 云服务器流量是什么东西_流量服务-是什么
热门文章
- 一个短小精悍的在线jshint工具
- SAP JAM tag Cloud
- CRM_REPORT_RF_CHECK_AUTHORITY call CRM_REPORT_RF_AUTH_OBJ_ORD_LP
- 使用SAP WebIDE往Github上推送代码修改时遇到错误消息 Commit request failed Commit failed. Ref must be HEAD and is HEAD
- 基于java 工单管理_实训任务工单1-2(编写规范Java代码) 实训任务工单1-2(编写规范Java代码).docx_学小易找答案...
- python3.8.2中文手册chm_springboot2.2.X手册:构建全局唯一的短链接数据中心
- 计算机图形学跳一跳_“跳一跳”刷不到第一?试试这几个微信小游戏!
- python打开方式包括_python打开文件的方式有哪些
- linux QT 结束当前进程_软件特攻队|为什么 Qt 成为 c++ 界面编程的第一选择?
- python打字案例_Python 小案例 打字练习