NLP的几个概念

  • 从技术研究的角度,简单介绍自然语言处理的几个概念

1. 对抗学习

主要指对抗生成网络。

2个主要构成:判别器、生成器

判别模型尽可能提取特征正确率增加的模型,生成模型尽可能“伪造”让判别模型以为是真的结果。

2. 强化学习

来源于“heterostatic theory of adaptive systems”

不同于监督学习和非监督学习,强化学习不要求预先给定任何数据,而是通过接收环境对动作的奖励(反馈)获得学习信息并更新模型参数 [3] 。

2个核心:

  1. 定义奖励、惩罚函数
  2. 完成尝试,学习的过程

3. 向量搜索

顾名思义,向量形式的搜索。

index:将普通搜索的query和文档库中的文档,都用向量表示。

query:完成向量的匹配(相似度计算)过程。

得到向量的过程,可使用word2vec、fasttext、glove等,也可使用公开的词向量模型。腾讯、百度、Google都有公开。

4. 意图识别

常用于会话系统中,用来识别用户的意图,给系统下一步的操作提供依据。

一个是意图的识别,一个是槽位的识别。

本质就是一个分类问题,可以用基于规则,传统机器学习算法 (SVM),基于深度学习算法(CNN, LSTM, RCNN, C-LSTM, FastText)等方法来处理。

5. 情感分析

情感分析的任务是从评论的文本中提取出评论的实体,以及评论者对该实体所表达的情感倾向。

用于电商网站对某款产品的用户反馈情绪提取。

抽取情感相关的词汇,和词典中的数据进行比较,最终计算得分。

可基于词语来做,也可将整个句子标注,用来训练深度神经网络的情感分类模型。

情感分析 ChnSentiCorpSST-2,和 LCQMC

一般为单句分析

6. 相似度计算

计算两个文本之间的相关程度。

可以是基于字符层面的计算,例如编辑距离、Jaccard距离等;

也可以是基于语义层面的,先得到词语/字的语义向量,然后计算文本的语义向量,最终计算两个向量之间的距离。方法有:cos、dot

Attention用的是另外一种计算矩阵相似度的方法,这里不讨论。

7. 文本生成

目前的算法和技术能做到的:将结构化的数据,转为非结构化的文本。

根据商品信息,生成营销类的标题和宣传广告。是基于规则模板匹配和语义标注训练相结合的方法。有大量的标注训练数据。

“李文哲:目前NLP不适合文本生成,只能用在论文里面”

8. 知识图谱

将知识用图结构的方式表达出来。图数据库。

常用的工具neo4j、ArangoDB、OrientDB、TigerGraph

9. 端到端

端到端,是一种方法、一种思路,在Seq2Seq基础之上,完成序列到序列的映射关系。

可以做语音识别、机器翻译、命名实体识别、关系抽取等任务。

用户只需关注输入和输出部分,无需在意具体的映射逻辑,可以看做是一个黑盒子。

端到端的学习其实就是不做其他额外处理,从【原始数据输入】到【任务结果输出】,整个训练和预测过程,都是在模型里完成的。

自动驾驶:像素---指令
语音识别:声音---文本
机器翻译:文本---文本
智能会话:文本---文本
问答系统:文本---文本

一般来讲,输入和输出的长度相对固定,且格式一致。数据量在10万以上。

10. 机器阅读理解

研究工作的主要内容:给定一段文本、一个问题和多个候选集,找出正确的那个候选集。并且,答案一定出现在段落中。

数据格式SQuAD。台湾有繁体版,有对应的简体版。

11. 智能会话

人和机器之间的对话

下图是阿里的达摩院分享的内容,我做了笔记和整理。

12. 多轮会话

为了完成一个特定的任务,人和机器之间的多次交互。

以完成任务为目的。

多轮会话中,包含意图的澄清、确认等。

能运行跑起来的应用,都是基础的填槽方式。

基于深度学习的方法,目前停留在实验阶段。

13. 问答系统

这是从研究工作工作的角度,看待的“问答系统”

一问一答。

人类一次提问,机器一次回答,交互完成。

在实际工作中,不同岗位理解的问答系统不一样。

例如:在知识类的网站中,知乎、悟空问答、各种论坛,都可以看做是问答系统。

关于深度学习的问答系统,保险领域常用的数据集是https://github.com/shuzi/insuranceQA.git ,这是一问一答的方式,原版是英文版的,已有中文版本。

生物医疗领域的问答系统,BioASQ

BERT模型做的问答系统,一般基于三元组<上下文,问题,答案>

NLPCC2016-DBQA 是由国际自然语言处理和中文计算会议 NLPCC 于 2016 年举办的评测任务,其目标是从候选中找到合适的文档作为问题的答案。[链接: http://tcci.ccf.org.cn/conference/2016/dldoc/evagline2.pdf].

14. 问答和会话的区别

问答是《问题,答案》、《提问,回答》的方式,2个角色,一次交互。

会话是围绕一个主题(达到某个目的、完成某项任务)进行多次交互,2个或多于2个角色,多次交互。

  • 问答涉及的内容有:

    理解、改写问题;

    搜索、匹配、排序答案;

    实体、关系的识别、抽取;

  • 会话一般有6个核心模块:

    ARS、NLU、DST、Policy、NLG、TTS

    即:语音识别、自然语言理解、会话状态跟踪、对话策略、自然语言生成、语音合成

    一般为任务导向型

    方法有:基于框架(槽填充、模板)、端到端(end2end)

自动作诗,是端到端方法的应用

15. 自然语言理解NLU

http://www.crownpku.com/2017/07/27/用Rasa_NLU构建自己的中文NLU系统.html

我们推荐使用下面的pipeline:

MITIE+Jieba+sklearn (sample_configs/config_jieba_mitie_sklearn.json):

[“nlp_mitie”, “tokenizer_jieba”, “ner_mitie”, “ner_synonyms”, “intent_featurizer_mitie”, “intent_classifier_sklearn”]

这里也可以看到Rasa NLU的工作流程。”nlp_mitie”初始化MITIE,”tokenizer_jieba”用jieba来做分词,”ner_mitie”和”ner_synonyms”做实体识别,”intent_featurizer_mitie”为意图识别做特征提取,”intent_classifier_sklearn”使用sklearn做意图识别的分类。

参考

https://www.milvus.io/

https://github.com/PaddlePaddle/ERNIE

https://github.com/RasaHQ/rasa

学习笔记(25)- NLP的几个概念的更多相关文章

  1. IOS学习笔记25—HTTP操作之ASIHTTPRequest

    IOS学习笔记25—HTTP操作之ASIHTTPRequest 分类: iOS2012-08-12 10:04 7734人阅读 评论(3) 收藏 举报 iosios5网络wrapper框架新浪微博 A ...

  2. Kubernetes 学习笔记(一):基础概念

    个人笔记,仅本人查阅使用,不保证正确. 零.微服务 微服务架构专注于应用解耦合,通过将应用彻底地组件化和服务化,每个微服务只包含一个非常小的功能,比如权限管理.日志收集等等.由这一组微服务组合起来,提 ...

  3. Flink学习笔记:Flink API 通用基本概念

    本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...

  4. [原创]java WEB学习笔记25:MVC案例完整实践(part 6)---新增操作的设计与实现

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  5. linux命令学习笔记(25):linux文件属性详解

    Linux 文件或目录的属性主要包括:文件或目录的节点.种类.权限模式.链接数量.所归属的用户和用户组. 最近访问或修改的时间等内容.具体情况如下: 命令: ls -lih 输出: [root@loc ...

  6. ‎Cocos2d-x 学习笔记(25) 渲染 绘制 Render

    [Cocos2d-x]学习笔记目录 本文链接:https://www.cnblogs.com/deepcho/p/cocos2dx-render.html 1. 从程序入口到渲染方法 一个Cocos2 ...

  7. Linux下汇编语言学习笔记25 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  8. cURL 学习笔记与总结(1)概念

    概念: cURL(Client URL Library Functions)is a command line tool for transfering data with URL syntax(使用 ...

  9. Linux学习笔记25——命名管道(FIFO)

    1 命名管道(FIFO) 管道应用的一个重大缺陷就是没有名字,因此只能用于亲缘进程之间的通信.后来从管道为基础提出命名管道(named pipe,FIFO)的概念,该限制得到了克服.FIFO不同于管道 ...

  10. ArcGIS API for JavaScript 4.2学习笔记[25] 官方第八章Analysis(空间查询)概览与解释

    开森,最关注的空间分析章节终于到了,在空间查询那节逻辑性的代码简直要命(呵呵,空间分析的代码也要命...). 上目录截图: [Geodesic buffers(GeometryEngine)] 使用G ...

随机推荐

  1. hrtf 旋转音效matlab实现

    原理参考: http://www.mahong.me/archives/97 将音频分段,各个段分别使用hrtf在Ls, L, R, Ls, Rrs, Lrs位置处的filter系数.是声音听起来来自 ...

  2. 【Python】循环控制保留字

  3. linux命令 mv

    后缀--backup=<备份模式>:若需覆盖文件,则覆盖前先行备份: -b:当文件存在时,覆盖前,为其创建一个备份: -f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目 ...

  4. CentOS 7 yum配置阿里云镜像(转)

    1.下载源配置 凡是下载国外的软件,比如用npm,pip,yum有时下载速度感人,最好配置国内镜像地址 yum配置阿里云镜像参考:https://blog.csdn.net/hnmpf/article ...

  5. dp--B - Hard problem

    B - Hard problem Vasiliy is fond of solving different tasks. Today he found one he wasn't able to so ...

  6. python之路xml模块补充

    创建一个子节点一共有三个方式 创建一个子节点2.3

  7. Drf小结

    DRF框架 一. 认识restful架构 REST,即Representational State Transfer的缩写 ,我们一般叫他'表现层状态转化' REST的路径设计思路是简洁: 资源(比如 ...

  8. flutter web 配置环境及运行(windows)

    此下 操作 都是基于 windows  一, 将镜像添加到 用户环境变量中 由于在国内访问Flutter有时可能会受到限制,Flutter官方为中国开发者搭建了临时镜像,大家可以将如下环境变量加入到用 ...

  9. numpy rand函数的应用

    以后使用rand(), randint()等函数. 随机浮点类型数值(均匀分布) numpy.random.rand() 产生[0,1)内的浮点型随机数 numpy.random.rand(value ...

  10. Linux之Socket编程

    1.什么是Socket? socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open –> 读写write/read –> 关闭close”模 ...