自然语言处理入门 第一章 新手上路
开始学习自然语言处理方面的知识了,仅以此记录下学习历程。
- 1.1自然语言与编程语言
- 1.1.1非结构化
- 1.1.2歧义性
- 1.1.3容错性
- 1.1.4易变性
- 1.1.5简略性
- 1.2自然语言处理的层次
- 1.2.1语音、图像、文本
- 1.2.2中文分词、词性标注、命名实体识别
- 1.2.3信息抽取
- 1.2.4文本分类与聚类
- 1.2.5句法分析
- 1.2.6语义分析与篇章分析
- 1.2.7其他高级任务
- 1.3自然语言处理的流派
- 1.3.1基于规则的专家系统
- 1.3.2基于统计的学习方法
- 1.3.3历史
- 1.3.4传统方法与深度学习
- 1.4机器学习
- 1.4.1什么是机器学习
- 1.4.2模型
- 1.4.3特征
- 1.4.4数据集
- 1.4.5监督学习
- 1.4.6无监督学习
- 1.4.7其他类型的机器学习算法
- 1.5语料库
- 1.5.1中文分词语料库
- 1.5.2词性标注语料库
- 1.5.3命名实体识别语料库
- 1.5.4句法分析语料库
- 1.5.5文本分类语料库
- 1.5.6语料库建设
- 1.6开源工具
1.1自然语言与编程语言
自然语言是非结构化的,具有歧义性、容错性、易变性、简略性的特点。
1.1.1非结构化
编程语言是结构化比较强的,比如创建类,调用方法,都是遵循一定的格式的,而自然语言中不存在这样的显式结构。
举个例子“苹果的创始人是乔布斯,它的logo是苹果”。计算机需要分析出下面的结论:
首先,需要对这句话进行序列化:“苹果 的 创始人 是 乔布斯 , 它 的 logo 是 苹果”;
其中,第一个“苹果”指的是苹果公司,第二个“苹果”是水果中的苹果。
“乔布斯”是人名。
“它”指的是“苹果公司”。
苹果公司和乔布斯的关系是“的创始人是”,与苹果的关系是“的logo是”
上述操作涉及到了中文分词、命名实体识别、指代消解和关系抽取等自然语言处理的任务
1.1.2歧义性
汉字存在一词多义的情况。
1.1.3容错性
要处理的文本不一定都是规范的。
1.1.4易变性
经常会有新词汇和旧词新用的情况出现。
1.1.5简略性
交流时经常省略背景或常识,比如“老地方见”。
1.2自然语言处理的层次
文本->词法分析->句法分析->语义分析->篇章分析
1.2.1语音、图像、文本
NLP系统的三大输入源。语音和图像一般经过识别后转化成文本,再进行接下来的处理,分别称为语音识别和光学字符识别。
1.2.2中文分词、词性标注、命名实体识别
这三个任务统称为词法分析。词法分析的主要任务是将文本分割成有意义的词语(中文分词),确定每个词语的词性(词性标注),并且识别出一些较长的专有名词-人名、地名、机构名(命名实体识别–命名实体有什么根本上取决于开发者关心什么)。
1.2.3信息抽取
根据分出的单词和标签,可以提取出高频词、关键词、术语等。还可以根据词语之间的统计学信息抽取出关键短语乃至句子。
1.2.4文本分类与聚类
将文本拆分成一系列词语之后,我们还可以在文章级别做一系列分析。
文本分类:将文本分门别类地整理。
文本聚类:把相似的文本归档到一起,或者排除重复的文档,而不关心具体的类别。
1.2.5句法分析
词语之间的主谓关系、动宾关系、定中关系等。
1.2.6语义分析与篇章分析
相较于句法分析,语义分析侧重于语义而非语法。包括词义消歧(确定一个词在语境中的含义)、语义角色标注(标准句子中的谓语与其他成分的关系)乃至语义依存关系(分析句子中词语之间的语义依存关系)。
1.2.7其他高级任务
除了上述功能外,还有自动问答、自动摘要、机器翻译等。
IR(信息检索)的目标是查询信息,NLP的目标是理解语言。IR检索的未必是语言,可能是以图搜图、听歌搜曲、商品搜索等。
1.3自然语言处理的流派
1.3.1基于规则的专家系统
要求设计者对要处理的问题有深入的了解,对设计者要求比较高,而且,设计的规则之间经常有冲突,遇到冲突时,一般按照优先级处理。随着规则数量增加,团队人数增加,需要考虑的兼容性问题更多,更复杂,成本变高,且难以扩展。
1.3.2基于统计的学习方法
使用统计方法让计算机自动学习语言。所谓“统计”,指的是在语料库上进行的统计;所谓“语料库”,指的是人工标注的结构化文本。
统计学习方法是机器学习的别称,机器学习是当代实现人工智能的主流途径。
1.3.3历史
规则系统->统计方法->深度学习
统计模型:隐马尔可夫模型->感知机->条件随机场->神经网络
特征工程:根据语言学知识为统计模型设计特征模板。
深度学习:指的是深层神经网络,其魅力在于不再依赖专家制定的特征模板,而能够自动学习原始数据的抽象表示,所以主要用来学习。
1.3.4传统方法与深度学习
深度学习在CV领域成绩显著,但是在NLP领域发力不大。截止2015年,词性标注模型中,除了Bi-LSTM-CRF之外,其他的都是传统模型,而且相较于传统模型,准确率并未提升太多;
无论是传统统计模型,还是神经网络,都是统计学习方法,都是机器学习范畴。
1.4机器学习
1.4.1什么是机器学习
机器学习是让机器学会算法的算法。
机器学习算法指导机器自动学习出另一个算法,这个算法被用来解决实际问题。被学习出的算法称为模型。
1.4.2模型
模型是对现实问题的抽象。
f(x)=w*x+b
w和b是参数,x是函数的自变量。
模型指的是包括参数在内的整个函数,但不包括自变量。
x:特征向量,表示一个对象的特征。
w:特征权重。
1.4.3特征
特征指的是事物的特点转化的数值。
在机器学习中,“优先级”可以看作特征权重或模型参数。我们只需要定义一系列特征,让算法根据数据自动决定它们的权重就行了。
为了方便计算机处理,我们把特征处理成数值型的特征,这个过程叫特征提取。
工程上,不需要逐个写特征,而是定义一套模板提取特征,这种模板叫特征模板。
如何挑选特征,如何设计特征模板,这称作特征工程。
1.4.4数据集
如何让机器自动学习?首先要有一些例子,如识别一个名字是男性还是女性,先准备大量例子(人名x及其对应的性别y),作为习题集,希望机器自动从习题集中学习中国人名的规律。“例子”一般称作样本。
习题集在机器学习领域叫做数据集,在NLP领域叫做语料库。大部分数据集不可商用,有些领域的数据集很匮乏,需要我们自行标注。
1.4.5监督学习
如果习题集带标准答案,则此时的学习算法称作监督学习。监督学习算法让机器先做一遍题,然后和标准答案作比较,最后根据误差纠正模型的错误。
经过一次次迭代,不断地修正特征权重,提高模型的准确率,这时候,我们需要的特征的“优先级”(特征权重)也就自动求出求出来了。
这种在带有标签的数据集上迭代学习的过程称作训练,训练用到的数据集称为训练集。训练的结果是一系列参数(特征权重)或模型。利用模型,我们可以为任意一个名字计算一个值(男或女),这个过程称为预测。
样本的选择对于最终模型训练的好坏影响很大。
监督学习时,要用标注数据,含有人工标注的成本。
1.4.6无监督学习
如果只让机器做题,但是不给答案,这种学习叫做无监督学习。这种不含标准答案的习题集叫做无标注(unlabeled)数据集。
机器只能发现样本之间的联系,而无法学习样本与答案之间的关联。
无监督学习一般用于聚类和降维,两者都不需要标注数据。
聚类:
一个样本属于哪个簇,由样本之间的相似度和簇的颗粒度来决定。
降维:
如果样本有n个特征,则对应于n+1维空间中的一个点。为了可视化,需要降至二维或三维空间,在降维的过程中,尽量避免有效信息的损失,这就要求每个维度之间的方差尽量大。
网上有很多未标注的数据集,但是这种无监督学习无法捕捉到用户的标准,与用户心中的答案相去甚远,准确率比较低,无法达到生产要求。
1.4.7其他类型的机器学习算法
半监督学习:综合利用标注数据和丰富的未标注数据。训练多个模型,然后对同一个实例预测,会得到多个结果,进行投票,多数一致,则将该实例与结果放到一起作为新的训练样本,就这样,不断地充实训练集。----启发式半监督学习。
强化学习:现实世界中的事物往往有很长的因果链,所以需要我们正确地执行一系列彼此关联的决策,才能得到最终的成果。这类问题需要一边预测,一边根据环境的反馈规划下次决策。
1.5语料库
语料库是NLP领域的数据集,是我们教机器理解语言不可或缺的习题集。
1.5.1中文分词语料库
指的是由人工正确切分后的句子集合。
1.5.2词性标注语料库
指的是切分并为每个词语指定一个词性的语料。素有词性的集合叫做词性标注集。
1.5.3命名实体识别语料库
通常有人名、地名和机构名。命名实体类型有什么取决于语料库制作者关心什么。
1.5.4句法分析语料库
汉语中常用的句法分析语料库有CTB(Chinese TreeBank,中文树库),里面的每个句子都经过了分词、词性标注和句法标注。
1.5.5文本分类语料库
指的是人工标注了所属分类的文章构成的语料库。以搜狗文本分类语料库为例,包含汽车、财经、IT、军事等领域。标注的过程实际上就是把许多文档整理后放到不同的文件夹中。
1.5.6语料库建设
指的是构建一分语料库的过程,分为规范制定、人员培训与人工标注三个阶段。
成熟的标注软件:brat,支持词性标注、命名实体识别和句法分析。
1.6开源工具
NLTK、CoreNLP、LTP、HanLP。
自然语言处理入门 第一章 新手上路相关推荐
- MicroPython_ESP8266_IoT——第一回 新手上路(开始之前要准备)
第一回 新手上路(开始之前要准备) 本系列涉及到使用的软件和硬件并不像以前那样繁琐.复杂.如果之前有这方面的了解,初学过Python或者用过80C51或STM32系列的MCU,那么这一回的内容就跟吃馍 ...
- Python入门——第一章 python编程基础
Python入门 文章目录 Python入门 第一章 python编程基础 1.1 基本输入输出 1.1.1使用print()函数进行简单输出 chr()函数 print()输出到指定文件 print ...
- 第一章 - 新手入门 - 第二课 Arduino 简介
前言 Hello 大家好,你们心爱的马老师又满血回来了,今天我们开始Arduino系列大讲堂第一章.第二讲,也就是咱们的第二课:Arduino 简介,不知道大家还有没有印象,我们上一节课讲的啥,有没有 ...
- 蓝桥杯比赛常考算法_备战蓝桥--算法竞赛入门第一章总结
笔者备战蓝桥杯先打算看完<算法竞赛入门经典>第2版,在这里写下第一章的笔记,供自己和大家参考. 鸡兔同笼问题 原题: 已知鸡和兔的总数量为n,总腿数为m.输入n和m,依次输出鸡的数目和兔的 ...
- NLP01(自然语言处理)第一章 绪论
第一章 绪论 目录 第一章 绪论 1.1问题的提出 1.2基本概念 1.3 HLT的产生和发展 1.4 研究内容 按照应用目标划分,广义上包括: 1.5 基本问题和主要困难 1.6 基本研究方法 1. ...
- SEO学习步骤--SEO入门第一章
SEO学习步骤 摘要:学习SEO应该从哪里开始,每一个SEO都应该掌握这一学习SEO的方法:定位网站.需求分析选择好的内容.站内优化.站外优化.推广.数据分析.体验分析. 学习步骤: 1.定位好网站内 ...
- jQuery入门第一章(jQuery初体验)
JQ 基本概念 jQuery 其实就是别的团队封装好的一个 JS 文件. 常见错误 没有引入 jQuery 文件,引入失败,请检查 jquery.js 文件的路径. JQ 对象 和 DOM 对象互相转 ...
- WebApi入门第一章(WebApi介绍)
本文部分内容参考官方文档 1.WebAPI概念介绍 API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于 ...
- [算法竞赛入门]第一章_算法概述
1 第1部分 语 言 篇2 3 第1章 程序设计入门4 [学习内容相关章节]5 1.1算术表达式 1.2变量及其输入 1.3顺序结构程序设计6 1.4分支结构程序设计 1.5C/C++编码规范 1.6 ...
- C基础入门 - 第一章 - C语言绪言
第1章 C语言绪言 1.1 C语言概述 1.1.1 C语言世界 1.1.2 C语言学习, 能当饭吃吗 1.2 开发环境构建 1.2.1 visual studio安装使用 1.2.2 visual s ...
最新文章
- JAVA实现变态跳台阶问题(《剑指offer》)
- pytorch 忽略层权重
- bbs php redis,LAMP+redis搭建discuz论坛
- InfoComm China 2019,揭秘“NVIDIA风格”数据科学!
- django生产环境部署
- 一张图看完成都云栖大会的精彩,请用心感受!
- NodeJS使用淘宝 NPM 镜像/NPM使用国内源
- php对接银行接口,php 银行接口开发写法
- python中高阶函数和装饰器_Python高阶函数与装饰器函数的深入讲解
- java web xml配置详解_Java Servlet web xml 配置详解
- 手把手教你整合SpringCloud微服務框架-dubbo框架+zookeeper服务的注册发现+druid数据源管理
- [c51单片机]利用Protues 仿真C51单片机8位数码管
- centos查询 硬盘序列号查询_centos 查看硬盘SMART健康信息
- 机器学习梯度消失,梯度爆炸原因
- Docker编译安装httpd
- LTE(4G) - NR(5G) EPS承载
- 程序员的蜕变之旅-健身
- 精准识别-发票扫描仪
- 机器学习(2)逻辑回归
- The user name or passphrase you entered is not correct for Mac Xcode