注:此文章内容均节选自充电了么创始人,CEO兼CTO纯真的大门老师的新书《分布式机器学习实战》 (人工智能科学与技术丛书)【纯真大门编着】【清华大学出版社】
文章目录自然语言处理系列十七分词工具实战Python的Jieba分词总结自然语言处理系列十七分词工具实战
分词工具有些是用Java、Python、c实现的,这里推荐现在最流行的分词工具。 CRF是用c语言写的,但可以用Python调用。 HanLP是用Java编写的,也可以用Python调用。 IK分词和mmseg4j分词也用Java编写,多与搜索引擎Solr和Elasticsearch集成。 分别说明这些开源分词包。
Python的Jieba分词Jieba是目前最好的Python中文分词组件,主要具有以下三个特性:
支持三种分词模式:精确模式、全模式、搜索引擎模式
支持繁体字分词
自定义词典支持
【代码6.14】PrefixSpanJob.scala
# jiebaimportjiebaimportjieba.possegaspseg #词性标签import jieba.analyse as anls #关键字提取1 .导入分词
您可以使用jieba.cut和jieba.cut_for_search方法进行分词。 两者都是可重复的generator,可以使用for循环获取分词后得到的所有单词(unicode ),也可以直接使用jieba.lcut和Jieba :
jieba.cut和jieba.lcut接受三个参数。
需要分词的字符串(unicode或UTF-8字符串、GBK字符串) )。
cut_all参数:是否使用完整模式。 默认值为False
HMM参数:用于控制是否使用HMM模型,默认值为True
jieba.cut_for_search和jieba.lcut_for_search接受两个参数。
需要分词的字符串(unicode或UTF-8字符串、GBK字符串) )。
HMM参数:用于控制是否使用HMM模型,默认值为True
请不要使用GBK字符串。 可能意外地错误解码为UTF-8
1 )全模式和精密模式
#全模式seg_list=jieba.cut (他来到上海交通大学,cut_all=true(print ) (【全模式】: '/'.join ) seg_list )】【全模式精确模式seg_list=Jie cut _ all=false (print ) )【精确模式】: ' '/'.join ) seg _ list】【精确模式】:他/来/上海交通大学type (type )
#搜索引擎模式seg_list=jieba.cut_for_search (他毕业于上海交通大学机电系,后部分在上海电器科学研究所工作'() print ) )【搜索引擎模式】: ' '/大学/上海交通大学/机电/系)、/后/在/一机部/上海/电器/科学/研究/研究所/工作#返回名单seg_list=jieba.lcut_for_search (他毕业于上海交通大学机电系)
HMM模型,即隐马尔可夫模型(Hidden Markov Model,HMM ),是一种基于概率的统计分析模型,用于描述系统的隐状态转移和隐状态表示概率。 对于没有被收录在词典里的词,jieba使用了基于汉字词汇化能力的HMM模型和Viterbi算法,其大致原理如下。
采用4种隐含状态,分别表示为单词成语、短语开头、短语中间、短语结尾。 通过标注的分词训练集,得到HMM的各参数,利用Viterbi算法对测试集进行解释,可以得到分词结果。
#代码实现如下。 HMMseg_list=jieba.cut (他来到网易杭研大厦)。
, HMM=False) #默认精确模式和启用 HMMprint("【未启用 HMM】:" + "/ ".join(seg_list)) 【未启用 HMM】:他/ 来到/ 了/ 网易/ 杭/ 研/ 大厦# 识别新词seg_list = jieba.cut("他来到了网易杭研大厦") #默认精确模式和启用 HMMprint("【识别新词】:" + "/ ".join(seg_list)) 【识别新词】:他/ 来到/ 了/ 网易/ 杭研/ 大厦2.繁体字分词
jieba 还支持对繁体字进行分词。
3.添加自定义词典
开发者可以指定自定义词典,以便包含 jieba 词库里没有的词,词典格式如下:
词语 词频(可省略) 词性(可省略)
例如:
1)载入词典
使用 jieba.load_userdict(file_name) 即可载入词典。
2)调整词典
使用 add_word(word, freq=None, tag=None) 和 del_word(word) 可在程序中动态修改词典。
使用 suggest_freq(segment, tune=True) 可调节单个词语的词频,使其能(或不能)被分出来。
# 调节词频前print("【调节词频前】:" + '/'.join(jieba.cut('如果放到post中将出错。', HMM=False)))【调节词频前】:如果/放到/post/中将/出错/。# 调节词频jieba.suggest_freq(('中', '将'), True)494# 调节词频后print("【调节词频后】:" + '/'.join(jieba.cut('如果放到post中将出错。', HMM=False)))【调节词频后】:如果/放到/post/中/将/出错/。Jieba除了有分词功能外,还有词性标注,关键词提取等功能,我们在后面的章节会逐一讲到,接下来的自然语言处理系列十八我们看一下Java的HanLP分词。
总结此文章有对应的配套视频,其它更多精彩文章请大家下载充电了么app,可获取千万免费好课和文章,配套新书教材请看纯真的大门新书:《分布式机器学习实战》(人工智能科学与技术丛书)
【新书介绍】
《分布式机器学习实战》(人工智能科学与技术丛书)【纯真的大门编著】【清华大学出版社】
新书特色:深入浅出,逐步讲解分布式机器学习的框架及应用配套个性化推荐算法系统、人脸识别、对话机器人等实战项目
【新书介绍视频】
分布式机器学习实战(人工智能科学与技术丛书)新书【纯真的大门】
视频特色:重点对新书进行介绍,最新前沿技术热点剖析,技术职业规划建议!听完此课你对人工智能领域将有一个崭新的技术视野!职业发展也将有更加清晰的认识!
【精品课程】
《分布式机器学习实战》大数据人工智能AI专家级精品课程
【免费体验视频】:
人工智能百万年薪成长路线/从Python到最新热点技术
从Python编程零基础wydlc入门到人工智能高级实战系列课
视频特色: 本系列专家级精品课有对应的配套书籍《分布式机器学习实战》,精品课和书籍可以互补式学习,彼此相互补充,大大提高了学习效率。本系列课和书籍是以分布式机器学习为主线,并对其依赖的大数据技术做了详细介绍,之后对目前主流的分布式机器学习框架和算法进行重点讲解,本系列课和书籍侧重实战,最后讲几个工业级的系统实战项目给大家。 课程核心内容有互联网公司大数据和人工智能那些事、大数据算法系统架构、大数据基础、Python编程、Java编程、Scala编程、Docker容器、Mahout分布式机器学习平台、Spark分布式机器学习平台、分布式深度学习框架和神经网络算法、自然语言处理算法、工业级完整系统实战(推荐算法系统实战、人脸识别实战、对话机器人实战)、就业/面试技巧/职业生涯规划/职业晋升指导等内容。
【充电了么公司介绍】
充电了么App是专注上班族职业培训充电学习的在线教育平台。
专注工作职业技能提升和学习,提高工作效率,带来经济效益!今天你充电了么?
充电了么官网
http://www.chongdianleme.com/
充电了么App官网下载地址
https://a.app.qq.com/o/simple.jsp?pkgname=com.charged.app
功能特色如下:
【全行业职位】 - 专注职场上班族职业技能提升
覆盖所有行业和职位,不管你是上班族,高管,还是创业都有你要学习的视频和文章。其中大数据智能AI、区块链、深度学习是互联网一线工业级的实战经验。
除了专业技能学习,还有通用职场技能,比如企业管理、股权激励和设计、职业生涯规划、社交礼仪、沟通技巧、演讲技巧、开会技巧、发邮件技巧、工作压力如何放松、人脉关系等等,全方位提高你的专业水平和整体素质。
【牛人课堂】 - 学习牛人的工作经验
1.智能个性化引擎:
海量视频课程,覆盖所有行业、所有职位,通过不同行业职位的技能词偏好挖掘分析,智能匹配你目前职位最感兴趣的技能学习课程。
2.听课全网搜索
输入关键词搜索海量视频课程,应有尽有,总有适合你的课程。
3.听课播放详情
视频播放详情,除了播放当前视频,更有相关视频课程和文章阅读,对某个技能知识点强化,让你轻松成为某个领域的资深专家。
【精品阅读】 - 技能文章兴趣阅读
1.个性化阅读引擎:
千万级文章阅读,覆盖所有行业、所有职位,通过不同行业职位的技能词偏好挖掘分析,智能匹配你目前职位最感兴趣的技能学习文章。
2.阅读全网搜索
输入关键词搜索海量文章阅读,应有尽有,总有你感兴趣的技能学习文章。
【机器人老师】 - 个人提升趣味学习
基于搜索引擎和智能深度学习训练,为您打造更懂你的机器人老师,用自然语言和机器人老师聊天学习,寓教于乐,高效学习,快乐人生。
【精短课程】 - 高效学习知识
海量精短牛人课程,满足你的时间碎片化学习,快速提高某个技能知识点。
上一篇:自然语言处理系列十六》中文分词》分词工具实战》CRF++工具包实战
下一篇:自然语言处理系列十八》中文分词》分词工具实战》Java的HanLP分词