思维工程
上QQ阅读APP看书,第一时间看更新

四、正转录算子

在第二步把词汇替换为概念之后,我们得到了一个概念和结构性词汇组成的句子。假设句子没有嵌套结构且是严格表达的,那么信息转化到这个形式,我们就能识别到其中的句子结构,就可以找到句子结构所在的语法映射,找到句子结构对应的表达信息单元,然后就可以演绎出具体的表达信息单元,也就是语义信息。

如果存在嵌套的信息,比如一个结构信息,或是一个属性层的信息如对象、属性、时间、地点的从句指向。这个时候我们就需要先识别到嵌套信息的句子片段,识别结构,找到结构信息的ID,或是指向的ID,用其替换句子片段,这样更上层的结构才会显现出来。因为句子的嵌套可能是多层的,所以这个识别+演绎的正转录流程需要执行多次,直到完成整个句子的解析和转录。所以工程上相应的模块,其主体逻辑需要循环执行:每次执行输入的句子被提取转化了部分信息,对应的句子片段被替换为所指向的概念ID,然后输出剩下的部分继续同样的运算。我们把这个的主体逻辑称为正转录算子。(模块8.3)

如果句子存在不严格表达,缺少部分结构信息,或是语序不严格,这个时候就需要评估和可能的句子结构的匹配度。如果高于阈值,就认为找到了不严格表达的句子结构。注意这里不是简单的比对匹配,而是统辖检测;不同于严格的统辖检测,我们允许句子结构不同内容的缺失、增加,或是顺序的改变。这个统辖检测我们称之为“模糊统辖检测”。(模块8.3c)

有些句子中的不严格表达是一种省略。上一章我们讨论过省略有两种类型,一种是语境省略,一种是常识省略。先来看语境省略。人类倾向于在表达中省略语境中的内容,不影响理解的语境省略我们称之为“合法语境省略”,合法省略有两个特征:其一,省略的内容需要是语境中最近的符合缺失属类的内容;其二,省略后的句子片段仍然有足够的句子结构特征,能够通过语法识别,也就是能通过“模糊统辖检测”。所以工程上需要把省略识别和填补的逻辑插入到“模糊统辖检测”的模块中。

对于常识省略,表达者认为对方已经拥有自己想要表达的知识,所以表达的目标不是陈述完成的知识,而是用少量信息指向这个知识,这就是常识省略的由来。对于这种省略,听者需要利用转录形成的残缺的信息去记忆中匹配其可能指向的知识。我们会有一个模块完成这个工作。

如果句子中存在并列表达,比如“她迅速、果断地拿起了地上的枪,击毙了歹徒”“早上我把桌上的鸡蛋、包子、蛋糕都给吃了”,这种并列如果没有被识别出来,则一定会破坏句子结构的。所以首先,我们一定要先识别出并列。其次,在句子结构识别前需要把并列内容放入一个集合,找到这个集合中概念的最小母类,作为代表参与到句子结构的识别中。然后,在演绎的时候需要演绎出多条信息(在某些情况下,我们后面会讨论),或是演绎出一条信息,对应位置的元素为此集合。回到识别的问题,如果有标点帮助我们识别并列会相对容易,否则就会麻烦很多。处理的办法是在句子结构匹配程序中增加一条逻辑:句子匹配受阻的时候,考察延伸匹配的概念是否和上一个是相同类型的——都属于句子结构模板中对应概念的子类,此时也可以视为并列表达的元素。

相关的测试包括:(1)在用来测试多重嵌套的典型例子“早上吃了桌上的过期的面包的人的爸爸的猫的体重增加了”中,AI需要能够通过一系列问答体现出对这个嵌套表达内蕴知识的理解。(2)对于不严格表达。我们创造若干表达,在语序上是混乱的,或是缺失部分结构信息的,但人类能够听懂此类表达,所以需要AI也能够理解。(3)对于语境省略,我们创造“合法语境省略”的表达,考察AI是否能补全省略信息,实现对句子内容的理解。(4)对于常识省略,我们先给予AI一个知识,然后在表达中进行常识省略,仅仅去指向这个知识,考察AI是否能通过指向找到对应的知识。(5)我们给出含有对象或属性并列表达的句子,考察AI是否能正常转录。