博舍

人工智能导论(9)——自然语言处理(Natural Language Processing) 人工智能自然语言处理不包括哪一项技术领域

人工智能导论(9)——自然语言处理(Natural Language Processing)

文章目录一、概述二、重点内容三、思维导图四、重点知识笔记NLP的两个核心任务NLP处理的三个分析层面NLP的主要流程语音识别机器翻译一、概述

人类利用语言进行交流、思想表达和文化传承是人类智能的重要体现。自然语言处理(NLP)是指用计算机来处理、理解以及运用人类语言,实现人机交流的目的。

本文将人工智能"自然语言处理"基础知识整理为思维导图,便于回顾和记忆。

二、重点内容简介NLP核心任务NLP主要应用领域NLP三个分析层面NLP分析流程典型应用简介语音识别机器翻译三、思维导图

四、重点知识笔记

自然语言处理(NLP)是指用计算机来处理、理解以及运用人类语言,是计算机科学与语言学的交叉学科。

从应用角度看,自然语言处理的应用有:

语音识别、文字识别文本生成、图像描述生成机器翻译:将一种语言翻译成另一种语言。知识图谱、信息抽取对话系统、问答系统文本分类、情感分析文本推荐NLP的两个核心任务自然语言理解(NaturalLanguageUnderstanding,NLU)自然语言生成(NaturalLanguageGeneration,NLG)自然语言理解(NLU):实现人机间自然语言通信意味着要使计算机既能理解自然语言文本的意义自然语言生成(NLG):以自然语言文本来表达给定的意图、思想等。

NLU的应用:

机器翻译机器客服智能音响

NLU的实现方式:

自然语言理解跟整个人工智能的发展历史类似,一共经历了3次迭代:

基于规则的方法:最早大家通过总结规律来判断自然语言的意图,常见的方法有:CFG、JSGF等。基于统计的方法:后来出现了基于统计学的NLU方式,常见的方法有:SVM、ME等。基于深度学习的方法:随着深度学习的爆发,CNN、RNN、LSTM都成为了最新的”统治者”。

Transformer是目前“最先进”的方法。BERT和GPT-2都是基于TRansformer的。

NLG的6个步骤:

内容确定–ContentDetermination文本结构–TextStructuring句子聚合–SentenceAggregation语法化–Lexicalisation参考表达式生成–ReferringExpressionGeneration|REG语言实现–LinguisticRealisation

NLG典型应用:

聊天机器人自动写新闻:对于具有明显规则的领域,比如体育新闻。目前很多新闻已经借助NLG来完成了BI报告生成NLP处理的三个分析层面

第一层面:词法分析

词法分析包括汉语的分词和词性标注这两部分。

分词:将输人的文本切分为单独的词语词性标注:为每一个词赋予一个类别类别可以是名词(noun)、动词(verb)、形容词(adjective)等属于相同词性的词,在句法中承担类似的角色。

第二层面:句法分析

句法分析是对输人的文本以句子为单位,进行分析以得到句子的句法结构的处理过程。

三种比较主流的句法分析方法:

短语结构句法体系,作用是识别出句子中的短语结构以及短语之间的层次句法关系;介于依存句法分析和深层文法句法分析之间依存结构句法体系(属于浅层句法分析),作用是识别句子中词与词之间的相互依赖关系;实现过程相对来说比较简单而且适合在多语言环境下应用,但是其所能提供的信息也相对较少深层文法句法分析,利用深层文法,对句子进行深层的句法以及语义分析例如词汇化树邻接文法,组合范畴文法等都是深层文法深层文法句法分析可以提供丰富的句法和语义信息深层文法相对比较复杂,分析器的运行复杂度也比较高,不太适合处理大规模的数据

第三个层面:语义分析

语义分析的最终目的是理解句子表达的真是语义。语义表示形式至今没有一个统一的方案。

语义角色标注(semanticrolelabeling)是目前比较成熟的浅层语义分析技术。语义角色标注一般都在句法分析的基础上完成,句法结构对于语义角色标注的性能至关重要。通常采用级联的方式,逐个模块分别训练模型分词词性标注句法分析语义分析联合模型(新发展的方法)将多个任务联合学习和解码分词词性联合词性句法联合分词词性句法联合句法语义联合等联合模型通常都可以显著提高分析质量联合模型的复杂度更高,速度也更慢。NLP的主要流程传统机器学习的NLP流程预处理特征提取词袋设计Embedding特征分类器深度学习的NLP流程预处理设计模型模型训练

预处理过程:

收集语料库(输入文本)文本清洗(文本清洗,)删除所有不相关的字符,例如任何非字母数字字符分割成单个的单词文本删除不相关的单词,例如“@”提及或网址链接将所有字符转换为小写,以便将诸如“hello”,“Hello”和“HELLO”之类的单词视为相同考虑将拼写错误或交替拼写的单词组合成单个表示(例如“cool”/“kewl”/“cooool”)考虑词性还原(将诸如“am”,“are”和“is”之类的词语简化为诸如“be”之类的常见形式)分词去掉停用词(可选)标准化和特征提取等。

英文预处理:

分词–Tokenization词干提取–Stemming词形还原–Lemmatization词性标注–PartsofSpeech命名实体识别–NER分块–Chunking

中文NLP预处理:

中文分词–ChineseWordSegmentation词性标注–PartsofSpeech命名实体识别–NER去除停用词

中文分词方法:

经典的基于词典及人工规则:适应性不强,速度快,成本低基于词典:(正向、逆向、双向最大匹配)基于规则:(词法结构)现代的基于统计和机器学习:适应性强,速度较慢,成本较高基于统计:HMM隐马尔可夫模型基于机器学习:CRF条件随机场

自然语言典型工具和平台

NLTK:全面的python基础NLP库。StanfordNLP:学界常用的NLP算法库。中文NLP工具:THULAC、哈工大LTP、jieba分词。语音识别

将人类语音中的词汇内容转换为计算机可读的输入。

语音识别系统的分类主要有:

孤立和连续语音识别系统(主流为连续语音识别)以单字或单词为单位的孤立的语音识别系统自然语言只是在句尾或者文字需要加标点的地方有个间断,其他部分都是连续的发音特定人和非特定人语音识别系统特定人语音识别系统在前期需要大量的用户发音数据来训练模型。非特定人语音识别系统则在系统构建成功后,不需要事先进行大量语音数据训练就可以使用大词汇量和小词汇量语音识别系统嵌入式和服务器模式语音识别系统

语音识别的过程

语音识别系统一般可以分为前端处理和后端处理两部分:

前端包括语音信号的输入预处理:滤波、采样、量化特征提取后端是对数据库的搜索过程训练:对所建模型进行评估、匹配、优化,之后获得模型参数识别

语音识别的过程:

根据人的语音特点建立语音模型对输入的语音信号进行分析,并抽取所需的特征,建立语音识别所需要的模板将语音模板与输入的语音信号的特征进行比较,找出一与输入语音匹配最佳的模板通过查表和判决算法给出识别结果

显然识别结果的准确率与语音特征的选择、语音模型和语音模板的好坏及准确度有关。

语音识别系统的性能受多个因素的影响

不同的说话人不同的语言同一种语言不同的发音和说话方式等

提高系统的稳定性就是要提高系统克服这些因素的能力,使系统能够适应不同的环境。

声学模型是识别系统的底层模型,并且是语音识别系统中最关键的一部分。声学模型的目的是提供一种有效的方法来计算语音的特征矢量序列和各发音模板之间的距离。

语音识别关键技术

语音特征提取常见的语音特征提取算法有MFCC、FBank、LogFBank等声学模型与模式匹配声学模型:对应于语音音节频率的计算,输出计算得到的声学特征模式匹配:在识别时将输入的语音特征与声学特征同时进行匹配和比较目前采用的最广泛的建模技术是隐马尔可夫模型(HiddenMarkovModel,HMM)。语音模型与语义理解进行语法、语义分析语言模型会计算音节到字的概率主要分为规则模型和统计模型语音模型的性能通常通过交叉熵和复杂度来表示,交叉熵表示交叉熵表示用该模型对文本进行识别的难度复杂度是指用该模型表示这个文本平均的分支数,其倒数可以看成是每个词的平均概率机器翻译

机器翻译就是让机器模拟人的翻译过程,利用计算机自动地将一种自然语言翻译为另一种自然语言。

在机器翻译领域中出现了很多研究方法,包括:

直接翻译方法句法转换方法中间语言方法基于规则的方法基于语料库的方法基于实例的方法(含模板与翻译记忆方法)基于统计的方法基于深度学习的方法等

机器翻译过程:

原文输入:按照一定的编码转换成二进制。原文分析(查词典和语法分析)查词典:词在语法类别上识别为单功能的词,在词义上成为单义词(某些介词和连词除外)语法分析:进一步明确某些词的形态特征。找出动词词组、名词词组、形容词词组等译文综合(调整词序与修辞以及从译文词典中取词)任务1:把应该以为的成分调动一下首先加工间接成分:从前向后依次取词加工,从句子的最外层向内加工。其次加工直接成分:依据成分取词加工,对于复句还需要对各分句进行加工。任务2:修辞加工根据修辞的要求增补或删掉一些词。例如英语中的冠词、数次翻译汉语,加上"个"、“只”。任务3:查目标语言词典,找出目标语言文字的代码。译文输出将目标语言的代码转换成文字,打印出译文来

通用翻译模型:

GNMT(GoogleNeuralMachineTranslation)基于网页和App的神经网络机器翻译完全基于注意力机制的编解码器模型TransformerTransformer的升级版—UniversalTransformer

在Transformer出现之前,多数神经基于神经网络的翻译模型都使用RNN。RNN训练起来很慢,长句子很难训练好。UniversalTransformer模型具有了通用计算能力,在更多任务中取得了有力的结果。UniversalTransformer的训练和评估代码已开源在了Tensor2Tensor网站。

个人总结,部分内容进行了简单的处理和归纳,如有谬误,希望大家指出,持续修订更新中。

修订历史版本见:https://github.com/hustlei/AI_Learning_MindMap

人工智能领域中的一个重要方向:自然语言处理

本文作者:林峰博士,千家网经授权发布

人工智能作为新一轮科技革命和产业变革的重要驱动力量,正在深刻改变世界。而自然语言处理(NaturalLanguageProcessing,简称NLP)已成为人工智能领域中的一个重要方向,它推动着语言智能持续发展和突破,并越来越多地应用于各个行业。

NLP研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。而用自然语言与计算机进行通信,有着十分重要的实际应用意义,也有着革命性的理论意义。实现人机间自然语言通信意味着要使计算机既能理解自然语言文本的意义,也能以自然语言文本来表达给定的意图、思想等;前者称为自然语言理解,后者称为自然语言生成。由于理解自然语言需要关于外在世界的广泛知识以及运用操作这些知识的能力,所以NLP也被视为解决人工智能完备(AI-complete)的核心问题之一。可以说,NLP目前是人工智能领域中的关键技术,对它的研究也是充满魅力和挑战的。

最早的NLP研究工作是机器翻译。1949年,美国知名科学家韦恩·韦弗先生首先提出了机器翻译设计方案。20世纪60年代,许多科学家对机器翻译曾有大规模的研究工作,耗费了巨额费用;但他们显然是低估了自然语言的复杂性,语言处理的理论和技术均不成熟,所以进展不大。当时的主要做法是存储两种语言的单词、短语对应译法的大辞典,翻译时一一对应,技术上只是调整语言的同条顺序。但日常生活中语言的翻译远不是如此简单,很多时候还要参考某句话前后的意思。

大约90年代开始,NLP领域发生了巨大的变化。这种变化的两个明显的特征是:(1)对系统的输入,要求研制的NLP系统能处理大规模的真实文本,而不是如以前的研究性系统那样,只能处理很少的词条和典型句子。只有这样,研制的系统才有真正的实用价值。(2)对系统的输出,鉴于真实地理解自然语言是十分困难的,对系统并不要求能对自然语言文本进行深层的理解,但要能从中抽取有用的信息。

同时,由于强调了“大规模”和“真实文本”,因此两方面的基础性工作也得到了重视和加强:(1)大规模真实语料库的研制。大规模的经过不同深度加工的真实文本的语料库,是研究自然语言统计性质的基础;没有它们,统计方法只能是无源之水。(2)大规模、信息丰富的词典的编制工作。规模为几万,十几万,甚至几十万词,含有丰富的信息(如包含词的搭配信息)的计算机可用词典对NLP的重要性是很明显的。

系统的输入与这两个特征在NLP的诸多领域都有所体现,其发展直接促进了计算机自动检索技术的出现和兴起。实际上,随着计算机技术的不断发展,以海量计算为基础的机器学习、数据挖掘等技术的表现也愈发优异。NLP之所以能够度过“寒冬”,再次发展,也是因为统计科学与计算机科学的不断结合,才让人类甚至机器能够不断从大量数据中发现“特征”并加以学习。不过要实现对自然语言真正意义上的理解,仅仅从原始文本中进行学习是不够的,我们需要新的方法和模型。

目前存在的问题主要有两个方面:一方面,迄今为止的语法都限于分析一个孤立的句子,上下文关系和谈话环境对本句的约束和影响还缺乏系统的研究,因此分析歧义、词语省略、代词所指、同一句话在不同场合或由不同的人说出来所具有的不同含义等问题,尚无明确规律可循,需要加强语用学的研究才能逐步解决。另一方面,人理解一个句子不是单凭语法,还运用了大量的有关知识,包括生活知识和专门知识,这些知识无法全部贮存在计算机里。因此一个书面理解系统只能建立在有限的词汇、句型和特定的主题范围内;计算机的贮存量和运转速度大大提高之后,才有可能适当扩大范围。

无论实现自然语言理解,还是自然语言生成,都远不如人们原来想象的那么简单,而是十分困难的。从现有的理论和技术现状看,通用的、高质量的NLP系统,尤其是应用软件,仍然是较长期的努力目标。就像中国知名科学家周海中先生曾在《自然语言理解的研究历程》一文中指出的那样:“虽然现今市场上出现不少可以进行一定自然语言处理的商品软件,但要想让机器能像人类那样自如地运用自然语言,仍是一项长远而艰巨的任务。”造成困难的根本原因是自然语言文本和对话的各个层次上广泛存在的各种各样的歧义性或多义性。

由于语言学、语言工程、认知科学等主要局限于实验室,目前来看数据处理可能是NLP应用场景最多的一个发展方向。实际上,自从进入大数据时代,各大平台就没有停止过对用户数据的深度挖掘。要想提取出有用的信息,仅提取关键词、统计词频等是远远不够的,必须对用户数据(尤其是发言、评论等)进行语义上的理解。另外,利用离线大数据统计分析的方法进行NLP任务的研究是目前非常有潜力的一种研究范式,尤其是谷歌、推特、百度等大公司在这类应用上的成功经验,引领了目前大数据研究的浪潮。

NLP是为各类企业及开发者提供的用于文本分析及挖掘的核心工具,已经广泛应用在电商、金融、物流、文化娱乐等行业客户的多项业务中。它可帮助用户搭建内容搜索、内容推荐、舆情识别及分析、文本结构化、对话机器人等智能产品,也能够通过合作,定制个性化的解决方案。由于理解自然语言,需要关于外在世界的广泛知识以及运用操作这些知识的能力,所以NLP也被视为解决强人工智能的核心问题之一,其未来一般也因此密切结合人工智能发展,尤其是设计一个模仿人脑的神经网络。

训练NLP文本解析人工智能系统需要采集大量多源头数据集,对科学家来说是一项持续的挑战:需要使用最新的深度学习模型,模仿人类大脑中神经元的行为,在数百万甚至数十亿的注释示例中进行训练来持续改进。当下一种流行的NLP解决方案是预训练,它改进了对未标记文本进行训练的通用语言模型,以执行特定任务;它的思想就是,该模型的参数不再是随机初始化,而是先有一个任务进行训练得到一套模型参数,然后用这套参数对模型进行初始化,再进行训练,以获得更好的预测性见解。

深度学习在NLP中的应用非常广泛,可以说横扫NLP的各个应用,从底层的分词、语言模型、句法分析等到高层的语义理解、对话管理、知识问答等方面都几乎都有深度学习的模型,并且取得了不错的效果。有关研究已从传统的机器学习算法转变成更有表现力的深度学习模型,如卷积神经网络和回归神经网络。不过,目前的深度学习技术还不具备理解和使用自然语言所必需的概念抽象和逻辑推理能力,还有待今后进一步的研究。

目前我们已经进入了以互联网为主要标志的海量信息时代,这些海量信息大部分是以自然语言表示的。一方面,海量信息也为计算机学习人类语言提供了更多的“素材”,另一方面,这也为NLP提供了更加宽广的应用舞台。例如,作为NLP的重要应用,搜索引擎逐渐成为人们获取信息的重要工具,出现了以谷歌、百度等为代表的搜索引擎巨头;机器翻译也从实验室走入寻常百姓家;基于NLP的中文输入法(如搜狗、微软、谷歌等输入法)成为计算机用户的必备工具;带有语音识别的计算机和手机也正大行其道,协助用户更有效地工作和学习。

总之,随着互联网的普及和海量信息的涌现,作为人工智能领域中的一个重要方向,NLP正在人们的日常生活中扮演着越来越重要的角色,并将在科技创新的过程中发挥越来越重要的作用。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇