上QQ阅读APP看书,第一时间看更新
1.1 自然语言与编程语言
和计算机编程语言不同,自然语言并不会被翻译成一组有限的数学运算集合。人类利用自然语言分享信息,而不会使用编程语言谈天说地或者指引去杂货店的路。用编程语言编写的计算机程序会清楚地告诉机器做什么,而对于像英语或者法语这样的自然语言,并没有所谓的编译器或解释器将它们翻译成机器指令。
定义
自然语言处理是计算机科学和人工智能(artificial intelligence,AI)的一个研究领域,它关注自然语言(如英语或汉语普通话)的处理。这种处理通常包括将自然语言转换成计算机能够用于理解这个世界的数据(数字)。同时,这种对世界的理解有时被用于生成能够体现这种理解的自然语言文本(即自然语言生成)[1]。
尽管如此,本章还是介绍机器如何能够对自然语言进行处理这一过程。我们甚至可以把该处理过程看成是自然语言的解释器,就如同Python的解释器一样。在开发计算机程序处理自然语言时,它能够在语句上触发动作甚至进行回复。但是这些动作和回复并没有精确定义,这让自然语言“流水线”的开发者拥有更多的灵活性。
定义
自然语言处理系统常常被称为“流水线”(pipeline),这是因为该系统往往包括多个处理环节,其中自然语言从“流水线”的一端输入,处理后的结果从另一端输出。
很快大家就有能力编写软件来做一些有趣的、出乎意料的事情,例如,可以让机器有点儿像人一样进行对话。这看起来可能有点儿像魔术,是的,所有的先进技术最初看起来都有点儿像魔术。但是,我们会拉开魔术背后的“帷幕”让大家一探究竟,这样大家很快就会知道自己变出这些魔术所需要的所有道具和工具。
一旦知道答案,一切都很简单。
——Dave Magee,佐治亚理工学院,1995