生活在网际网路以及智慧型手机普及的今天,与外国朋友聊天、出国旅行、与国外客户开商务会议,纵使不熟悉当地语言,只要开启Google Translate,语言的隔阂立马迎刃而解。几年前大家还在诟病Google小姐翻译出来的文句十分生硬,只要句子一长就可能翻译出令人啼笑皆非的结果。然而在加入了类神经网络(artificial neural network)的架构之後,翻译品质大幅提升,产出的句子更像「人话」了。类神经网络究竟以什麽方法改善了翻译精准度?就让我用这三十天,从自然语言处理基础到加入深度学习的实务应用,一窥这项傲人技术的真实面貌。
自然语言指的是人类日常生活赖以交流的语言和文字,像是我们所使用的中文、英文、日文等等,其活动包含了「听」、「说」、「读」、「写」四个层面。为了与人工建构的编程语言做出区别,而被冠上了「自然」二字。
自然语言处理(natural language processing, NLP)指的是让电脑理解、诠释以及操作人类语言文本的技术,结合了电脑科学、语言学以及人工智慧。
图片来源:https://algorithmxlab.com/blog/natural-language-processing/
单纯的自然语言处理专注在「读」、「写」两个范畴,仅处理文本资讯;广义的自然语言处理还包含了「听」、「说」将语音讯号处理的技术等。我们可以将这整个偌大的学门区分为机器理解人类语言(natural language understanding)以及生成文本(natural language generation)两大阶段性任务。前者例如辨识文字讯息当中有无不雅字词、判断一篇文章是令人愉悦的或郁闷的等等感知的过程;而後者则像是聊天机器人如何针对使用者输入的讯息做出流畅且合理的对答。
自然语言处理并非一项新创的技术或概念,早在1950年代,被誉为电脑科学与人工智慧之父的Alan Turing就提出了着名的图灵测试(又称模仿游戏)来测试机器是否能够几乎与人类无差别地以文字为沟通管道进行交流,以此来测试机器是否有思考的能力。
综观自然语言处理的发展,大略经历了三个时期:
图片来源:https://developer.ibm.com/articles/cc-cognitive-natural-language-processing/
我们可以大致依照问题的难易程度列出主要的处理课题:
现今自然语言处理系统仰赖数据,以机器学习(包含深度学习)的模式进行运作。主要流程为:
图片来源:Practical Natural Language Processing by S. Vajjala et. al
日期 | 主题 |
---|---|
01 | 序章:自然语言处理初探 |
02 ~ 07 | 自然语言处理基础 |
08 ~ 15 | 常见的自然语言处理技术 |
16 | 深度学习回顾 |
17 ~ 29 | 神经机器翻译理论与实作 |
30 | 总结与未来展望 |
之所以选定这个主题,是基於自己对於语言学及人工智慧兴趣的结合。身为初次正式接触自然语言处理的我,接下来一个月的时光,将会将自己一路上所学到的重点整理成文章并每天更新。表达有误之处,还希望能不吝指正。今天的篇章就写到这里,我们明天见!
<<: Day 9-假物件 (Fake) - 虚设常式 (Stub)-1 (核心技术-1)
#前言 由於前一篇使用了const与extern,但对这两者还不太了解,於是又去看了其他人的文章,试...
在讲到生命周期之前要确认理解前面做过的两件事: setInterval 去更新画面的例子 记得有 c...
import copy, numpy as np np.random.seed(0) # compu...
建立了全新的Xcard专案,并在Main.storyboard界面页中拖拉数个Image View用...
今天继续来讲 Grid 单元,昨天提到了对齐基本用法,今天继续来讲对齐与留白。不过一开始,还是先解释...