一、 摘要
前面曾经提过,Waston能够将题型进行分类,进而选择不同的答题策略。上一篇文章介绍了如何分解处理事实性问题,这篇文章将介绍Waston处理特殊类型的问题。
简单来说,特殊问题分为以下几类:谜语、多选、Common Bond(这个真不知道该怎么翻译好了)、填空(Fill-in-the-Blank,FITB),以及在标准类型题目中用到了条件约束和双管与的题目。
应对的策略有:问题分解与答案生成、利用题目线索和基于分类的已知答案学习。
二、 特殊问题处理技术
(一) 问题分解与答案生成
问题的分解主要是用来解决谜语类问题的,通过匹配手工生成的Prolog规则来检测句子中是否有PAS(predicate-argument structure)。处理流程见下图。
与可平行分解的子问题类似,首先分解成为两个子问题,然后各自生成准候选(Pre-Candidate)集,对比各自的结果,进行对应处理(一般是收尾拼接),得到最终的候选答案。图中只给出了正确答案的生成过程,实际运行过程中,会有数百个候选出现。
(二) 约束与双关语
1. 词典约束
这类的约束大概包括单词长度、开头字母、结尾字母、包含指定字母、包含指定序列、指定韵律等。处理方法,还是找出来最经常出现的几种模式,然后做好规则匹配。
2. 约束对象
采用的方法仍然是规则匹配,但约束类型做了细分,分为:Alliteration、Blank、DoubleLetter、CommonEnding、NLetterRepetitions、Rhyming、SubStringDeisjunction、SyllableCount等。
3. 双关语
天才的IBM攻城狮们总是能找出来一些有用的性质,这次他们发现重复率最高的双关语是对focus进行修饰的引用短语。非官方观点,最常见的双关语无非是homonym、heteronym、homophone。
(三) 学习已知答案
节目中在选手答题之后会公布正确答案,这部分答案就被称为已知答案(Revealed Answer)。在答题过程中,Watson能够根据已知答案自己补全约束类型和问题分类。
背后的原理就是贝叶斯公式,在先验概率足够高的情况下,再开始计算后验概率
三、 挑选出的特殊题型
不好意思,各位,我要耍流氓了。由于我们组是在做QA系统,但题型与《Jeopardy!》不尽相同,这里的特殊题型在我们的题库中几乎不会出现,所以,我就不详细整理答题思路了,只对题型作以罗列:
谜语、Before &After and Rhyme Time、数学题、回文构词法与隐藏词汇。
多选题值得一提,Watson会首先识别出题目中的选项,然后利用题目中的剩余信息作出选择。虽然我不知道作出选择的具体方式,但最好的恐怕就是把选项一一放入题干中,形成不同的陈述,对比哪一个陈述的置信度更高。