计算语言学中有五个任务:linguistic problem, linguisticformalization, Computational formalism, Programming, Evaluation of how goodcomputers do 。计算语言学是从语言学的角度出发,是语言学的一个分支,该学科的目的就是提出一种可被计算机处理的语言理论,框架,模型。
要搞清楚这五个任务哪个重要,首先要弄清楚每个任务的基本含义,按我的理解,第一个任务是语言学问题,Linguistic problem是从语言学角度出发去看待计算语言处理的,任何学科都有它需要解决的问题,而自然语言处理需要解决的是关于语言学的问题,例如语句分割问题,不同的断句方法,其句子含义不同,它是整个处理流程的开始。而第二个任务(语言的形式化),我们需要用数学工具把语言学问题表述成语言模型,这时候就需要linguistic formalization,在这个阶段中,我们把研究的问题在语言学上加以形式化,严密而规整地表示出来,例如语法分割模型M(F,W,T,K)s; 而语言模型需要被计算机的算法描述成为一个可计算的模型,这就是第三个任务,computational formalism,在这个任务中,可以实现计算形式化,例如前向或后向最大匹配算法,动态规划算法等。完成了以上任务之后,我们便可以编程了,这就是第四个任务,使用编程语言实现这个计算模型。最后第五个任务就是,我们需要对结果进行评估,通过计算一些指标,例如说:准确率,召回率,评估任务完成的情况。
就如我在初稿中所说的,我觉得最重要的任务应该是computational formalism任务。因为我觉得在整个计算语言处理过程中,最核心的也是最难的,应该是怎么样使用计算机来处理自然语言学的问题,如果不能完成computational formalism任务,是无法使用计算机这个强大的工具去处理自然语言学问题的。
算法描述的都是计算机可以计算的问题,而对于一些不可计算问题,例如一个搓澡师是给不给自己搓澡的人搓澡,那么这个理发师到底给不给自己搓澡,这是个悖论,是不可计算的,计算机无法解决。自然语言是一种为特定目标而创作的语言,他是人类交流的工具,单纯的自然语言模型时不可计算的,也无法使用计算机来进行计算和处理,自然语言是人工智能最难解决的问题之一。
那么哪个任务是最重要的呢?我认为不同的衡量标准,答案也是不同的。从以上对五个任务的描述中,我们可以清楚的看到它们和任何科学研究一样是一个贯穿始终紧密相连的过程,是不可分割的整体,所以以不可或缺的程度作为衡量的标准,它们同等重要;如果以实施的难度为标准,第二第三个任务更重要;以工作量大小为标准,则第三第四个任务更重要,那么下面我提供我的一种思路。
作为一个做研究的人,应该更加注重基础理论的研究,这不仅仅是为了出学术成果,更重要的是基础理论是学术研究的基石,是研究成败的关键,所以我以是否具备更强的理论基础作为衡量的标准的话,语言的形式化是为解决语言问题提供了数学模型,模型是整个系统的基础,涉及到语言学,数学等学科的理论,计算的形式化为实现模型提供了各种高效的算法,其涉及到数学,计算机科学等学科的相关理论。另外,模型的确立一定程度上决定了所能选择的算法,算法的好坏又反过来验证了模型的正确性和有效性,两者是最为密不可分的,一个研究人员应该同时考虑到两个方面,甚至将这两个任务统一为一个任务来做,所以我认为第二个任务和第三个任务是很重要的,都是自然语言处理很重要的任务,但是究竟哪个任务最重要,我从下面分析。
事实上,怎么将一个语言模型变成一个可计算的模型很重要,也是使用计算机来处理语言问题的关键。一个语言模型能否实现computational formalism是可否使用计算机处理这个模型的判定标准,在computation formalism构建可计算模型之后,编程就很简单了,当然评估阶段也很重要,这个任务可以对实际问题的解决能力进行评估,进而对不同的模型进行比较,选出优秀的模型。但是就是说,这些工作虽然很重要,但都是在computation formalism之后才能进行的。
而对于linguistic problem就是从语言学角度提出自然语言处理中的问题,liguistic formalism任务将问题变成一个语言学模型,将问题规范化,模型化。这也是一个比较重要的任务,但属于语言学范畴,而计算语言学的关键是要使用计算机来处理语言学问题,因而我认为computation formalism是最关键的。