多变的动词 - 词性识别在人工智能自然语言处理中的不足与改进

动词从语法结构上来说,往往是句子的核心,绝大多数句子都是含有动词的,形成谓语。并且,在复杂句中,谓语动词的多少直接意味着从句或者分句的多少。

​因此,在人工智能的自然语言处理领域,对于动词的处理也是重中之重。如果对一句话的动词分析不准确,往往会导致计算机对整个句子的分析出现偏差。很遗憾的是,目前对于动词的处理,在自然语言处理领域也并非完美,甚至可以说是还有相当大的问题。

以英语为例(也包括很多拉丁语系的其他语种以及一些非拉丁语系的语种),我们知道,动词相较于名词或其他词性的词的最大不同就是存在很多变体,大多数是时态上的,也有单复数等情况带来的变形。并且,同一种情况不同的单词还可能存在不同,会有特殊的变化。

另外,英语中还存在很多特殊的动词,它们出现的频次远远高于一般的普通动词,例如“be”、“do”、“have/has”等,而且这些动词往往是与其他动词搭配使用,表示特殊的含义。

既然动词是句子的核心,对于动词这些千奇百怪的情况如果处理不好,显然会影响计算机对整个句子的语法乃至于语义理解的准确程度。但是如同我们前面所说的,目前的自然处理领域对于动词的处理还是不太完美的,让我们来看看目前存在的一些问题。

我们来看看下面这句句子:

He is playing the ball.

这是非常简单的一个现在进行时的句子,我们先来看看著名的斯坦福大学开放的自然语言处理系统分析的结果:

最后一栏“Tagging”即是该系统对这句话的词性标注,其中He是代词(PRP),the是限定词(DT),ball是名词(NN),这几个都没有问题。对于is,该系统识别为“VBZ”,其中,VB代表“verb”即动词的意思,Z是附加的一个后缀字母,表示是现在时的第三人称单数形式;而对于playing,该系统认为是“VBG”,G表示是现在进行时(从现在进行时后缀“-ing”而来)。

目前主要的自然语言处理引擎中,动词一般按其几种变形分别标记为:

VB——表示动词原形

VBP——表示动词的一般现在时

VBZ——表示动词一般现在时的第三人称单数

VBG——表示动词的现在分词(也就是现在进行时)

VBD——表示动词的过去式(源自后缀“-ed”)

VBN——表示动词的过去分词

而谷歌(Google)公司的分析引擎有的是按照这个约定来做的,有的则稍有不同。

如上图所示,可以看到,谷歌的分析引擎将动词全部标记为VERB,然后通过时态(tense)这个附加属性来表示动词的变形。

从上面的例子可以看出,目前主流的自然语言处理系统对动词的分析存在的主要问题之一就是:对一些特殊动词没有区分开来,做特殊的处理。类似be动词,还有do、have等动词在英语中实在是太特殊了,很多时态、语气、疑问、强调等语法现象都与这些动词紧密相关,因此只有处理好了这些动词,才有助于词性识别后进一步的处理。

在《小仙英语伴读》系统提供的改进动词词性标注体系中,将动词类的词性做了细化,将普通动词全部改为“VV”开头的标记,即:VV表示普通动词原形,VVG表示普通动词的现在分词、VVD表示普通动词的过去式等等。而规定将be动词全部以“VB”开头,规定do动词全部以“VD”开头,have动词全部以“VH”开头。举例来说,VBG将代表be动词的现在进行时“being”,VDD将代表do动词的过去式“did”等等。

那么对于上面例子中的英语句子,我们分析结果将是:

可以看到,“is”被识别为“VBZ”,即be动词的第三人称单数(第三行是动词原形,在这里分析出is的原型是be),而“playing”则被识别为“VVG”,也就是普通动词的现在分词。

基于这样精细化的识别结果,再进行下一步的处理会方便很多,例如进行句子成分划分时,我们可以依据“VBZ + VVG = 谓语”这个规则划分出这句话的句子结构:

如上图这样,我们就可以把is playing理所当然地看作是两个动词合成的复合谓语,然后整个句子也能被判断出是主谓宾结构的第三类句型。而如果按一般分析引擎分析成两个无差别的动词,则要实现这一步不能说完全不行,但会麻烦很多。

进一步地,我们还可以依据“VBZ + VVG = 现在进行时”的规则来对句子的时态进行准确判断。

自然语言处理中,对于动词的处理如果做得好,能够相对比较轻松地驾驭哪怕是很复杂的句子。例如,根据动词是句子的语法核心这一基本原理,我们可以划分出复杂句中的从句或分句,下面就是一个例子。

The ant climbed onto it and floated in safety to the bank.

对于这句复合句看看我们能做到什么地步吧。

首先,我们识别出了这句话是由两个分句组成的;然后又识别出了这是个并列复合句而不是有从属关系(即有主句和从句)的复合句;之后清晰地划分出了各个从句和从句中的句子成分(主语、谓语、状语等);甚至我们还能补充出第二个分句中被省略掉的主语(the ant);最后,我们神奇地提取出了句子中的核心部分,即去掉了句子中从语法上来说非必要的内容(例如修饰性的状语等),给出了这条复杂句子最精简但又从语法上“不伤筋骨”的部分,这对于后续的语义处理具有非常重要的意义。

动词在自然语言处理中的重要性,相信到现在大家已经有了一些了解了,但其实还不仅于此,我们以后将继续给大家介绍人工智能领域中自然语言处理方面的内容。

你可能感兴趣的:(多变的动词 - 词性识别在人工智能自然语言处理中的不足与改进)