文本蕴含识别的概念性流程

07/20/2017

Kaijia可以保证中文互联网上没有几个人在写自然语言处理的底层概念,这一领域的主要知识来源自然是学术论文及著作。写这个总结性文章的目的主要是作为笔记,同时Kaijia也希望可以帮助到正在GitHub上阅读文本蕴含识别系统代码的程序员。

文本蕴含系统(RTE)设计目的是识别文本T(Text,即在通常应用中的语料)与假设H(Hypnosis,通常即指提问)之间的关系。如果可以从文本T中推理出假设H,即代表文本T蕴含假设H。例如文本T为“Kaijia昨天购买了一台手机”,需要推定的假设H则可能是“Kaijia拥有一台手机”。

这个过程对于人来说非常简单,但对于计算机自然语言处理来说则有相当大的难度。Ido Dagan等人在《Recognizing Textual Entailment: Models and Applications》整理了早前文本蕴含系统设计思路,总体来说,可以概括为以下5个步骤:

  1. 文本预处理。首先需要对输入的语料文本进行注释,包括分词分句、词形还原(lemmatization)、词类标注(POS tagging)、语义角色标注(Semantic role labeling)等等。这一阶段RTS系统通常会调用外部开源库完成。
  2. 信息丰富。此过程会将文本抽象化,包括Paraphrase,将文本对应到预设定的结构。这一过程通常包含识别并拆分对动词的修饰(例如“某某说”、“据称”、“未能”等等)和系动词(例如“美国总统特朗普昨天会见了……”需要识别出“特朗普是美国总统”),同时利用WordNet等资源丰富现有的信息(例如将“购买”和“拥有”关联)。
  3. 生成候选对齐。即按照相似度生成多种对齐方式,将文本T和假设H相关/相似的部分配对,在这个步骤中所有可能的对齐都被保留。简单的RTS系统多按照单词进行对齐,较复杂的系统则会考虑更多属性。
  4. 选择对齐。系统内的另一个模块会负责确定对齐。这个过程结束后正常情况下例如文本T中的“Kaijia购买一台手机”和假设H中的“Kaijia拥有一台手机”应该是配对的。
  5. 分类决策。根据匹配的对齐进行分类,并作出决策。决策过程可能是简单的阈值相似度计算,也有可能会由机器学习的分类器作出。

上述5个步骤是可合并的,中文文献中多见将第三第四步合并为处理对齐的模式,同时也可以见到部分系统将选择对齐和分类合并为决策,即直接从多个可能的对齐中进行选择。