本文介绍语意理解的第二个阶段——与上下文无关的语义(context-independent meaning),而逻辑形式(Logical Form)即是它的表示方式。如自然语言理解(一)中介绍的,我们把将一个句子映射到它的逻辑形式这个过程称为语义理解(semantic interpretation)。
为什么我们需要语言的逻辑形式呢?这是因为同样的一句话,在不同的语境(上下文)下可以表达出不同的意思。我们来看一个简单的中文例子:
“你吃饭了吗?”
看似非常简单的句子,其实从深层的语义角度可以表达不同的意思。场景一:想象一下你傍晚走在街上碰到了同学,这是一句再也熟悉不过的招呼语。场景二:有一天中午你在宿舍,突然发现自己很饿了,然后向室友问了这么一句。这时你想表达的意思是:“没吃饭就一起去啊!饿死我了!” 场景三:你和女友潇洒的出去美餐了一顿,回到宿舍看到室友还在蹲着打游戏,这时候你问的这一句可能表达的是一种疑问(得瑟?)。。。
由此可见,同样一句话在不同的上下文中会产生不同的意思(这再次说明自然语言理解有多难)。虽然我们的终极目的是想得到句子在上下文中的意思,但想一步登天实属太难。因此我们希望能够定义一种与上下文无关的句子语义,这便是逻辑形式语言了。本文主要从以下三个部分进行介绍:
- 基本的逻辑形式语言
- 语义角色
- TRIPS 逻辑形式
基本的逻辑形式语言
顾名思义,逻辑形式语言便是将句子以逻辑的方式表示,也正因为这种表示只涉及逻辑关系,所以是与上下文无关的。逻辑形式语言与一阶逻辑,或称一阶断言计算(FOFC)有着很多相似的地方。由于篇幅原因,不熟悉一阶逻辑的同学请自行谷歌了(其实简单说来就是与或非加上量化表示(存在 / 所有))。
逻辑形式语言中,词义(word sense)被视为原子,或者常量,即它们是逻辑形式中的最小单位。根据词义所描述类型的不同,这些常量又可以被分为两类:1、表示对象(object)