愚墨的博客
  • 首页
  • 前端技术
  • 面试
只争朝夕不负韶华
  1. 首页
  2. 前端技术
  3. 正文

NLP自然语言处理

2020年03月08日 3416点热度 0人点赞 0条评论

接到上峰(浩姐)指令,要搞一个人工智能机器人客服系统,让我先搞一个1.0版本出来用用,并且,不能占用工作日时间,我瞬间就¥%…………%¥%……。

本着我为公司,公司为我的精神,接下这个码无前例的任务。but,我对人工智能一点都不懂啊!!!那就先调研一波吧。

其实本质上就是想搞一个问答系统,并且能根据用户提问的方式,和本身内置的回答不断的学习、升级、进化……,就是所谓的机器学习。

要想建立问答,首先要先能理解用户的语言,这里我们就暂定汉语这一种语言,要做语言处理,也就是NLP(自然语言处理)。

汉语博大精深,算是NLP中王者的存在。对比英语,空格的分词结构相对比较容易,但是汉语并没有明显的区分符号。并且不同的语气有着不同的含义,(虽然英语也是)。 (汉语:“不是我瞧不起谁,在座的都是垃圾”)。

不信你就分析一下二级汉语的意思【一把把把把住了】。哈哈哈。

言归正传,NLP从大方向上分为以下两阶段

  • NLU(自然语言理解)
  • NLG(自然语言生成)

NLP五大难点

  • 语言是没有规律的,或者说规律是错综复杂的。
  • 语言是可以自由组合的,可以组合复杂的语言表达。
  • 语言是一个开放集合,我们可以任意的发明创造一些新的表达方式。
  • 语言需要联系到实践知识,有一定的知识依赖。
  • 语言的使用要基于环境和上下文。

四个典型应用

  • 情感分析
  • 聊天机器人
  • 语音识别
  • 机器翻译

NLU 自然语言理解

基于NLU的应用:机器翻译、机器客服、智能音响等。

NLU的难点

举些例子:

  • 校长说衣服上除了校徽别别别的
  • 过几天天天天气不好
  • 看见西门吹雪点上了灯,叶孤城冷笑着说:“我也想吹吹吹雪吹过的灯”,然后就吹灭了灯。
  • 今天多得谢逊出手相救,在这里我想真心感谢“谢谢谢逊大侠出手”
  • 灭霸把美队按在地上一边摩擦一边给他洗脑,被打残的钢铁侠说:灭霸爸爸叭叭叭叭儿的在那叭叭啥呢
  • 姑姑你估估我鼓鼓的口袋里有多少谷和菇!!
  • “你看到王刚了吗”“王刚刚刚刚走”
  • 张杰陪俩女儿跳格子:俏俏我们不要跳跳跳跳过的格子啦

归档一下NLU的五大难点

  • 语言的多样性
  • 语言的歧义性
  • 语言的鲁棒性
  • 语言的知识依赖
  • 语言的上下文

NLU的实现方式

  • 基于规则的方式
  • 基于统计的方式
  • 基于深度学习的方式

前两个不说了,说一下基于深度学习的方式,目前分为3类

  • CNN(卷积神经网络)
  • RNN(循环神经网络)
  • Transformer

CNN

(也是浩姐天天和我念叨的让我了解一下的东西,我觉得他也不太懂)。

2大特点

  • 能够有效的将大数据量的图片降维成小数据量
  • 能够有效的保留图片特征,符合图片处理的原则

构成

  • 卷积层(提取特征):卷积层负责提取图像中的局部特征
  • 池化层(下采样):池化层用来大幅降低参数量级(降维)
  • 全连接层(输出结果):全连接层类似传统神经网络的部分,用来输出想要的结果

应用

  • 图片分类、检索
  • 目标定位检测
  • 目标分割
  • 人脸识别
  • 骨骼识别

RNN

特点

  • 比较适合处理序列性的数据,比如文本等
  • 跟传统神经网络最大的区别在于每次都会将前一次的输出结果,带到下一次的隐藏层中,一起训练

缺点

  • RNN 有短期记忆问题,无法处理很长的输入序列
  • 训练 RNN 需要投入极大的成本

RNN的优化算法:LSTM(长短期记忆网络) 特点就是:抓重点

应用

  • 文本生成:类似填空题,给出前后文,然后预测空格中的词是什么。
  • 机器翻译:翻译工作也是典型的序列问题,词的顺序直接影响了翻译的结果。
  • 语音识别:根据输入音频判断对应的文字是什么。
  • 生成图像描述:类似看图说话,给一张图,能够描述出图片中的内容。这个往往是 RNN 和 CNN 的结合。

Transformer

如果你是做人工智能相关的人员,这个你肯定很了解了。也是目前最强的方法

Transformer 和 CNN / RNN 的比较

  • 语义特征提取能力 Transformer >>CNN=RNN
  • 长距离特征捕获能力 Transformer>RNN>CNN
  • 任务综合特征抽取能力 Transformer>>CNN=RNN
  • 并行计算能力及运算效率 Transformer >CNN>RNN

NLG 自然语言生成

3个level

  • 简单的数据合并
  • 模板化的 NLG:这种形式的NLG使用模板驱动模式来显示输出
  • 高级 NLG :这种形式的自然语言生成就像人类一样。它理解意图,添加智能,考虑上下文,并将结果呈现在用户可以轻松阅读和理解的富有洞察力的叙述中

6个步骤

  • 第一步:内容确定 作为第一步,NLG 系统需要决定哪些信息应该包含在正在构建的文本中,哪些不应该包含。通常数据中包含的信息比最终传达的信息要多。
  • 第二步:文本结构 确定需要传达哪些信息后,NLG 系统需要合理的组织文本的顺序
  • 第三步:句子聚合 不是每一条信息都需要一个独立的句子来表达,将多个信息合并到一个句子里表达可能会更加流畅,也更易于阅读
  • 第四步:语法化 当每一句的内容确定下来后,就可以将这些信息组织成自然语言了。这个步骤会在各种信息之间加一些连接词,看起来更像是一个完整的句子
  • 第五步:参考表达式生成 这个步骤跟语法化很相似,都是选择一些单词和短语来构成一个完整的句子。不过他跟语法化的本质区别在于“REG需要识别出内容的领域,然后使用该领域(而不是其他领域)的词汇
  • 第六步:语言实现 最后,当所有相关的单词和短语都已经确定时,需要将它们组合起来形成一个结构良好的完整句子

应用的3个目的

  • 能够大规模的产生个性化内容
  • 帮助人类洞察数据,让数据更容易理解
  • 加速内容生产

典型的应用场景

  • 自动写新闻
  • 聊天机器人
  • BI 的解读和报告生成

基本的NLP调研就是这些,上述总结略过了复杂的神经学算法、高级数学模型等相关知识(我不会啊),综上考虑,Transformer也许是最适合的方式。这也只是总体上的分析,针对我们的需求,中文的NLP也许还有所不同,我下次再讲。

码字不易,转载请注明出处~🤗

标签: 暂无
最后更新:2020年09月08日

愚墨

保持饥渴的专注,追求最佳的品质

点赞
< 上一篇
下一篇 >

文章评论

取消回复

搜搜看看
历史遗迹
  • 2023年5月
  • 2022年9月
  • 2022年3月
  • 2022年2月
  • 2021年12月
  • 2021年8月
  • 2021年7月
  • 2021年5月
  • 2021年4月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年9月
  • 2020年7月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年1月
  • 2019年5月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年9月
  • 2018年3月
  • 2018年2月
  • 2018年1月
  • 2017年11月
  • 2017年7月
  • 2017年6月
  • 2017年3月
  • 2017年2月
  • 2017年1月
  • 2016年12月
  • 2016年11月
  • 2016年9月
  • 2016年8月
  • 2016年7月
  • 2016年6月
  • 2016年5月
  • 2016年4月
  • 2016年3月
  • 2016年2月
  • 2016年1月
  • 2015年12月
  • 2015年10月
  • 2015年9月
  • 2015年7月
  • 2015年6月
  • 2015年4月

COPYRIGHT © 2020 愚墨的博客. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS