NLP

自然语言处理的关键技术

Nlp基础概论

Posted by Nova on 2019-05-25

NLP 是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的学科。NLP 由两个主要的技术领域构成:自然语言理解和自然语言生成。

  • 自然语言理解方向,主要目标是帮助机器更好理解人的语言,包括基础的词法、句法等语义理解,以及需求、篇章、情感层面的高层理解。

  • 自然语言生成方向,主要目标是帮助机器生成人能够理解的语言,比如文本生成、自动文摘等。

NLP 技术基于大数据、知识图谱、机器学习、语言学等技术和资源,并可以形成机器翻译、深度问答、对话系统的具体应用系统,进而服务于各类实际业务和产品。

按照语言习惯

按照语言习惯,NLP技术从下到上可以分为3个层面:词法、句法、语义。

1
2
词汇是语言的最小单元,被视为NLP技术的底层,也是其余NLP技术的基础,词法技术的核心任务是识别和区分文本中的单词,以及对词语进行一些预处理.
因为词语具有确定的形式,所以通过规则匹配就可以做到比较准确的识别。但是现阶段的分词结果对语义的理解支持不够,如何更好的辅助语义理解,将是分词技术关注的重点。
1
2
3
4
词汇组织成语句,句法技术顺理成章的成为NLP的第二个层面.句法是对语言进行深层次理解的基石,特别对于机器翻译非常重要。
句法技术的主要任务是识别出句子所包含的句法成分以及这些成分之间的关系,一般以句法树来表示句法分析的结果。
句法分析一直是NLP技术前进的巨大障碍,主要存在两个难点:歧义,搜索空间
人类自身可以依靠大量的先验知识有效地消除各种歧义,而机器由于在知识表示和获取方面存在严重不足,很难像人类那样进行句法消歧.句法分析是一个极为复杂的任务,候选树个数随句子增多呈指数级增长,搜索空间巨大。因此,必须设计出合适的解码器,以确保能够在可以容忍的时间内搜索到模型定义最优解。
1
不论是英语还是汉语,语言的目的都是为了表达含义.语义理解是NLP技术的终极目标,可以说各种NLP技术都采用不同的方式为该目的服务。

百度开放平台提供的API

NLP能够做什么,如何帮助业务实现。

情感倾向分析

针对带有主观描述的中文文本,可自动判断该文本的情感极性类别并给出相应的置信度。情感极性分为积极、消极、中性。情感倾向分析能帮助企业理解用户消费习惯、分析热点话题和危机舆情监控,为企业提供有力的决策支持。

评论观点抽取

自动分析评论关注点和评论观点,并输出评论观点标签及评论观点极性。目前支持 13 类产品用户评论的观点抽取,包括美食、酒店、汽车、景点等,可帮助商家进行产品分析,辅助用户进行消费决策。

词义相似度计算

用于计算两个给定词语的语义相似度,基于自然语言中的分布假设,即越是经常共同出现的词之间的相似度越高。词义相似度是自然语言处理中的重要基础技术,是专名挖掘、query 改写、词性标注等常用技术的基础之一。

词法分析

分词、词性标注、命名实体识别三个基础任务。用于识别出文本串中的基本词汇标注和词汇的词性,并进一步识别出命名实体。其目标还是能够理解句子的语义。

短文本相似度

能够提供不同短文本之间相似度的计算,输出的相似度是一个介于 -1 到 1 之间的实数值,越接近 1 则相似度越高。这个相似度值可以直接用于结果排序,也可以作为一维基础特征作用于更复杂的系统。

DNN 语言模型

语言模型是通过计算给定词组成的句子的概率,从而判断所组成的句子是否符合客观语言表达习惯。在机器翻译、拼写纠错、语音识别、问答系统、词性标注、句法分析和信息检索等系统中都有广泛应用。

词向量表示

词向量表示表示是通过训练的方法,将语言词表中的词映射成一个长度固定的向量。词表中所有的词向量构成一个向量空间,每一个词都是这个词向量空间中的一个点,利用这种方法,实现文本的可计算。

依存句法分析

利用句子中词与词之间的依存关系来表示词语的句法结构信息 (如主谓、动宾、定中等结构关系)
并用树状结构来表示整句的的结构 (如主谓宾、定状补等)。

应用层面

研究计算机处理人类语言的一门技术.其中包含:

  • 句法语义分析:对于给定的句子,进行分词、词性标记、命名实体识别和链接、句法分析、语义角色识别和多义词消歧。
  • 信息抽取:从给定文本中抽取重要的信息,比如,时间、地点、人物、事件、原因、结果、数字、日期、货币、专有名词等等。通俗说来,就是要了解谁在什么时候、什么原因、对谁、做了什么事、有什么结果。涉及到实体识别、时间抽取、因果关系抽取等关键技术。
  • 文本挖掘(或者文本数据挖掘):包括文本聚类、分类、信息抽取、摘要、情感分析以及对挖掘的信息和知识的可视化、交互式的表达界面。目前主流的技术都是基于统计机器学习的。
  • 机器翻译:把输入的源语言文本通过自动翻译获得另外一种语言的文本。根据输入媒介不同,可以细分为文本翻译、语音翻译、手语翻译、图形翻译等。机器翻译从最早的基于规则的方法到二十年前的基于统计的方法,再到今天的基于神经网络(编码-解码)的方法,逐渐形成了一套比较严谨的方法体系。
  • 信息检索:对大规模的文档进行索引。可简单对文档中的词汇,赋之以不同的权重来建立索引,也可利用1,2,3的技术来建立更加深层的索引。在查询的时候,对输入的查询表达式比如一个检索词或者一个句子进行分析,然后在索引里面查找匹配的候选文档,再根据一个排序机制把候选文档排序,最后输出排序得分最高的文档。
  • 问答系统: 对一个自然语言表达的问题,由问答系统给出一个精准的答案。需要对自然语言查询语句进行某种程度的语义分析,包括实体链接、关系识别,形成逻辑表达式,然后到知识库中查找可能的候选答案并通过一个排序机制找出最佳的答案。
  • 对话系统:系统通过一系列的对话,跟用户进行聊天、回答、完成某一项任务。涉及到用户意图理解、通用聊天引擎、问答引擎、对话管理等技术。此外,为了体现上下文相关,要具备多轮对话能力。同时,为了体现个性化,要开发用户画像以及基于用户画像的个性化回复。

人工智能

自然语言处理是人工智能的一个分支。指机器理解并解释人类写作、说话方式的能力。NLP的目标是让计算机/机器在理解语言上像人类一样智能。最终目标是弥补人类交流(自然语言)和计算机理解(机器语言)之间的差距。那什么是人工智能呢。

人工智能的目标包含推理,自动学习&调度,机器学习,自然语言处理,计算机视角,机器人,通用智能。
人工智能有三个阶段:机器学习,机器智能,机器意识。机器学习指智能系统使用一系列算法从经验中进行学习。机器智能指一系列从经验中进行学习的高级算法,例如深度神经网络。机器意识指不需要外部数据就能从经验中自己学习。

使得系统智能化的不仅是自然语言处理,还包括知识表示,自动推理,机器学习。以上只是人工智能的一些概念。

虽然目前人工智能的技术比较火热,但真正的工业应用还是比较蜻蜓点水,处于机器学习阶段,机器智能都并没有广泛应用到工业,带来很多价值,只是目前一些顶尖的公司在尝试。类似聊天机器人这样的应用只有顶尖的技术公司掌握,并没有达到非常强人工智能的状态。那么对于目前的发展,不管是全球顶尖的技术公司,还是学术单位,又或者国内外的跟随其应用使用的公司,都在做些什么,需要做什么来让人工智能的发展和应用更加有价值。

我想这也是深度学习目前还是存在一些挑战和不足,需要一段时间的发展。

那处于应用层面的大多数工程师,应该做些什么,静观其变还是深入了解。紧跟发展前沿深入学习的同学又有多少。

针对分类问题和OCR问题做深入学习。或者找目前工作中需要解决的一些问题来深入学习到应用起来。聊天机器人的工作机制,怎么做一个法律咨询方面的聊天机器人。

最全面的百度 NLP 自然语言处理技术解析

常见30种NLP任务的练手项目

知乎:NLP自然语言处理从入门到迷茫. 包含学习资料