首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

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

  • 25-03-04 04:41
  • 4550
  • 10999
blog.csdn.net

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

文章目录

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

自然语言处理系列十四

中文分词

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

感知器分词

在讲感知器分词之前,我们先了解下什么是感知器。感知器是人工神经网络中的一种典型结构,它的主要的特点是结构简单,对所能解决的问题 存在着收敛算法,并能从数学上严格证明,从而对神经网络研究起了重要的推动作用。
感知器,也可翻译为感知机,是Frank Rosenblatt在1957年就职于Cornell航空实验室(Cornell Aeronautical Laboratory)时所发明的一种人工神经网络。它可以被视为一种最简单形式的前馈式人工神经网络,是一种二元线性分类器。
Frank Rosenblatt给出了相应的感知器学习算法,常用的有感知机学习、最小二乘法和梯度下降法。譬如,感知机利用梯度下降法对损失函数进行极小化,求出可将训练数据进行线性划分的分离超平面,从而求得感知器模型。
感知器是生物神经细胞的简单抽象,如右图.神经细胞结构大致可分为:树突、突触、细胞体及轴突。单个神经细胞可被视为一种只有两种状态的机器——激动时为‘是’,而未激动时为‘否’。
神经细胞示意图
神经细胞的状态取决于从其它的神经细胞收到的输入信号量,及突触的强度(抑制或加强)。当信号量总和超过了某个阈值时,细胞体就会激动,产生电脉冲。电脉冲沿着轴突并通过突触传递到其它神经元。为了模拟神经细胞行为,与之对应的感知机基础概念被提出,如权量(突触)、偏置(阈值)及激活函数(细胞体)。
在人工神经网络领域中,感知器也被指为单层的人工神经网络,以区别于较复杂的多层感知器(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)    #不集成用户自定义词典
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

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

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

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

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

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

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

输出结果如下:

[银川, 普通人, 与, 川普, 通电话, 讲, 四川, 普通话]
  • 1

上面给大家讲到了感知器分词以及在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分词
下一篇:自然语言处理系列十五》中文分词》机器学习统计分词》感知器分词

文章知识点与官方知识档案匹配,可进一步学习相关知识
算法技能树首页概览63150 人正在系统学习中
注:本文转载自blog.csdn.net的陈敬雷-充电了么-CEO兼CTO的文章"https://blog.csdn.net/weixin_52610848/article/details/113619681"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top