目录
- 前言
- 1. 自然语言与编程语言
- 2. 自然语言处理层次
- 2.1 语音、图像和文本
- 2.2 中文分词、词性标注和命名实体识别
- 2.3 信息抽取
- 2.4 文本分类与文本聚类
- 2.5 句法分析
- 2.6 语义分析与篇章分析
- 2.7 其它高级任务
- 3. NLP发展历史
- 4. 机器学习
- 5. 语料库
前言
自然语言处理(Natural Language Processing,NLP)是一门融合了计算机科学、人工智能以及语言学的交叉学科,这门学科研究的是如何通过机器学习等技术,让计算机学会处理人类语言,乃至实现终极目标——理解人类语言或人工智能。
1. 自然语言与编程语言
- 词汇量
- C语言32个关键字
- Java语言有50个关键字
- 结构化
自然语言是非结构化的,而编程语言是结构化的。
class Company(object):def __init__(self, founder, logo) -> None:self.founder = founderself.logo = logoapple = Company(founder='乔布斯', logo='apple')
- 歧义性
他说:“她这个人真有意思(funny)。”她说:“他这个人怪有意思的(funny)。”于是人们以为他们有了意思(wish),并让他向她意思意思(express)。他火了:“我根本没有那个意思(thought)!”她也生气了:“你们这么说是什么意思(intention)?”事后有人说:“真有意思(funny)。”也有人说:“真没意思(nonsense)”。(原文见《生活报》1994.11.13.第六版)[吴尉天,1999]
4. 容错性
-
易变性
-
简略性
由于说话速度和听话速度、书写速度和阅读速度的限制,人类语言往往简洁、干练。我们经常省略大量背景知识或常识。
- 比如我们会对朋友说“老地方见",而不必指出“老地方”在哪里。
- 对于机构名称,我们经常使用简称,比如“工行”“地税局”,假定对方熟悉该简称。
- 如果上文提出一个对象作为话题,则下文经常使用代词。
- 在连续的新闻报道或者一本书的某一页中,并不需要重复前面的事实,而假定读者已经熟知。
2. 自然语言处理层次
2.1 语音、图像和文本
自然语言处理系统的输入源一共有三个,即语音、图像与文本。
- 通过语音识别将语音转化为文本
- 通过光学字符将图像转化为文本
2.2 中文分词、词性标注和命名实体识别
这3个任务都是围绕词语进行的分析,所以统称词法分析。
词法分析的主要任务:
- 将文本分隔为有意义的词语(中文分词)
- 确定每个词语的类别和浅层的歧义消除(词性标注)
- 并且识别出一些较长的专有名词(命名实体识别)。
2.3 信息抽取
经过词法分析后,文本已经呈现出部分结构化的趋势。
根据这些单词和标签抽取一部分有用的信息
- 关键词
- 实体抽取
- 关系抽取
2.4 文本分类与文本聚类
文本分类:想知道一段话是褒义还是贬义的,判断一封邮件是否是垃圾邮件,想把许多文档分门别类地整理一下。
文本聚类:只想把相似的文本归档到一起,或者排除重复的文档,而不关心具体类别。
2.5 句法分析
得到句子的主谓宾结构。
2.6 语义分析与篇章分析
- 词义消歧(确定一个词在语境中的含义,而不是简单的词性)
- 语义角色标注(标注中句子中的谓语与其它部分的关系)
- 语义依存分析(分析句子中词语之间的语义关系)
- 指代消解等
2.7 其它高级任务
- 自动问答
- 自动摘要
- 机器翻译
3. NLP发展历史
4. 机器学习
3
5. 语料库
语料库作为自然语言处理领域中的数据集,是我们教机器理解语言不可或缺的习题集。
中文分词语料库:由人工正确切分后的句子集合
在2005年的第二届国际中文分词比赛中,曾经公开过约1个月份的语料。其中的一句样例为:
先有通货膨胀干扰,后有通货紧缩叫板。
词性标注语料库:切分并为每个词语指定一个词性的语料
命名实体识别语料库:人工标注了文本内部制作者关心的实体名词以及实体类别