资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样,2021/8/14,#,单击此处编辑母版标题样式,单击此处编辑母版文本样,2021/8/14,#,单击此处编辑母版标题样式,单击此处编辑母版文本样,2021/8/14,#,单击此处编辑母版标题样式,单击此处编辑母版文本样,2021/8/14,#,单击此处编辑母版标题样式,单击此处编辑母版文本样,2021/8/14,#,单击此处编辑母版标题样式,单击此处编辑母版文本样,2021/8/14,#,单击此处编辑母版标题样式,单击此处编辑母版文本样,2021/8/14,#,单击此处编辑母版标题样式,单击此处编辑母版文本样,2021/8/14,#,单击此处编辑母版标题样式,单击此处编辑母版文本样,2021/8/14,#,单击此处编辑母版标题样式,单击此处编辑母版文本样,2021/8/14,#,单击此处编辑母版标题样式,单击此处编辑母版文本样,2021/8/14,#,单击此处编辑母版标题样式,单击此处编辑母版文本样,2021/8/14,#,单击此处编辑母版标题样式,单击此处编辑母版文本样,2021/8/14,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,2021/8/14,#,1,NLP,基本流程,目录,自然语言处理概述,2,NLP,的开发环境,3,自然语言是指汉语、英语、法语等人们日常使用的语言,,,是自然而然的随着人类社会发展演变而来的语言,而不是人造的语言,它是人类学习生活的重要工具。,概括说来,自然语言是指人类社会约定俗成的,并且区别于人工语言(如计算机程序)的语言。,自然语言处理概述,自然语言处理(,NLP,)是一门以计算机为工具,对书面或口头形式的语言进行各种处理和加工的技术,同时也是研究人与人交际中以及人与计算机交际中语言问题的一门科学。,NLP,是计算机科学领域以及人工智能领域的一个重要的研究方向,是一门融语言学、计算机科学、数学、统计学于一体的科学。,自然语言处理,概述,NLP,的发展大致经历了,3,个阶段。,1956,年以前的萌芽期,1980,年,1999,年的快速发展期,21,世纪的突飞猛进期,图灵测试(,Turing Test,):让人和机器进行交流,如果人无法判断自己交流的对象是人还是机器,就说明这个机器有智能了。,NLP,的发展历程,二十世纪,40,年代到,50,年代之间,在美国还有两个人在进行着重要的研究工作。,乔姆斯基,:他的主要工作为对形式语言的研究。,香农:,他的主要工作是基于概率和信息论模型的研究。香农的信息论在概率统计的基础上对语言和计算机语言进行研究。,1956,年,乔姆斯基提出了上下文无关语法,并将它运用到,NLP,中。他们的工作直接引起了基于规则和基于概率这两种不同的,NLP,技术的产生。而这两种不同的,NLP,方法,又引发了数十年有关基于规则方法和基于概率方法孰优孰劣的争执。,NLP,的发展历程,1.,萌芽期(,1956,年以前),1970,年以后统计语言学家的出现使得自然语言处理重获新生,并取得了非凡的成就。采用基于统计的方法,,IBM,将当时的语音识别率从,70%,提升到,90%,,同时语音识别的规模从几百单词上升到几万单词,这样语音识别就有了从实验室走向实际应用的可能。,基于统计方法的分词。统计分词的主要思想是把每个词看做是由字组成的,如果相连的字在不同文本中出现的次数越多(概率越大),就证明这段相连的字很有可能就是一个词。,例如中文分词:“自然语言处理的基本概念”(自然语言处理,的,基本概念)。,NLP,的发展历程,2,.,发展期(,1980,年,1999,年),20,世纪,90,年代中期,,有两件事从根本上促进了自然语言处理研究的复苏与发展。,20,世纪,90,年代中期以来,计算机的运行速度和存储量大幅增加,为自然语言处理改善了物质基础,使得语音和语言处理的商品化开发成为可能;,1994,年,Internet,商业化和同期网络技术的发展使得基于自然语言的信息检索和信息抽取的需求变得更加突出。,从,20,世纪,90,年代末到,21,世纪初,,人们逐渐认识到,仅用基于规则或统计的方法是无法成功进行自然语言处理的。基于统计、基于实例和基于规则的语料库技术在这一时期开始蓬勃发展,各种处理技术开始融合,自然语言处理的研究再次繁荣。,90,年代后,,基于统计的自然语言处理开始大放异彩。首先是在机器翻译领域取得了突破,因为引入了许多基于语料库的方法。,1990,年在芬兰赫尔辛基举办的第,13,届国际计算语言学会议确定的主题是“处理大规模真实文本的理论、方法与工具”,研究的重心开始转向大规模真实文本了,传统的基于规则的自然语言处理显然力不从心了。,NLP,的发展历程,21,世纪之后,,自然语言处理又有了突飞猛进的变化。,2006,年,以,Hinton,为首的几位科学家历经近,20,年的努力,终于成功设计出第一个多层神经网络算法一一深度学习。,这是一种将原始数据通过一些简单但是非线性的模型转变成更高层次、更加抽象表达的特征学习方法,一定程度上解决了人类处理“抽象概念”这个亘古难题。深度学习在机器翻译、问答系统等多个自然语言处理任务中均取得了不错的成果,相关术也被成功应用于商业化平台中。,NLP,的发展历程,3.,繁荣,期(,200,0,年至今),NLP,研究内容包括很多的分支领域,,NLP,研究内容包括很多的分支领域,如文本分类、信息抽取、信息检索、信息过滤、自动文摘、智能问答、话题推荐、机器翻译、主题词识别、知识库构建、深度文本表示、命名实体识别、文本生成、文本分析(词法、句法和语法)、舆情分析、自动校对、语音识别与合成等。,部分,NLP,分支领域的介绍如下。,机器翻译:计算机具备将一种语言翻译成另一种语言的能力。,情感分析:计算机能够判断用户评论是否积极。,智能问答:计算机能够正确回答输入的问题。,文摘生成:计算机能够准确归纳、总结并产生文本摘要。,文本分类:计算机能够采集各种文章,进行主题分析,从而进行自动分类。,舆情分析:计算机能够判断目前舆论的导向。,知识图谱:知识点相互连接而成的语义网络。,NLP,研究内容,机器翻译又称为自动翻译,是利用计算机将一种自然语言转换为另一种自然语言的过程。机器翻译是计算语言学的一个分支,是人工智能的终极目标之一,具有重要的科学研究价值。,机器翻译 是自然语言处理中最为人所熟知的场景,国内外有很多比较成熟的机器翻译产品,如百度翻译等,还有提供支持语音输入的多国语言互译的产品(比如科大讯飞就出了一款翻译机)。,NLP,研究内容,1.,机器翻译,信息检索又称情报检索,是利用计算机系统从海量文档中找到符合用户需要的相关信息。,狭义的信息检索,:,仅指信息查询,。,广义的信息检索,:,是信息按一定的方式进行加工、整理、组织并存储起来,再根据信息用户特定的需要将相关信息准确的查找出来的过程。,NLP,研究内容,2,.,信息检索,文本分类又称文档分类或信息分类,其目的是利用计算机系统对大量的文档按照一定的标准进行分类,该技术拥有广泛的用途,例如垃圾短信分类问题。垃圾短信分类,如下表。,NLP,研究内容,3.,文本分类,编号,是否为广告,具体文本信息,1,0,商业秘密的秘密性那是维系其商业价值和垄断地位的前提条件之一,2,1,南口阿玛施新春第一批限量春装到店啦春暖花开淑女裙、冰蓝色公主衫 气质粉小西装、冰丝女王长半裙、,3,0,带给我们大常州一场壮观的视觉盛宴,4,0,有原因不明的泌尿系统结石等,5,0,23,年从盐城拉回来的麻麻的嫁妆,6,0,感到自减肥、跳减肥健美操、,智能问答是指问答系统能以一问一答的形式,正确回答用户提出的问题。,在一些电商网站有非常实际的价值,比如代替人工充当客服角色,有很多基本而且重复的问题,其实并不需要人工客服来解决,通过智能问答系统可以筛选掉大量重复的问题,使得人工座席能更好地服务客户。,NLP,研究内容,4.,智能问答,信息过滤是指信息过滤系统对网站信息发布、公众信息公开申请和网站留言等内容实现提交时的自动过滤处理。,如发现谩骂、诽谤等非法言论或有害信息时可以实现自动过滤,并给用户友好的提示,同时向管理员提交报告。,信息过滤技术目前主要用于信息安全防护、网络内容管理等。,NLP,研究内容,5.,信息过滤,文摘是指能够全面准确地反映某一文献中心内容的简单连贯的短文,自动文摘则是指利用计算机自动地从原始文献中提取文摘。,互联网每天都会产生大量的文本数据,文摘是文本的主要内容,用户想查询和了解关注的话题需要花费大量时间和精力进行选择和阅读,单靠人工进行文摘是很难实现的。为了应对这种状况,学术界尝试使用计算机技术实现对文献的自动处理。,自动文摘主要应用于,Web,搜索引擎、问答系统的知识融合和舆情监督系统的热点与专题追踪。,NLP,研究内容,6.,自动文摘,信息抽取是指从文本中抽取出特定的事件或事实信息。,例如,从时事新闻报道中抽取出某一恐怖事件的基本信息,如时间、地点、事件制造者、受害人、袭击目标、伤亡人数等。,信息抽取与信息检索有着密切的关系,信息抽取系统通常以信息检索系统的输出作为输入,并且信息抽取技术可以用于提高信息检索的性能。,NLP,研究内容,7.,信息,抽取,舆情分析是指根据特定问题的需要,对舆情进行深层次的思维加工和分析研究,得到相关结论的过程,舆情分析是一项十分复杂、涉及问题众多的综合性技术,同时也涉及网络文本挖掘、观点挖掘等各方面的问题。,舆情分析 可以帮助分析哪些话题是目前的热点,分析传播路径以及发展趋势,对于不好的與论导向可以进行有效的控制。,NLP,研究内容,8.,舆情分析,语音识别又称自动语音识别,是指对输入计算机的语音信号进行识别并转换成书面语言表示出来。,语音识别技术所涉及的领域众多,其中包括信号处理、模式识别、概率论和信息论、发声机理和听觉机理、人工智能等。,NLP,研究内容,9.,语音识别,自动校对是对文字拼写、用词、语法或文档格式等进行自动检查、校对和编排的过程。,电子信息的形成可通过多种途径,最通常的方法是用键盘输入,因而不免会造成一些输入错误,由此产生了利用计算机进行文本自动校对的研究。,自动校对系统可应用于报刊、出版社、打字业等需要进行文本校对的行业。,NLP,研究内容,10,.,自动校队,NLP,不仅是一种新兴的商业技术,更是一种广泛使用的流行技术。几乎所有涉及语言的功能都包含,NLP,算法。,NLP,在人们的日常生活中有广泛的应用,常见应用场景如下。,百度翻译,图灵机器人,微信语音转文字,新闻分类,NLP,的几个应用场景,百度翻译是百度公司发布的在线翻译服务,其依托互联网数据资源和,NLP,技术的优势,致力于帮助用户跨越语言鸿沟,方便快捷地获取信息和服务。百度翻译是一款比较成熟的机器翻译产品,百度翻译如下图所示。,NLP,的几个应用场景,1.,百度翻译,图灵机器人是以语义技术为核心驱动力的人工智能产品,其三大核心功能之一就是智能问答。图灵机器人提供超过了,500,种实用生活服务技能,涵盖生活、出行、学习、金融、购物等多个领域,能提供一站式服务满足用户的需求。,NLP,的几个应用场景,2,.,图灵机器人,微信中有一种将语音转化成文字的功能,其中的原理就是利用,NLP,、语音识别等技术,在基于语言模型和声学模型的转写引擎下,将持续语流转写成文字。,此技术的好处之一是方便快速阅读和理解,另一好处是可以方便对内容的二次推广以及多次利用。,成年人正常的语速为,160,字,/,分钟,语速比绝大多数人打字的速度都快,微信语音转文字功能的加入,可以极大地节省时间,提高工作效率。,NLP,的几个应用场景,3.,微信语音转文字,网络中存在越来越多的新闻信息积累,传统的手工新闻分类存在耗费大量人力和物力等诸多的弊端。,为了提高新闻分类的准确率和速度,新闻自动分类成为了发展方向。新闻分类有助于实现新闻的有序化管理,并对新闻进行挖掘分析。,百度就实现了新闻的分类,它涵盖了军事、财经、娱乐、游戏等多个分类,可以实现每隔一段时间自动获取更新,自动分类等操作,百度新闻分类如下图所示。,NLP,的几个应用场景,4,.,新闻分类,NLP,是人工智能研究的一个子领域,也是人工智能中最为困难的问题之一。,人工智能技术即是让机器能够像人类一样自动化完成智能任务的技术,其关键点在于智能和自动化。,NLP,与人工智能技术,人工智能在,1955,年达特茅斯特会议上被提出,而后人工智能先后经历了三次浪潮。,20,世纪,70,年代第一次,AI,浪潮泡沫破灭之后,相关研究者转而研究机器学习、数据挖掘、,NLP,等各个方向。,1990,年,AI,迎来第二次黄金时代,但是随着第五代计算机研制的失败,人工智能再次进入沉寂期。,2008,年左右,由于数据量的大幅度增长和计算力的大幅度提升,深度学习开始引领人工智能进入第三波浪潮,。,深度学习引入到,NLP,领域中,在机器翻译、问答系统、自动摘要等方向取得成功。,NLP,与人工智能技术,1.,人工智能发展历程,深度学习可以在,NLP,中取得这样的成绩主要归结为两点。,海量的数据。,经过之前互联网的发展,积累了足够多的数据可以用于学习。当数据量增大之后,以支持向量机(SVM)、条件随机场(CRF)为代表的传统浅层模型,无法对海量数据中的高维非线性映射做建模。以循环神经网络(RNN)为代表的深度模型,可以随着模型复杂度的增大而增强,更好贴近数据的本质映射关系,达到更优的效果。,深度学习算法的革新。,一方面,深度学习的,word2vec,的出现,可以将词表示为更加低维的向量空间,相对于,one-hot,方式,这既缓解了语义鸿沟问题,又降低了输入特征的维度,从而降低了输入层的维度,另一方面,深度学习模型非常灵活,使得之前的很多任务,可以使用端到端的方式进行训练,,提升了,性,能,。,NLP,与人工智能技术,2,.,深度学习与,NLP,NLP,在过去几十年的发展中,从基于简单的规则方法到基于统计学方法,再到现在的基于深度学习神经网络的方法,技术越来越成熟,在很多领域都取得了巨大的成就。,展望未来十年,随着数据的积累、云计算、芯片技术发展以及人工智能技术的发展等,自然语言必将越来越贴近人工智能。,除此之外,随着人工智能各领域的研究细化,跨领域的研究整合将是未来的发展方向。可预见的是,NLP,将会和计算机视觉、听觉、触觉等领域高度融合,反映在人工智能技术上就是语音识别和图像识别,达到包含语言、知识和推理的真正意义上的智能。,NLP,研究与应用已经取得较为丰硕的成果,但同时也面临着许多新的挑战。实际上对于,NLP,的很多问题,人类本身也不能达到非常准确、满意的解决。,并不是不允许人们对某项技术提出更高的要求和希望,重要的是应该如何建立有效的理论模型和实现方法,这也是,NLP,这门学科所面临的问题和挑战。,NLP,与人工智能技术,NLP,的发展已经进入了繁荣期,各行各业越来越多涉及,NLP,,使得,NLP,的学习成为了一种迫切的需要。由于自然语言的复杂性和多变性使得对于,NLP,的学习变得困难,具体面对的困难如下。,多学科场景的困难。,NLP,是一门融语言学、计算机科学、数学、统计学于一体的交叉学科,语言的多样性多变性以及歧义性给,NLP,的学习带来了困难。,理论学习的困难。,NLP,运用了多种复杂难懂的数学模型、例如概率图模型、隐马尔可夫过程(,HMM,)、最大熵模型、条件随机场模型(,CRF,)等,这些理论的理解对初学者来说有一定的难度。,语料的困难。,在,NLP,的实际项目中,通常要使用大量的语言数据或者语料,对应初学者来说,获取这些语料是比较困难的。,学习,NLP,的困难,1,NLP,基本流程,目录,自然语言处理概述,2,NLP,的开发环境,3,中文,NLP,流程和英文相比有一些特殊性,,,主要表现在文本预处理环节,。,首先,中文文本是没有像英文的单词空格那样隔开,因此不能直接像英文一样可以直接用最简单的空格和标点符号完成分词。一般需要用分词算法完成分词。,其次,中文的编码不是,utf-8,,而是,unicode,,在预处理的时候,需要处理编码的问题。这两点构成了中文相比英文的一些不同点。,中文,NLP,流程由语料获取、语料预处理、,文本向量化、模型构建、模型训练和模型评价,6,部分组成。,NLP,基本流程,在,NLP,之前,需要得到文本语料。文本语料的获取一般有下面几种方法。,利用已经建好的数据集,或第三方语料库,这样可以省去很多处理成本。,获取网上数据。很多时候所要解决的是某种特定领域的应用,仅靠开放语料库经常无法满足需求,这就需要用爬虫技术去获取需要的信息。,制定数据搜集策略来搜集数据。可以通过制定数据搜集策略,从业务的角度来搜集所需要的数据。,与第三方的合作获取数据。通过购买的方式满足部分需求文本数据。,语料获取,获取语料后还需要对语料进行预处理,常见的语料预处理如下。,去除数据中非文本部分。,大多数情况下,获取的文本数据存在很多无用的部分,,如爬取来的一些,html,代码、,css,标签和不需要用的标点符号等,这些都需要分步骤去除。少量的非文本内容可以直接用,Python,的正则表达式删除,复杂的非文本内容可以通过,Python,的一个库,Beautiful Soup,去除。,中文分词。,中文文本没有像英文单词空格那样隔开的,因此不能直接像英文一样可以直接用空格和标点符号完成分词。中文文本一般需要用分词算法完成分词。常用的中文分词软件有很多,如,jieba,、,FoolNLTK,、,HanLP,、,THULAC,、,NLPIR,、,LTP,等,本书使用,jieba,库为分词工具。,jieba,库是使用,Python,语言编写的,其安装步骤很简单,使用,pip install jieba,命令即可完成。,词性标注。,给词语标上词类标签,比如名词、动词、形容词等,常用的词性标注方法有基于规则的、基于统计的算法等。,去停用词。,停用词就是句子中没必要的单词,去掉停用词对理解整个句子的语义没有影响。,中文文本中存在大量的虚词、代词或者没有特定含义的动词、名词,在文本分析的时候需要去掉。,语,料预处理,数据处理经过除去数据中非文本部分、中文分词和去停用词,基本上是干净的文本了。但是无法直接把文本用于任务计算,需要通过某些处理手段,预先将文本量化为特征向量。,一般可以调用一些模型来对的文本进行处理,常用的模型有五个。,词袋模型(,Bag of Words,),one-hot,表示,TF-IDF,表示,n,元语法(,n-gram,)模型,Word2vec,模型。,文本向量化,文本向量化后,根据文本分析的需求进行模型构建。过于复杂的模型往往反而不是最优的选择。,模型的复杂度与模型训练时间呈现正相关,模型复杂度越高,模型训练时间往往也越长,而结果的精度可能与简单的模型相差无几。,自然语言处理中的使用的模型包括机器学习和深度学习两种。,常用的有机器学习模型有,KNN,、,SVM,、,Naive Bayes,、决策树、,K-means,等。,深度学习模型有,RNN,、,CNN,、,LSTM,、,Seq2Seq,、,FastText,、,TextCNN,等。,模型构建,构建模型完成后,则进行模型训练,其中包括了模型微调等。,在模型训练的过程中要注意两个问题。,一个为在训练集上表现很好,但在测试集上表现很差的过拟合问题。,另一个为模型不能很好地拟合数据的欠拟合问题。,同时,也要防止出现梯度消失和梯度爆炸问题。,仅训练一次的模型往往无法达到理想的精度与效果,需要进行模型调优迭代,提升模型的效果。,模型调优往往是一个复杂冗长且枯燥的过程,需要多次对模型的参数做出修正,调优的同时需要权衡模型的精度与泛用性,在提高模型精度的同时还需要避免造成过拟合。,模型训练,模型训练完成后,还需要对模型的效果进行评价。,模型的评价指标主要有准确率、精确率、召回率、,F1,值、,ROC,曲线、,AUC,曲线等。,针对不同类型的模型,所用的评价指标往往也不同。如分类模型常用的评价方法有准确率(,Accuracy,)、精确率(,Log loss,)、,AUC,等。,同一种评价方法也往往适用于多种类的模型。对于实际的生产环境,模型性能评价的侧重点也不一样,不同的业务场景对模型的性能有不同的要求,如可能造成经济损失的预测结果会要求更高的模型精度。,模型评价,1,NLP,基本流程,目录,自然语言处理概述,2,NLP,的开发环境,3,Python,语言以其清晰简洁的语法、易用和可扩展性以及丰富庞大的库深受广大开发者喜爱。,其内置的非常强大的机器学习代码库和数学库,使,Python,理所当然成为,NLP,的开发工具。,同时,Python,是开源且免费的,这意味着开发人员不需要花费资金即可进行开发。,采用,Python,进行,NLP,是再好不过的选择。这种强大的编程软件对初学者来说往往会遇到设置环境变量的困扰,为此推荐已经集成了,Python,开发环境且自带了多种常用数据科学库的软件,Anaconda,。,NLP,的开发环境,Anaconda,是一个开源的,Python,发行版本,其包含了,conda,、,Python,等,180,多个科学包及其依赖项。,Conda,是一个开源的包、环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换。,Anaconda,包含了大量的科学包,下载文件比较大。如果只需要某些包,或者需要节省带宽或存储空间,可以使用较小的发行版,Miniconda,(仅包含,conda,和,Python,)。,Anaconda,可以应用于多种系统,,Windows,、,Linux,还是,Mac OS X,,,都可以找到对应系统类型的版本。,Anaconda,可以同时管理多种不同版本的,Python,环境,,包括,Python 2,和,Python 3,两个版本。,A,naconda,安装,在,Windows,环境下,,Anaconda,的安装比较简单。,安装按照默认选项进行安装,在选择完路径后,可勾选所示的“,Add Anaconda to my PATH enviroment variable”,(添加,Anaconda,至我的环境变量路径中)选项。,勾选次选项的好处是方便后续创建多种版本的,Python,,坏处是可能会影响到其他程序的使用。,A,naconda,安装,Anaconda,安装完成后,在开始菜单栏中会出现如下几个应用。,Anaconda Navigtor,。,Anaconda Prompt,。,Jupyter Noterbook,。,Spyder,。,Anaconda,应用介绍,Anaconda Navigator,是,Anaconda,发行包中包含的桌面图形界面,可以在不需要使用命令的条件下,方便的启动应用程序,管理,conda,包、环境和频道。,单击,Anaconda Navigator,后会启动网页,网页上会出现,CMD.exe Prompt,、,JupyterLab,、,Jupyter Notebook,、,Spyder,、,RStudio,等应用。,如果要运行,Spyder,,直接从,Navigator,的,Home,页面单击,Spyder,,即可启动。,Anaconda,应用介绍,1.,Anaconda Navigtor,Anaconda Prompt,相当于命令提示符,CMD,,与,CMD,不同的是,Prompt,已经配置好环境变量。,初次安装,Anaconda,的包一般比较旧,为了避免之后使用报错,可以先单击,Anaconda Prompt,,然后输入“,conda update-all”,命令,更新所有包的版本,在提示是否更新的时候输入,y,(即,Yes,),然后等待更新完成即可。,在当前环境下可以直接运行,Python,文件(如输入,Python hello.py,)或者在命令行输入,Python,进入交互模式,如下图所示。,Anaconda,应用介绍,2,.,Anaconda Prompt,在开发过程中,很多时候不同的项目会需要用的不同版本的包,甚至是不同版本的,Python,,使用虚拟环境即可轻松解决这些问题。虚拟环境通过创建一个全新的,Python,开发环境,从而实现不同项目间的隔离。,打开,Anaconda Prompt,后,可以利用,Anaconda,自带的,conda,包管理不同的,Python,环境。刚开始学习,NLP,的读者,可以利用,conda,包创建一个自然处理的虚拟环境。,先查看,Python,版本,然后创建一个名为“,NLP”,的虚拟环境,并且指定,Python,版本。,Anaconda,应用介绍,(,1,)创建,NLP,的虚拟环境,创建虚拟环境完成之后,使用,activate,命令进入这个虚拟环境,并在,NLP,虚拟环境中查看配置的编译环境信息。,下图展示了刚创建的,NLP,虚拟环境的所在路径,路径显示该环境位于,Anaconda,安装路径下的,envs,文件夹中。在刚创建好的虚拟环境中,除了,Python,自带的包之外,没有其他的包。,Anaconda,应用介绍,(,2,)进入,NLP,虚拟环境,在学习过程,可以根据需要安装不同的程序包。,可通过,pip,命令或者,conda,命令两种方式安装程序包,即“,pip install package_name”,和“,conda install package_name”,,其中“,package_name”,是指程序包的名称。,在虚拟环境中,“,pip install”,只是安装需要安装的那个包本身,而“,conda install”,除了安装需要安装的包,还会自动安装这个包的依赖。,Anaconda,应用介绍,(,3,)进入,NLP,虚拟环境,在学习过程,可能会遇到需要退出或者删除环境的情况,可用代码进行操作。,使用代码“,conda deactivate,”可以,退出当前环境,回到最开始的环境,。,使用代码“,conda remove-name NLP-all,”可以删除已有的,NLP,环境。,Anaconda,能够管理不同环境下的包,使其在不同环境下互不影响。在,NLP,的学习过程中,会使用到很多的程序包,,Anaconda,的这种功能无疑为我们的学习提供了很大的便利。,Anaconda,应用介绍,(,4,)退出与删除环境,Jupyter Notebook,是一个在浏览器中使用的交互式的代码编辑器,可以将代码、文字结合起来,它的受众群体大多数是一些从事数据科学领域相关(机器学习、数据分析等)的人员。,在撰写含有程序的文章时,有时会有一大堆代码,这样不便于读者阅读,而使用,Jupyter Notebook,,可以一边编写代码,一边解释代码,非常适合用于交互。,Anaconda,应用介绍,3.,Jupyter Notebook,打开,Jupyter Notebook,有三种方式。,第一种是直接在开始菜单栏中单击,Anaconda,下的,Jupyter Notebook,。,第二种是在,Anaconda Prompt,中输入“,jupyter notebook”,,浏览器就会自动打开并且显示当前的目录。,第三种方式的操作步骤如下。,首先进入某个文件夹,然后按住“,Shift”,键并单击鼠标右键,在新窗口中单击“在此处打开,Powershell,窗口,(S)”,,如右图所示,这时会弹出命令窗口,接着输入“,jupyter notebook”,即可。,Anaconda,应用介绍,Jupyter Notebook,打开后单击右上角的,new,,选择,Python 3,选项,便可创建新笔记,如下图所示。,使用,Jupyter,运行,Python,程序时的界面如下图所示。,Anaconda,应用介绍,Jupyter,有编辑模式和命令模式两种输入模式。,当单元框的边框线是绿色时,,Jupyter,处于编辑模式,此时允许在单元中输入代码或者文本,按“,Esc”,键可切换为命令模式。,命令模式的边框线是灰色,键盘可以输入运行程序的命令,按“,Enter”,键切换为编辑模式。在编辑文档时,都是以,cell,为一个单元框,,cell,有,3,种类型,不同的类型代表不同的意义,,cell,的类型说明如下表所示。,代码编辑完成之后按快捷键,Shift+Enter,或者页面上方的,Run Cell,键执行,cell,中的命令。最后文档编辑完成后,保存文件默认为“,.ipynb”,的格式,但也可以保存为“,.py”“.md”“.html”,等格式。,Anaconda,应用介绍,类型,说明,-code,表示内容可以运行,-heading,表示此单元框的内容是标题(一级、二级、三级标题),-markdown,表示可以用,markdown,的语法编辑文本,Spyder,是一款囊括了代码编辑器、编译器、调试器和图形用户界面工具的集成开发环境(简称,IDE,)。,Spyder,与,Jupyter Notebook,一样是用于编写代码的,IDE,工具。,为了方便读者进行编写或修改代码,本书的代码使用,Spyder,进行编写和调试。,Anaconda,应用介绍,4.,Spyder,如上页图所示的标注,,Spyder,界面可分为菜单栏、查看栏、输出栏、状态栏及工作区,菜单栏下一栏被称为工具栏。各个区域的工作范围介绍如下。,菜单栏:放置所有功能和命令。,工具栏:放置快捷菜单并可通过菜单栏,View,的,Toolbars,复选框勾选。,工作区:编写代码的地方。,查看栏:查看文件、调试时的对象及变量。,输出栏:查看程序的输出信息并可作为,shell,终端输入,Python,语句。,状态栏:用于显示当前文件权限、编码,光标指向位置和系统内存。,Anaconda,应用介绍,菜单栏的常用命令与说明如下表所示。,Anaconda,应用介绍,命令,说明,-file,文件的新建、打开、保存、关闭操作,-Edit,文件内容的编辑如撤销、重复、复制、剪切等操作,-Run,运行键,可选择分块运行或整个文件的运行,-Consoles,可打开新的输出栏,-Tools,preferences,IPython console,Display,可以调整字号和背景颜色;,Graphic,勾选,Automatical load Pylab and NumPy modules,可在,IPython,界面直接编写,plot(),作图;,Startup,可设置启动执行的脚本,写入要导入的程序包,-Tools,preferences,Editor,Display,主要设置背景,行号,高亮等;,Code Analysis,可以设置代码提示,本章主要介绍一些与,NLP,相关的基础知识和基本概念。,首先介绍了,NLP,的基本概念以及发展历程。,其次讲解了,NLP,的研究内容以及几个常见应用,帮助读者了解,NLP,几个正在发展的领域和技术应用。,接着宏观地探讨了,NLP,与人工智能的关系以及学习,NLP,会遇到的困难。,最后介绍了,NLP,的基本流程和开发环境的创建。,小结,相关的实训、课程视频等资源:,相关的培训动态:,语料库,1,语料库种类与原则,目录,语料库概述,2,NLTK,库,3,语料库的获取,4,任务:语料库的构建与应用,5,语料库是为某一个或多个应用而专门收集的、有一定结构的、有代表性的、可以被计算机程序检索的、具有一定规模的语料的集合。,语料库的实质是经过科学取样和加工的大规模电子文本库。,语料作为最基本的资源,尽管在不同的,NLP,系统中所起到的作用不同,但是却在不同层面上共同构成了各种,NLP,方法赖以实现的基础。,语料库具备如下,3,个显著的特征。,语料库中存放的是真实出现过的语言材料。,语料库是以计算机为载体,承载语言知识的基础资源。,语料库是对真实语料进行加工、分析和处理的资源。,语料库简介,用于语言研究:,语料库为语言学的研究提供了丰富真实的语言材料,在句法分析、词法分析、语言理论及语言史研究中都起到了强大的作用。,用于编纂工具参考书籍:,一些对语言教学有重要影响的词典和语法书均是在语料库的基础上编写的。,用于语言教学:,在语言教学中,语料库可以帮助减少课堂上学习的语言与实际使用的语言之间的差距,发现过去被忽略的语言规律,能够更准确地理解一些词语在实际交际中的意义和用法,发现学习者使用语言时的一些问题。,用于,NLP,:,语料库按照一定的要求加工处理后可以应用到,NLP,的各个层面的研究中。语料库在词层面上进行分词、词性标注后,可以用于词法分析、拼写检查、全文检索、词频统计、名词短语的辩识和逐词机器翻译等。,语料库包含的语言词汇、语法结构、语义和语用信息为语言学研究和,NLP,研究提供了大量的资料来源。,语料库的用途,1,语料库种类与原则,目录,语料库概述,2,NLTK,库,3,语料库的获取,4,任务:语料库的的构建与应用,5,平衡结构语料库与自然随机结构语料库。,平衡结构语料库,:,平衡结构语料库的着重点是语料的代表性和平衡性,需要预先设计语料库中语料的类型,定义好每种类型语料所占的比例并按这种比例去采集组成语料库。,自然随机语料库,:,自然随机结构的语料库则是按照某个原则随机去收集组成语料,。,通用语料库与专用语料库。,通用语料库,:,通用语料库与专用语料库是从不同的用途角度上看问题得来的结果,,其中,不做特殊限定,。,专用语料库,:,专用语料库的选材可以只限于某一领域,为了某种专门的目的而采集。只采集某一特定领域、特定地区、特定时间、特定类型的语料所构成的语料库即为专用语料库,。,语料库种类,共时语料库与历时语料库。,共时语料库,:,共时语料库是为了对语言进行共时研究而建立的语料库,即无论所采集语料的时间段有多长,只要研究的是一个时间平面上的元素或元素的关系,,具有共时性,,,则是共时研究。,历时语料库:,历时语料库是为了对语言进行历时研究而建立的语料库,即研究一个历时切面中元素与元素关系的演化。,根据历时语料库得到的统计结果是依据时间轴的等距离抽样得到的若干频次变化形成的走势图。,语料库种类,代表性,:,样本语料尽可能多地反映无限的真实语言现象和特征。,结构性:,语料集合结构包括语料库中语料记录的代码,元数据项、数据类型、数据宽度、取值范围、完整性约束。,平衡性:,平衡性是指语料库中的语料要考虑不同内容的平衡性。,规模性,:,大规模的语料库对于语言研究特别是对,NLP,研究具有不可替代的作用,但随着语料库的增大,垃圾语料带来的统计垃圾问题也越来越严重。因此在使用时,应根据实际的需要来决定语料库的规模。,语料库,的构建,原则,1,语料库种类与原则,目录,语料库概述,2,NLTK,库,3,语料库的获取,4,任务:语料库的的构建与应用,5,NLTK,(,Natural Language Toolkit,)是一个用于构建处理自然语言数据的,Python,应用开源平台。,NLTK,提供了超过,50,多个素材库和词库资源的易用接口,涵盖了分词、词性标注、命名实体识别、句法分析等各项,NLP,领域的功能。,NLTK,支持,NLP,和教学研究,它收集的大量公开数据集和文本处理库,可以用于给文本分类、符号化、提取词根、贴标签、解析及语义推理等。,NLTK,也是当前最为流行的自然语言编程与开发工具,,在进行,NLP,研究和应用时,利用,NLTK,中提供的函数可以大幅度地提高效率,。,NLTK,简介,NLTK,模块及功能。,NLTK,库,功能,模块,描述,获取语料库,nltk.corpus,语料库和词典的标准化切口,字符串处理,nltk.tokenize,、,nltk.stem,分词、分句和提取主干,词性标注,nltk.tag,HMM,、,n-gram,、,backoff,分类,nltk.classify,、,nltk.cluster,朴素贝叶斯、决策树、,K-means,分块,nltk.chunk,正则表达式、命名实体、,n-gram,指标评测,nltk.metrics,准确率、召回率和协议系数,概率与评估,nltk.prob
展开阅读全文