自然语言处理系列十四》中文分词》机器学习统计分词》感知器分词

注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书《分布式机器学习实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】

文章目录

  • 自然语言处理系列十四
    • 中文分词
      • 感知器分词
  • 总结

自然语言处理系列十四

中文分词

中文分词(Chinese Word Segmentation) 指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。我们知道,在英文的行文中,单词之间是以空格作为自然分界符的,而中文的词没有一个形式上的分界符,虽然英文也同样存在短语的划分问题,不过在词这一层上,中文比英文要复杂得多、困难得多。

感知器分词

在讲感知器分词之前,我们先了解下什么是感知器。感知器是人工神经网络中的一种典型结构,它的主要的特点是结构简单,对所能解决的问题 存在着收敛算法,并能从数学上严格证明,从而对神经网络研究起了重要的推动作用。
感知器,也可翻译为感知机,是Frank Rosenblatt在1957年就职于Cornell航空实验室(Cornell Aeronautical Laboratory)时所发明的一种人工神经网络。它可以被视为一种最简单形式的前馈式人工神经网络,是一种二元线性分类器。
Frank Rosenblatt给出了相应的感知器学习算法,常用的有感知机学习、最小二乘法和梯度下降法。譬如,感知机利用梯度下降法对损失函数进行极小化,求出可将训练数据进行线性划分的分离超平面,从而求得感知器模型。
感知器是生物神经细胞的简单抽象,如右图.神经细胞结构大致可分为:树突、突触、细胞体及轴突。单个神经细胞可被视为一种只有两种状态的机器——激动时为‘是’,而未激动时为‘否’。
自然语言处理系列十四》中文分词》机器学习统计分词》感知器分词_第1张图片
神经细胞的状态取决于从其它的神经细胞收到的输入信号量,及突触的强度(抑制或加强)。当信号量总和超过了某个阈值时,细胞体就会激动,产生电脉冲。电脉冲沿着轴突并通过突触传递到其它神经元。为了模拟神经细胞行为,与之对应的感知机基础概念被提出,如权量(突触)、偏置(阈值)及激活函数(细胞体)。
在人工神经网络领域中,感知器也被指为单层的人工神经网络,以区别于较复杂的多层感知器(Multilayer Perceptron)。 作为一种线性分类器,(单层)感知器可说是最简单的前向人工神经网络形式。尽管结构简单,感知器能够学习并解决相当复杂的问题。感知器主要的本质缺陷是它不能处理线性不可分问题。
下面我们看下感知器分词在HanLP开源工具里的实现。感知器模型,可以视为一个逻辑回归模型,一个分词任务相当于一个序列标注问题。因此分词任务可以视为机器学习问题中的——结构化预测问题。
要进行机器学习,首先要对数据集进行特征提取。在分词问题上,通常通过一个特征模板来提取特征的。一般地,常用一个指示器函数(0/1标示函数)来进行特征提取。特征提取准备好数据后,开始训练模型。感知器使用迭代的方式训练,学过逻辑回归的同学们可能非常熟悉,每一次迭代,都更新模型的参数,以保证代价函数最小。在自然语言处理中,往往将每一次迭代过后的参数都保存起来,即训练过程中的模型,从而最终结果用投票或平均得出。HanLP实现代码如下所示:

from pyhanlp import *

CWSTrainer = JClass('com.hankcs.hanlp.model.perceptron.CWSTrainer')    #实例化一个感知器算法
corpus_path = r'E:\Anaconda3\Lib\site-packages\pyhanlp\static\data\test\icwb2-data\training\msr_training.utf8'    #数据集所在路径。可用txt文件
msr_model_path = r'D:\桌面\比赛\模型\model'    #数据集所在路径。可用txt文件
"""未进行压缩处理的模型"""
model = CWSTrainer().train(corpus_path, corpus_path, msr_model_path, 0., 10, 8).getModel()  # 训练模型,其中0表示不进行压缩
model.save(msr_model_path, model.featureMap.entrySet(), 0, True)  # 最后一个参数指定导出txt

segment = PerceptronLexicalAnalyzer(model)    #实例一个感知器分词器
segment.enableCustomDictionary(False)    #不集成用户自定义词典

通过 segment.seg()接口,即可实现句子的分词。
集成用户词典的代码如下所示:

segment = PerceptronLexicalAnalyzer(model)    #实例一个感知器模型分词器
segment.enableCustomDictionary(True)    #集成用户自定义词典,为True代表启用
CustomDictionary.insert("xx","nrf 1")

由于指示器生成的特征大多为 0,也即特征向量是一个稀疏向量,数据集是一个稀疏矩阵。因此可以压缩处理,在保存特征时,可以只保留那些值为1的特征的索引(位置),此时就可以大大减少存储容量。
由于模型学习到的特征其实是非常稀疏的,因此模型的相当一大部分参数都很小,换句话说,其对结果的影响力比较小。因此可以将这些冗余的参数删除,从而压缩特征。压缩代码如下:

model.compress(0.9, 0)    #将特征个数压缩为原来的0.9倍。
segment = PerceptronLexicalAnalyzer(model)    #实例一个分词器

模型训练完后就可以拿来用了,用segment.seg()方法就可以分词了, 那么可否将训练好的模型回炉重造,重新学习呢?答案是肯定的,用segment.learn()方法可以重新学习:

segment = PerceptronLexicalAnalyzer(model)    #实例一个分词器
segment.enableCustomDictionary(False)    #不集成用户自定义词典
for i in range(3):
    segment.learn("人 与 川普 通电话")   #在线调整模型(重新训练三次!!!)
print(segment.seg("银川普通人与川普通电话讲四川普通话")   

输出结果如下:

[银川, 普通人,, 川普, 通电话,, 四川, 普通话]

上面给大家讲到了感知器分词以及在HanLP中的实现,自然语言处理系列十五看另外一种统计分词方式CRF分词。

总结

此文章有对应的配套视频,其它更多精彩文章请大家下载充电了么app,可获取千万免费好课和文章,配套新书教材请看陈敬雷新书:《分布式机器学习实战》(人工智能科学与技术丛书)

【新书介绍】
《分布式机器学习实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】
新书特色:深入浅出,逐步讲解分布式机器学习的框架及应用配套个性化推荐算法系统、人脸识别、对话机器人等实战项目

【新书介绍视频】
分布式机器学习实战(人工智能科学与技术丛书)新书【陈敬雷】
视频特色:重点对新书进行介绍,最新前沿技术热点剖析,技术职业规划建议!听完此课你对人工智能领域将有一个崭新的技术视野!职业发展也将有更加清晰的认识!

【精品课程】
《分布式机器学习实战》大数据人工智能AI专家级精品课程

【免费体验视频】:
人工智能百万年薪成长路线/从Python到最新热点技术

从Python编程零基础小白入门到人工智能高级实战系列课

视频特色: 本系列专家级精品课有对应的配套书籍《分布式机器学习实战》,精品课和书籍可以互补式学习,彼此相互补充,大大提高了学习效率。本系列课和书籍是以分布式机器学习为主线,并对其依赖的大数据技术做了详细介绍,之后对目前主流的分布式机器学习框架和算法进行重点讲解,本系列课和书籍侧重实战,最后讲几个工业级的系统实战项目给大家。 课程核心内容有互联网公司大数据和人工智能那些事、大数据算法系统架构、大数据基础、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.阅读全网搜索

输入关键词搜索海量文章阅读,应有尽有,总有你感兴趣的技能学习文章。

【机器人老师】 - 个人提升趣味学习

基于搜索引擎和智能深度学习训练,为您打造更懂你的机器人老师,用自然语言和机器人老师聊天学习,寓教于乐,高效学习,快乐人生。

【精短课程】 - 高效学习知识

海量精短牛人课程,满足你的时间碎片化学习,快速提高某个技能知识点。

上一篇:自然语言处理系列十三》中文分词》机器学习统计分词》隐马尔可夫模型HMM分词
下一篇:自然语言处理系列十五》中文分词》机器学习统计分词》感知器分词

你可能感兴趣的:(python,人工智能,大数据,算法,人工智能,机器学习,深度学习,自然语言处理)