《人工智能导论PPT第四章.pptx》由会员分享,可在线阅读,更多相关《人工智能导论PPT第四章.pptx(26页珍藏版)》请在文库网上搜索。
1、自然语言处理的概念 n自然语言处理(自然语言处理(Natural Language Processing)是计算机科学领域与人)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。算机科学、数学于一体的科学。n自然语言处理自然语言处理(NLP)(NLP)已经成为现代系统的重要组成部分。它广泛应用于已经成为现代系统的重要组成部分。它广泛应用于搜索引擎、人机
2、对话接口、文档处理等。机器可以很好地处理结构化数搜索引擎、人机对话接口、文档处理等。机器可以很好地处理结构化数据。但是,当涉及到无固定形式的文本时,它将很难处理。据。但是,当涉及到无固定形式的文本时,它将很难处理。NLPNLP的目标的目标是开发一种算法,使计算机能够理解无结构的文本,并帮助他们理解这是开发一种算法,使计算机能够理解无结构的文本,并帮助他们理解这种语言。种语言。在这一章中,我们将讨论用于分析文本和构建NLP应用程序的各种基础概念。这将使我们能够理解如何从给定的文本数据中提取有意义的信息。在本章的开始,我们需要先导入Python的第三方库NLTK(Natural Language
3、Toolkit),它是一个自然语言处理工具包,在之后的程序中我们会用到它。此外,为了能够访问NLTK提供的数据集,我们需要下载这些数据集。我们需要在终端下进入Python环境,并输入以下代码来下载这些数据集:import nltk nltk.download()另外,本章中还使用一个名为gensim的Python包,它是一个健壮的语义模型库 为了让gensim更好地发挥作用,你还需要安装一个名为pattern的软件包。文本分词与词汇还原当我们处理文本时,我们需要将它拆分成小片来进行分析。它是将输入的文本分成像单词或句子的一小片,这些片被称之为原型。我们可以根据自己所想,定义自己的方法将文本分成
4、许多片。例如我们用这样一个句子来进行分词:Do you know what natural language processing is?This is a very interesting technology!Well look at it in this section.如果我们是以句子为原型进行分词,那么结果是这样的:Do you know how tokenization works?Its actually quite interesting!Lets analyze a couple of sentences and figure it out.如果我们以单词为原型进行分词,那么
5、结果是这样的:Do,you,know,what,natural,language,processing,is,?,This,is,a,very,interesting,technology,!,We,ll,look,at,it,in,this,section,.如果我们按照标点符号来进行划分的话,那么它们也会被单独划分出来。文本分词n中文分词的情况就比较麻烦了。在中文文本中,所有的词语连接在一起,计算机并不知道一个字应该与其前后的字连成词语,还是应该自己形成一个词语。n对文本构建词袋之前,需要先借助额外的手段将文本中的词语分隔开。使用stemming还原词汇对于一些变化的词汇,我们必须处理相同
6、单词的不同形式,并且使计算机能够明白这些不同的单词有相对的形式。例如,单词write能够以很多形式出现,如wrote、writer、writing等等。使用stemming还原词汇 分析文本时,提取这些基本形式是很有用的。它将使我们能够提取有用的统计信息来分析输入文本。词干提取(stemming)能够做到这一点。词干提取器(stemmer)的目的是通过将单词的不同形式转换为基本形式来减少单词量。去掉单词的尾部将其变成基本形式是一个启发式的过程。使用lemmatization还原词汇nLemmatization是另一种词形还原的方式。在前一节中,我们看到从词干中提取词的基本形式有时候可能没有任何
7、意义。例如,三个词干提取器都显示calves的基本形式是calv,但它并不是一个真正的单词。Lemmatization采取了一种更具结构化的方法解决了这个问题。nLemmatization原理是使用语法和词态分析器进行单词分析。它包含去除了如ing和ed等后缀的单词的基本形式。所有基本形式的单词集合被称作字典。如果你使用Lemmatization对calves进行词形还原,将输出calf。值得注意的是单词基本形式的输出依赖于该词是动词还是名词。思考题n请大家在互联网上查找更多的词汇还原工具。文本分块与词袋模型n文本分块文本分块n文本数据经常需要被分成一小块来进行分析,这个过程称之为分块。这种技
8、术在文本分析中使用频繁。使用文本分块的情况变化很多,各不相同,这依赖于手头的项目。文本分块与分词不同。在分块时,我们不受任何条件的限制,并且输出的结果是有意义的。n当我们处理大篇幅的文本文档时,将文本分块就显得很重要,这有利于提取有意义的信息。我们可以根据单词的数量来进行分块,也可以根据其它的一些条件来分块。文本分块与词袋模型n词袋模型词袋模型nBag of Words,也称作“词袋”。它用于描述文本的一个简单数学模型,也是常用的一种文本特征提取方式。在信息检索中,词袋模型假定对于一个文本,忽略其次序和语法,将其仅仅看作是若干词汇的集合。文档中每个单词的出现都是独立的,不依赖于其它单词是否出现
9、。也就是说,文档中任意一个位置出现的任何单词,都不受该文档语意影响而是独立选择的。nJanewantstogotoShenzhen.nBobwantstogotoShanghai.n例如上面2个例句,就可以构成一个词袋,袋子里包括Jane、wants、to、go、Shenzhen、Bob、Shanghai。假设建立一个数组(或词典)用于映射匹配1 Jane,wants,to,go,Shenzhen,Bob,Shanghai那么上面两个例句就可以用以下两个向量表示,对应的下标与映射数组的下标相匹配,其值为该词语出现的次数1 1,1,2,1,1,0,02 0,1,2,1,0,1,1词袋模型n词袋模
10、型非常简单,但还需要与一些文本处理技术相搭配才能在应用中取得较好的效果,比如TF-IDF、LDA等技术。思考题n为什么要删除停止词与低频词?如果不删除效果是什么样的?使用TF-IDF算法构建文档类别预测器n文档类别预测器是用于预测所给出的文档所属的类别。这频繁的使用在文本分类中并进行文档归类。搜索引擎也频繁的使用这个工具进行相关结果搜索。nTF-IDF(term frequencyinverse document frequency)是一种用于信息检索与数据挖掘的常用加权技术。TF意思是词频(Term Frequency),IDF意思是逆文本频率(Inverse Document Freque
11、ncy)。nTFIDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。思考题nTF-IDF算法有什么缺点,有什么策略可以降低?案例:构建语义分析器n语义分析是确定给定文本片段的语意的过程。例如,它能够被用来确定一个电影评论是积极还是负面的。这是自然语言处理最流行的应用之一。我们可以根据手头的问题添加更多的类别。这种技术通常用于了解人们对特定产品,品牌或主题的感受。它经常用于分析营销活动、民意调查、社会媒体形象、电子商务网站的产品评价等等。n我们将使用朴素贝叶斯分类器来构建这个分类器。首先要提取在文本中
12、的所有唯一的单词。NLTK分类器需要将这些数据以字典的形式进行排列,以便能够摄取它。然后将文本数据划分为训练集和测试集,使用训练集训练朴素贝叶斯分类器将影评分为正面和负面的。我们也会标记出最重要的单词来指出正面和负面的影评。这个信息是有用的,因为它告诉我们用什么词来标识什么反应。文档主题生成模型主题模型(topic modeling)指一种统计模型,用来从一批文档的集合中发现抽象的主题。如果文本包含多个主题,那么该技术可用于识别和分离输入文本中的主题。这样做是为了在给定的一组文档中发现隐藏的主题结构。文档主题生成模型nLDA(Latent Dirichlet Allocation)是一种文档主
13、题生成模型,也称为一个三层贝叶斯概率模型,包含词、主题和文档三层结构。n所谓生成模型,就是说,我们认为一篇文章的每个词都是通过“以一定概率选择了某个主题,并从这个主题中以一定概率选择某个词语”这样一个过程得到。文档到主题服从多项式分布,主题到词服从多项式分布。nLDA是一种非监督机器学习技术,可以用来识别大规模文档集(document collection)或语料库(corpus)中潜藏的主题信息。它采用了词袋(bag of words)的方法,这种方法将每一篇文档视为一个词频向量,从而将文本信息转化为了易于建模的数字信息。但是词袋方法没有考虑词与词之间的顺序,这简化了问题的复杂性,同时也为模型的改进提供了契机。每一篇文档代表了一些主题所构成的一个概率分布,而每一个主题又代表了很多单词所构成的一个概率分布。小结在这一章中,我们学习了关于各种自然语言处理的基本概念。我们讨论了分词以及如何将输入文档分离成多个词。我们学习了如何使用stemming和lemmatization将单词还原成基本形式。我们讨论了什么是词袋模型,并且为输入的文本构建了一个文档的单词矩阵,我们之后学习了怎样使用机器学习进行文本的分类。我们还使用机器学习分析影评。最后,我们讨论了基于LDA的主题建模。