自然语言理解(Natural Language Understanding, NLU)是指计算机通过分析处理自然语言文本,从而实现对该文本的理解过程、技术和方法。
自然语言理解属于计算机科学技术领域中的一个重要分支——人工智能和计算语言学。
自然语言处理、机器翻译、语音识别
自然语言因其多义性、上下文依赖性、模糊性、非系统性和环境相关性等特点,使得自然语言理解至今没有统一的定义。从微观角度来看,自然语言理解涉及将自然语言转换为计算机内部表示的过程。从宏观角度来看,自然语言理解则意味着机器能够执行人类期望的语言功能。这些功能主要包括:
自然语言理解的研究历史可以追溯到20世纪40年代末和50年代初,当时美国和苏联等国家开始了俄英互译的研究工作。进入20世纪60年代后,一些自然语言理解系统开始出现,这些系统主要用于处理有限的自然语言子集。这类人机对话系统被广泛应用于专家系统、办公自动化以及信息检索等领域,但这些系统主要依赖于关键词匹配技术来识别输入句子的含义,而非真正的句法分析。20世纪70年代以后,自然语言理解研究在句法-语义分析技术方面取得了显著进展,出现了许多有影响力的自然语言理解系统。到了20世纪80年代,自然语言理解研究吸收了大量人工智能和专家系统的思想,引入了知识表示和推理机制,使自然语言处理系统不再局限于语言句法和词法的研究,从而提高了系统的准确性,诞生了一系列商品化的自然语言人机接口和机器翻译系统。在此基础上,机器翻译也有了长足的进步,出现了一些高水平的机器翻译系统。
然而,自然语言理解中包含的知识量极其庞大,尤其是这些知识具有高度的不确定性和模糊性,使得现有知识表示方法难以完全清晰地表达这些知识。为了处理大规模的实际文本,研究人员提出了语料库语言学。语料库语言学主张语言学知识应来源于日常生活中的大规模数据,我们的目标是让计算机能够自动或半自动地从这些大规模语料库中提取处理自然语言所需的各种知识。
目前市面上已经有一些可以进行一定程度自然语言处理的商品软件,但是要使机器像人类一样自如地运用自然语言,仍然是一项长期且艰巨的任务。一方面,现有的语法分析方法大多只适用于孤立的句子,而上下文关系和对话环境对当前句子的影响尚未得到系统性的研究。另一方面,人类理解一个句子不仅仅依赖语法,还会运用大量的背景知识,包括生活常识和专业知识,这些知识很难全部存储在计算机中。只有当计算机的存储能力和运算速度大幅提高后,才能逐步扩展其处理能力。