一. 什么是自然语言处理(Natural Language Processing-NLP)?
自然语言处理是一门通过建立形式化计算模型来分析、理解和生成自然语言的学科;终极目标是让计算机拥有自然语言处理交际能力。
自然语言的两大问题:
- 自然语言理解(Natural Language Understanding,NLU)
- 自然语言生成(Natural Language Generation,NLG)
自然语言处理与计算机语言学本质上是同义的,它横跨了计算机科学、语言学、人工智能学科等学科.
二. 自然语言处理系统中的知识平面
建立自然语言处理模型需要如下不同平面的知识:
- 声学和韵律学的知识:描述语言的节奏、语调和声调的规律,说明语音怎样形成音位;
- 音位学的知识:描述音位的结合规律,说明音位怎样形成语素;
- 形态学的知识:描述语素的结合规律,说明语素怎样形成单词;
- 词汇学的知识:描述词汇系统的规律,说明单词本身固有的语义特性和语法特性;
- 句法学的知识:描述单词(或词组)之间的结构规则,说明单词(或词组)怎样形成句子;
- 语义学的知识:描述句子中各个成分之间的语义关系,这样的语义关系是与情景无关的,说明怎样从构成句子的各个成分推导出整个句子的语义;
- 话语分析的知识:描述句子与句子之间的结构规律,说明怎样由句子形成话语或对话;
- 语用学的知识:描述与情景有关的情景语义,说明怎样推导出句子具有的与周围话语有关的各种涵义;
- 外界世界的常识性知识:描述关于语言使用者和语言使用环境的一般性知识,例如,语言使用者的信念和目的,说明怎样推导出这样的信念和目的的内在结构。
流程图如下:
三. NLP的基本方法
基于规则的方法
- 研究人员(如语言学家)对语言的规律进行总结,形成规则形态的知识库;
- 研制语言处理算法利用这些规则对自然语言进行处理;
- 根据处理结构,调整规则,改进处理效果。
存在的问题:无法穷举所有规则
基于统计的方法
- 建立可以反应语言使用情况的语料库;
- 研究人员对自然语言进行统计建模;
- 利用统计技术或机器学习技术,借助语料库训练语言模型;
- 基于得到的模型设计算法对语言进行处理;
- 根据处理效果改进模型,提高处理性能。
存在的问题:数据稀疏问题(长尾效应)
四. 自然语言处理的应用
- 机器翻译
目标是研制能把一种自然语言翻译成另外一种自然语言的计算机软件系统。 - 聊天机器人
- 信息提取(文本数据结构化)
- 拼写检查和自动勘校系统
- 音字转换
- 文本分类
- 垃圾邮件过滤