随着数据科学的发展,越来越多的问题被攻克,尤其是随着AlphaGO的横空出世,之后就是井喷一般的人工智能应用四面开花。除了“观赏效果”非常好的AlphaGO这类“策略型”机器人以外,人工智能能够在实际应用中发挥特长的地方还是非常多的。比如以人脸识别为代表的CV(Computer Vision)应用,比如以苹果Siri为代表的ASR(Automatic Speech Recognition)和TTS(Text To Speech)应用等。还有一类也是备受瞩目,并且在很多领域仍然有大量空白需要我们探索的应用,那就是NLP。
什么是NLP
NLP是Nature Language Processing的缩写,也就是自认语言处理。顾名思义,这类应用都是围绕着如何自动化处理人类所使用的语言文字来开展的。由于人类语言文字的多样性和复杂性,这个领域取得成就相较于其它的几个人工智能领域会显得更迟一些,懂的人也相对较少。这里可以给大家一些例子作为感性认识。
譬如,像这种给模型输入一张图片(左侧),让它输出一段话(右侧)来描述图片上的信息的应用。这是一种比较复合型的人工智能应用,既有CV的基础技术作为支持,也绝少不了NLP的技术作为支持。
再说一个更为典型一些的,譬如我们常用的谷歌翻译、百度翻译。输入某一种语言,再选择目标语言,像示例这样的短句就可以瞬间得到翻译结果。目前的应用中,像汉语、英语、日语、法语等相对主流的语言之间的翻译已经相当成熟了。只要不要故意用极端的例子考验它,它都能够输出正确结果的,虽然措辞可能不够优美。
再比如一些有趣的应用,如“小黄鸡”这样的聊天机器人,是可以通过简单的语段和人进行对话的。类似的应用微软也有一个“小冰”提供在微信公众号平台上,可供人与它进行交谈。不过遗憾的是处于某些非技术原因现在已经被屏蔽而无法使用了。这些也算是一类比较典型的NLP应用。
最简单的应用相信大家都曾经亲自使用过,那就是我们在各个公共邮箱服务网站上看到的“垃圾邮件”过滤功能。一封外部来的邮件,通过机器人一一审核后有的就会被划分为垃圾邮件放到垃圾邮件分类文件夹里去。通过一个模型对输入的文本内容进行分类,不论是分两类,还是分多类,这都属于典型的NLP范畴。
以上就是我为大家找的一些例子,希望这些例子能够为你带来一些感性的认识。那么NLP的应用仅限这些吗?其实远不止这些,比如百度的文本搜索,这也算是NLP应用。比如,国家安全部门使用的舆情监控系统,就是时刻监控网络上不适言论的这类系统也是NLP应用。再有就是近两年逐步成熟起来的“写稿机器人”,就是那种可以有类人表现的可以写出完整稿件的机器人应用。这类应用在一些门户网站有着广泛的使用,就是用来对一些原始的新闻信息进行加工扩写的。除此之外金山软件(WPS)也有了写作助手这样的应用,就是帮助每个用户对不同领域的文稿进行内容充实的。这当然也是NLP应用。
NLP应用听起来虽然是五花八门琳琅满目,听起来让人觉得无从下手。但是在我看来,NLP应用说到底也只有两大类,一类是“降维”——就是输入内容较多,输出内容较少的,例如垃圾邮件分类器,这就是典型的降维操作;另一类是“升维”——就是输入内容较少,输出内容较多的,例如刚刚提到的写作助手一类的就是可以允许输入个别关键词或语段,让机器人给补充素材的这类应用。当然后者的难度会更大一些,但是都有据可循,有着相对固定的解决方法。
为什么要学习NLP
不同的读者朋友对于学习NLP的诉求可能是不一样的,但是无外乎这样两种,要么就是单纯的感兴趣,希望通过一定时间的学习能够对这种技术研究领域做一个通体把握;要么就是有着切实的需求,比如在工作中遇到了文字处理相关的问题,希望通过入门、提高、深钻之后在这个领域成为技术专家。但不论是哪一种,只要你对NLP抱有浓厚的兴趣,并且希望从零开始学习,那么这个专栏就非常适合你。
NLP在未来会有更为广阔的应用,每个企业,每个个人都离不开文字的高质量自动化处理。邮件分类需求、文档搜索需求、文章推荐或摘要需求、甚至辅助写作需求,这些都是企事业单位每天都必须面临的浩繁的数据工作,掌握了NLP技术后,我们就能够根据自己的实际需求灵活运用,进而大幅提高工作效率,降低工作成本,这是非常有意义的现实工作。
读者人群
在这个专栏中,我们将追本溯源,把人类对于自然语言系统性理解和自动化处理的原理和思路做个完整的阐述,并且介绍一些相对成熟的可以直接应用或通过调教后应用的NLP技术,使你能够在未来的工作中能够享受到它的能力所带来的便利。当然,这里少不了给大家分享的各种项目工程的代码和使用说明。由于面向的读者主要是工程师而非NLP专业的硕士博士,所以在讲解的过程中会对数学论证与推导过程做个合理的避让,用聊天的方式来进行讲解,以求降低学习难度曲线。
你也不用担心这个专栏所讲解的内容是不是太难,会不会需要太多的前置知识。由于读者的设定范围主要是普通的IT工程师,所以基本上工科大学毕业的读者应该都可以读得懂,学得会。
课程安排
整个课程我们会采用由浅入深,由易到难的方式逐步递进。
第1章 语言与文字
本章主要讲解世界语言的分类与特点,和由它们的特点所引入的一些分析手段的不同。
同时也会介绍一些分词方法。
第2章 文档归类很简单
本章主要讲解基于传统统计学的文档分类的算法。
第3章 深度学习是什么
本章主要讲解深度学习的一些基础知识,以及深度学习网络的工作原理。适合没有接触过深度学习的读者朋友进行快速入门。
第4章 字词向量化应用
本章主要讲解汉字和英文单词的向量化技术。以及如何评价这类技术的优点和带来的一些缺点。
第5章 文档分类
本章主要讲解一些基于深度学习的精确度更高的成熟的文档分类技术。
第6章 命名实体识别应用
本章主要介绍命名实体识别技术的应用领域,以及实现原理。在本章我们将亲手训练一个简易的快递填单系统。同时,也会在本章补充一个问答系统。
第7章 知识图谱简易应用
本章主要介绍知识图谱的相关知识领域,如何提取关系,保存关系。以及此类应用可以发挥作用的场景等。
第8章 语言模型简介
本章主要介绍一些成熟的语言模型,如Google的BERT等。阅读本章可以了解如何使用这类模型帮助自己改进自己应用的精度。
好,那让我们开始《人人都是NLP应用专家》的学习。