11.1.1 自然语言处理分析
首先,读者先来了解一下自然语言处理(NLP)。自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究实现人与计算机之间用自然语言进行有效通信的各种理论和方法,是一门融语言学、计算机科学、数学于一体的科学。
自然语言处理,即实现人机间自然语言通信,或实现自然语言理解和自然语言生成。然而,要想达到真正的自然语言通信是十分困难的,造成困难的根本原因是自然语言文本和对话的各个层次上广泛存在的各种各样的歧义性或多义性。
一个中文文本从形式上看是由汉字(包括标点符号等)组成的一个字符串。由字可组成词,由词可以组成词组,由词组可以组成句子,进而由一些句子组成段、节、章、篇。在上述的各种层次,由下一层次向上一层次转变中都存在着歧义和多义现象,即形式上一样的一段字符串,在不同的场景或不同的语境下,可以理解成不同的词串、词组串等,并有不同的意义。一般情况下,它们中大多数都是可以根据相应的语境和场景的规定而得到解决。
案例&知识:
在自然语言处理中,一个常用的案例就是:“欢迎新老师生前来就餐”,作为我们通常的语境来说,我们会将其理解为“欢迎|新老师生|前来|就餐”,这样理解的前提是我们有一定的习俗、惯性、知识的沉淀。然而,对于机器来说,如果没有相应的语境和场景,机器就可能会理解为“欢迎|新老师|生前|来|就餐”。这样的理解,对于我们来说感觉有点儿不可思议,但是事实上,机器在处理自然语言时,却会出现这样的处理场景。(https://www.daowen.com)
所以,通常情况下,自然语言处理必须要有一定的语境和场景来显式地告诉机器语句的处理前提。为了消解歧义,是需要极其大量的知识和进行推理的。这样,才能够提高机器处理自然语言的准确率,也能够方便机器的处理结果供人们所利用。
因此,如何将这些知识较完整地加以收集和整理,又如何找到合适的形式将它们存入计算机系统中去,以及如何有效地利用它们来消除歧义,都是工作量极大且十分困难的工作。这不是少数人短时期内可以完成的,还有待长期的、系统的工作。
以上说的是,一个中文文本或一个汉字(含标点符号等)可能具有多个含义。它是自然语言理解中的主要困难和障碍。反过来,一个相同或相近的意义同样可以用多个中文文本或多个汉字串来表示。
因此,自然语言的形式(字符串)与其意义之间是一种多对多的关系,这也正是自然语言的魅力所在。但从计算机处理的角度看,必须消除歧义,而且目前有部分研究者认为它正是自然语言理解中的中心问题,即要把带有潜在歧义的自然语言输入转换成某种无歧义的计算机内部表示。
目前存在的问题有两个方面:一方面,迄今为止的语法都限于分析一个孤立的句子,上下文关系和谈话环境对本句的约束和影响还缺乏系统的研究,因此分析歧义、词语省略、代词所指、同一句话在不同场合或由不同的人说出来所具有的不同含义等问题,尚无明确规律可循,需要加强语用学的研究才能逐步解决。另一方面,人理解一个句子不是单凭语法,还运用了大量的有关知识,包括生活知识和专门知识,这些知识无法全部贮存在计算机里。所以,目前深度学习、神经网络的迅猛发展,为我们解决上述问题提供了有效手段。