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. SSM开发基于Java EE在线图书销售系统

           SSM(Spring+Spring MVC+MyBatis)开发基于Java EE在线图书销售系统  网站成功建立和运行很大部分取决于网站开发前的规划,因此为了在网站建立过程中避免一些不 ...

  2. 番外:克隆本地PDB中其他参数和子句的说明

    基于版本:19c (12.2.0.3) AskScuti 创建方法:克隆本地PDB(从本地其他PDB创建新的PDB) 对应路径:Creating a PDB --> Cloning --> ...

  3. 电脑出现kernelbase.dll错误的两种解决方法

    KernelBase.dll是Windows操作系统的重要文件,它为各种应用程序提供服务.如果电脑提示kernelbase.dll错误,这该怎么处理?大家可以用电脑自带的防火墙或者是第三方软件来进行故 ...

  4. HDU1074 Doing Homework(状压dp)

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=1074 题意:给定有n门课的作业,每门课交作业有截止时间,和完成作业所花费的时间,如果超过规定时间完成,每超 ...

  5. CSS的布局之文档流,与行内/块级元素的延伸

    文档流,即(position:stiatic),是html布局机制的默认状态. 文档流在排列的过程中,块级元素从上到下,行内元素,从左到右. ·块级元素 <div> <h系列> ...

  6. HIT大作业——hello的一生

    hello的一生 关键词:计算机系统:功能:流程:P2P;O2O;hello                              目  录   第1章 概述- 4 - 1.1 Hello简介 - ...

  7. 「题解」「CF1019B」The hat

    目录 题目 背景 程序输出 交互程序输入 题解 程序 题目 背景 这是一道交互题. 一共有 \(n\) 个人做成一圈,他们的编号从 \(1\) 到 \(n\). 现在每个人的手里面都有一个数字 \(a ...

  8. AcWing 906. 区间分组

    //1.将所有区间按左端点从小到大排序 //2.从前往后处理每个区间,判断能否将其放到某个现有的组中 //判断某一组的最后一个区间的右端点是否小于该区间的左端点 //如果大于或等于,就开新组,如果小于 ...

  9. 创建集群corosync

    #环境准备 #设置主机名解析yum -y install pcs pacemaker corosync fence-agents-allsystemctl start pcsd.servicesyst ...

  10. python 多线程,多进程,高效爬虫

    1.多线程from concurrent.futures import ThreadPoolExecutor import requests def fetch_async(url): respons ...