“自然语言处理”(Natural Language Processing,简称NLP)是近年来科技界最热门的词语之一,也是当下人工智能研究最热门的领域之一。自然语言处理推动着语言智能的持续发展和突破,并越来越多地应用于各个行业。正如国际知名学者周海中先生曾经所言:“自然语言处理是极有吸引力的研究领域,它具有重大的理论意义和实用价值。”
那么,自然语言处理究竟是什么? 它到底有什么用武之地?这些问题值得人们探讨和关注。所谓自然语言处理,是计算机科学领域与人工智能领域中的一个重要方向;它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理主要应用于机器翻译、语音识别、知识回答、自动摘要、舆情监测、观点提取、知识库构建、文本语义对比、深度学习算法、语音识别与合成等方面。因此,自然语言处理有着革命性的理论意义,也有着十分重要的实用价值。
实现人机间自然语言通信意味着要使计算机既能理解自然语言文本的意义,也能以自然语言文本来表达给定的意图、思想等;前者称为自然语言理解,后者称为自然语言生成。因此,自然语言处理大体包括了自然语言理解和自然语言生成两个部分。因为处理自然语言的关键是要让计算机“理解”自然语言,所以通常把自然语言理解视为自然语言处理, 也称为计算语言学。它的终极目标是用自然语言与计算机进行通信,使人们可以用自己最习惯的语言来使用计算机,而无需再花大量的时间和精力去学习不很自然和习惯的各种计算机语言。
自然语言处理是人工智能中最为困难的问题之一。美国微软公司创始人比尔·盖茨先生曾经表示,“语言理解是人工智能领域皇冠上的明珠”。前微软公司全球执行副总裁沈向洋先生也在公开演讲时说:“懂语言者得天下……下一个十年,人工智能的突破在自然语言的理解……人工智能对人类影响最为深刻的就是自然语言方面”。由于理解自然语言需要关于外在世界的广泛知识以及运用操作这些知识的能力,所以自然语言处理也被视为解决人工智能完备(AI-complete)的核心问题之一。可见自然语言处理是目前人工智能领域中的关键技术,对它的研究也是充满魅力和挑战的。
自然语言处理的基本任务包括正则表达式、分词、词法分析、语音识别、文本分类、信息检索、问答系统——如对一些问题进行回答或与用户进行交互——机器翻译等;常用的模型则有马科夫模型、朴素贝叶斯、循环神经网络等。自然语言处理要使用语言知识,如UNIX的wc程序可以用来计算文本文件中的字节数、词数或行数;当用它来计算字节数和行数时,wc只用于进行一般的数据处理,但当用它来计算一个文件中词的数目时,就需要关于“什么是一个词”的语言知识,这时wc也就成为了一个自然语言处理系统。
目前存在的问题主要有两个方面:一方面,迄今为止的语法都限于分析一个孤立的句子,上下文关系和谈话环境对本句的约束和影响还缺乏系统的研究,因此分析歧义、词语省略、代词所指、同一句话在不同场合或由不同的人说出来所具有的不同含义等问题,尚无明确规律可循,需要加强语用学的研究才能逐步解决。另一方面,人理解一个句子不是单凭语法,还运用了大量的有关知识,包括生活知识和专门知识,这些知识无法全部贮存在计算机里。因此一个书面理解系统只能建立在有限的词汇、句型和特定的主题范围内;计算机的贮存量和运转速度大大提高之后,才有可能适当扩大范围。
无论实现自然语言理解,还是自然语言生成,都远不如人们原来想象的那么简单,而是十分困难的。从现有的理论和技术现状看,通用的、高质量的自然语言处理系统,仍然是较长期的努力目标,但是针对一定应用,具有相当自然语言处理能力的实用系统已经出现,有些已商品化,甚至开始产业化。典型的例子有:多语种数据库和专家系统的自然语言接口、各种机器翻译系统、全文信息检索系统、自动文摘系统等。自然语言处理系统的算法是基于机器学习,特别是统计机器学习;许多不同类的机器学习算法已应用于自然语言处理任务。
深度学习在自然语言处理中的应用非常广泛,可以说横扫自然语言处理的各个方面,从底层的分词、语言模型、句法分析等到高层的语义理解、对话管理、知识问答等方面几乎都有深度学习的模型,并且取得了不错的效果。有关研究已从传统的机器学习算法转变成更有表现力的深度学习模型,如卷积神经网络和回归神经网络。不过,目前的深度学习技术还不具备理解和使用自然语言所必需的概念抽象和逻辑推理能力,还有待今后进一步的研究。
总而言之,随着互联网的普及和海量信息的涌现,作为人工智能的核心技术,自然语言处理有着极为广阔的用武之地,并扮演着越来越重要的角色。毫无疑问,自然语言处理将在社会发展和科技进步的过程中发挥越来越重要的作用。