前面描述的算法有时候不能惟一地确定合适的目标片段。例如下面的对话:
A: Did the clerk put the ice cream in the refrigerator?(职员是否把冰激凌放到冰箱里了?)
B: No.(没有。)
A: The TV dinners?(电视快餐呢?)
这种情况下,根据输入片段生成的模式能够匹配名词短语“the clerk”,“the ice cream”和“the refrigerator”。我们只能利用语义信息来选择“the ice cream”作为合适的目标片段。类似地,如果是“The manager?”,则可以推断“the clerk”作为合适的目标片段;如果是“The freezer?”,可以推断出“the refrigerator”作为目标片段。
由前面的例子可以总结出,计算输入片段和目标片段的语义相似度,然后选择最相似的候选目标片段。例如,假定系统有图1所示的分类体系。
图1类型的层次体系
可以采用最简单的相似度计算方法来计算两个语义之间的距离。考虑输入片段是“The TV dinners?”,候选目标片段是“the clerk”,“the ice cream”和“the refrigerator”。可以通过计算层次体系中的两个节点之间的步数来估计它们之间的语义相似度。结果如下所示:
TV-DINNER与CLERK:7 (通过PHYSOBJ)
TV-DINNER与ICE-CREAM:4 (通过FOOD)
TV-DINNER与REFRIG:6 (通过INANIMATE)
这样,“the ice cream”是首选目标片段,我们得到了合适的分析。
当然,这样根据语义相似性来做推断并不一定完全正确。如果语义解释器不能很好地分析结构,可以尝试其他的可能。考虑下面的对话:
A: Did you see the clerk in the store?(你在商店里看到那个职员了吗?)
B: Yes.(是的。)
A:The toaster oven?(烤箱呢?)
这一情况有下面的语义相似校验:
TOASTER与CLERK:7(通过 PHYSOBJ)
TOASTER与 STORE:5(通过INANIMATE)
这样,语义相似性检查将“the store”作为目标片段,由此可以解释为“Did you see the clerk in the toaster oven?”我们希望语义解释规则足够丰富,以便说明这种解释是行不通的。然后,处理省略的算法可以给出下一个可能的候选,将“the clerk”作为目标片段,构建的解释为“Did you see the toaster oven in the store?”
责任编辑:admin