1.什么是自然语言处理?自然语言处理是做什么的?自然语言处理难在哪里?
语言是表达人的想法以及人与人之间交流的工具,而自然语言处理则是让计算机拥有处理人类语言的能力,从而让计算机能够使用和理解人类的语言。如今,自然语言处理在生活中应用已经很广泛,尤其是苹果的siri,谷歌的Google Assistant和alex,微软的Cortana和小冰。国内也有很多语音相关的应用,尤其是笔者所在的机器人行业,各种层出不穷的教育机器人、陪伴机器人、商务机器人无不在着消费者的眼球。而这些产品的基础技术就是自然语言处理。
那么自然语言处理到底是什么?这是一门研究什么,做什么的学科呢?
首先我们来看wikipedia上的解释:自然语言处理(英语:Natural Language Processing,简称NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。
自然语言处理的研究内容包括:
- 文本到语音(Text to speech)/语音合成(Speech synthesis)
- 语音识别(Speech recognition)
- 自动分词(word segmentation)
- 词性标注(Part-of-speech tagging)
- 句法分析(Parsing)
- 自然语言生成(Natural language generation)
- 文本分类(Text categorization)
- 信息检索(Information retrieval)
- 信息抽取(Information extraction)
- 文字校对(拼写检查或者错别字校正)(Text-proofing)
- 问答系统(对话系统)(Question answering):给一句人类语言的问定,决定其答案。 典型问题有特定答案 (像是加拿大的首都叫什么?),但也考虑些开放式问句(像是人生的意义是是什么?)
- 机器翻译(Machine translation):将某种人类语言自动翻译至另一种语言
- 自动摘要(Automatic summarization):产生一段文字的大意,通常用于提供已知领域的文章摘要,例如产生报纸上某篇文章之摘要
- 文字蕴涵(推理)(Textual entailment)
- 知识表示
- 阅读理解
可以看到自然语言处理的范围相当的广泛,覆盖了人类语言的方方面面。
2.NLP的研究等级
从上图中可以看到,NLP的底层技术包括:建立在语音基础上的拼音分析和音韵分析、建立在文本基础上的标签化。在这基础之上的是结构分析、语法分析、语义理解、对话处理。结构分析分析的是句子的结构、语法分析分析的是词或者字在句子中的角色、语义理解研究的是语句的深层次的含义、对话处理研究的是上下文处理或者推理。随着等级从上往下,相应的研究领域难度越来越大。
3.一些NLP的应用
在消费领域一般有:
- 拼写检查、关键字检索、同义词发现
- 信息抽取:产品价格、时间、位置、人名或者机构名的抽取
- 分类:对于新闻的分类、消费者对于产品的评价是正面还是负面
- 机器翻译:典型的比如谷歌翻译
- 对话系统:比如chatbot、自动客服
在工业领域:
- 检索
- 在线广告推荐
- 自动或者辅助翻译
- 市场情绪分析
- 语音识别
- 客服机器人、对话机器人:自动下单、自动客户支持、设备管理等等
可以看到NLP不管是在工业还是消费领域都是应用非常广泛,并且已经和人们的生活和商业活动息息相关、紧密结合了。
4.自然语言的特殊之处
- 自然语言不同于信号处理和图像处理,后者研究的是环境中真真切切的信号,比如信号处理研究的是电平的变化,图像处理是对图像中像素的研究,而自然语言不是具体的环境信号,它是人类交流的媒介。
- 自然语言也是对客观世界的符号化,并且具备丰富的表现形式。比如表达自己的喜爱之情:I looooooove it,就是通过对o的拉长来表达自己喜爱之情的强烈。
- 语言具备很强的逻辑性,但是又不能用数字去具体的量化,比方说可能,大概表达的是一种概率,但是又不能具体的数字比如80%去衡量。
- 此外语言还具备多种的表现形式,比如声音、动作、图像、文字等,神奇的是就算用不同的表现形式去表达,它们的含义却依然可以保持不变。
5.NLP的难点
NLP的难点分为3个:
(1).难在表示,试想一下,对于人类来说,语言保存在人脑中,那么对于计算机来说如何对语言进行表示呢?
(2).难在歧义:比如南京市长江大桥,可以理解为南京市长/江大桥,也可以理解为南京市/长江大桥。
(3).难在背景知识,当我们说一句话的时候,往往都具有上下文或者背景。比如我说:我不难过。那么问题来了,我到底难不难过呢?这就需要根据具体的语境和具体的环境进行判断了。
6.NLP+DL
NLP和DL的结合即是用DL的方法和特征去解决NLP的问题。
近年来,DL在NLP上的应用取得了巨大的进步具体表现在:
- 从层次上看:语音,词组,语法,语义
- 从工具上看:词性标注、命名实体识别、依存句法
- 从应用上看:机器翻译、情感分析、对话系统、问答系统
DL将每一个词表征为一个多维的向量,每一个维度都表示着独特的信息。维度最少取25维,一般去200-300维,当然维度越多越好,但是随着维度的提高计算性能也会受到影响,所以具体的维度在实践中需要具体确定。
当用向量表示词组之后,词向量可以进行计算,比如计算相似度,近义词的向量比较接近,不同意义的词向量相距较远。
词组的向量化之后,就可以应用DL中的模型进行多种NLP任务的计算了,比如:依存句法、语义表示、情绪分析、自然语言生成、机器翻译等等。
7.总结
本文是NLP的常识性介绍,介绍了NLP是什么、研究什么、有那些应用领域和产品;最后介绍了NLP和DL的结合。
在下篇博文中,将介绍词组向量化。