目录

AI学习笔记之自然语言处理

自然语言处理(Natural Language Processing)

自然语言简介

自然语言处理的难点

自然语言处理的现状

基于深度学习的自然语言处理

NLP的处理过程

获取预料

语料预处理

特征工程

模型训练

NLP研究任务


AI学习笔记之自然语言处理

自然语言处理(Natural Language Processing)

自然语言简介

  • 自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有相通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。
  • 自然语言处理并不是一般地研究自然语言,而是在研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。因而它是计算机科学的一部分。
  • 自然语言处理(NLP)是计算机科学,人工智能,语言学关注计算机和人类(自然)语言之间的相互作用的领域。

自然语言处理的难点

单词的边界界定

在口语中,词与词之间通常是连贯的,而界定字词边界通常使用的办法是取用能让给定的上下文最为通顺且在文法上无误的一种最佳组合。在书写上,汉语也没有词与词之间的边界。

语义的消歧

许多字词不单只有一个意思,因而我们必须选出使句意最为通顺的解释。

句法的模糊性

自然语言的文法通常是模棱两可的,针对一个句子通常可能会剖析(Parse)出多棵剖析树(Parse Tree),而我们必须要依赖语义及前后文的信息才能在其中选择一颗最为适合的剖析树。

有瑕疵或不规范的输入

例如语言处理时遇到外国口音或者地方口音,或者在文本的处理拼写,语法或者光学字符识别(OCR)的错误。

语言行为与计划

句子常常并不是字面上的意思,例如,“你们把书递过来吗”,一个好的回答应当是把书递过去;在大多数上下文环境中,“能”将是最糟糕的回答,虽然回答“不”或者“太远了,我拿不到”也是可以接受的。再者,如果一门课程上一年没有开设,对于提问“这门课程去年有多少学生没通过?”回答“去年没开这门课”要比回答“没人没通过”好。

自然语言处理的现状

研究的基本问题

语音学、形态学、语法学、语义学、语用学

研究的主要内容

机器翻译、信息检索、自动文摘、文档分类、问答系统、文字识别、语言识别、语音生成

面临的困难

语义歧义、情景多样、存在未知的语言现象

基于深度学习的自然语言处理

NLP的处理过程

获取预料

预料,即语言材料。语料是语言学研究的内容。其是构成语料库的基本单元。所以,人们简单地用文本作为替代,并把文本中的上下文关系作为显示世界中语言的上下文关系的替代品。我们把一个文本集合称为语料库(Corpus),当有几个这样的文本集合的时候,我们称之为语料库集合(Corpora)。

按语料来源,我们将语料分为以下两种:

1、已有语料,很多业务部门、公司组织随着业务发展都会积累有大量的纸质或者电子文本资料。那么,对于这些资料,在允许的条件下我们稍加整合,把纸质的文本全部电子化就可以作为我们的语料库。

2、网上下载、抓取语料:如果现在个人手里没有数据,可以选择获取国内外标准开放的数据集,比如国内的中文汉字有搜狗语料、人民日报语料。国外大都是英文或者外文,也可以选择通过爬虫自己去抓取一些数据,然后进行后续内容。

语料预处理

主要通过数据清洗、分词、词性标注、去停用词四个大的方面来完成预料的预处理工作。

数据清洗

数据清洗的主要目的在于找到我们感兴趣的东西,把不感兴趣的、视为噪音的内容清洗删除,包括对于原始文本提取标题、摘要、正文等信息,对于爬取的网页内容,去除广告、标签、HTML、JS等代码和注释等。常见的数据清洗方式有:人工去重、对齐、删除和标注等,或按照规则提取内容、正则表达式匹配、根据词性和命名实体提取、编写脚本或者代码批量处理等。

分词

中文 语料 数据 为一批 短文本 或者 长文本,比如:句子,文章摘要,段落或者整篇文章组成的一个集合。一般句子、段落之间的字、词语是连续的,有一定含义。而进行文本挖掘分析时,我们希望文本处理最小单位粒度是词或者词语,所以这个时候就需要分词来讲文本全部进行分词。

当前中文分词算法的主要难点有歧义识别,不如:“羽毛球拍买完了”,这个可以且分为“羽毛 球拍 买 完 了”,也可以切分为“羽毛球 拍卖 完 了”,如果不依赖上下文其他的句子,很难知道如何去解释。

词性标注

词性标注,就是给每个词或者词语打词类标签,或形容词、动词、名词等。这样做可以让文本在后面的处理中融入更多有用的语言信息。词性标注是一个经典的序列标注问题,不过对于有些中文自然语言处理来说,词性标注不是必需的。比如,常见的文本分类就不用关心词性问题,但是类似情感分析,知识推理却是需要的。常见的中文词性整理如下图:

去停用词

停用词一般指对文本特征没有任何贡献作用的字词,比如标点符号、语气、人称等一些词。所以在一般性的的文本处理中,分词之后,接卸来一步就是去停用词。但是对于中文来说,去停用词操作不是一层不变的,停用词词典是根据具体场景来决定的,比如在情感分析中,语气词、感叹号是应该保留的,因为他们对标识语气程度、刚请色彩有一定的贡献和意义。

特征工程

做完预料预处理之后,接下来需要考虑如何把分词之后的字和词表示成计算机能够计算的类型。显然,如果要计算,我们至少需要把中文分词的字符串转换成数字,确切地说应该是向量化,有两种畅通的表示模型分词是词袋模型和词向量。

  • 词袋模型(Bag of Word,BOW),即不考虑词语原本在句子中的顺序,直接将每一个词语或者符号统一放置在一个集合(如list),然后按照计数的方式对出现的次数进行统计。
  • 词向量是将字、词语转化成向量矩阵的计算模型。目前为止常用的此表示方式是One-hot,这种方法是把每个词表示为一个很长的向量。

模型训练

在特征向量选择好之后,接下来要做的事情当然就是训练模型,对于不同的应用需求,我们使用不同的模型,传统的有监督和无监督等机器学习模型。如K-means等模型;深度学习模型比如CNN、RNN、LSTM等。

NLP研究任务

NLP可以被应用于很多领域,例如:机器翻译、情感分析、智能问答、文摘生成(归纳总结)、文本分类、舆论分析、知识图谱(知识点相互连接而成的语义网络)等。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐