中文事件报道结果模式库的建立 导师:李芳 学生:蒋德良
内容 1. 问题综述 2. 系统简介 3. 系统模块介绍 4. 实验结果及系统存在问题
问题综述 实例文档 “……印尼国家减灾协调局当天说,又有10具尸体在努沙登加省中被找到,该省已确定的死亡人数上升到160人,加上在其他地区死亡的25人,此次地震的死亡总人数达185人,另有近170人受伤,其中93人受重伤。…… 今年2月6日,最东部的巴布亚省地区发生了一次里氏6.9级的强烈地震,造成纳比雷地区56人死亡,亚普拉地区34人死亡,20人重伤。” “……失踪3780人,经济损失1000多亿美元。……” 问题一. 如何得到每个句子中所有表示结果的精确信息 问题二. 如何找到每个句子中结果信息的包含关系 问题三. 如何合并每个句子中的结果信息得到句子最终结果信息
系统简介 系统任务 任务一 任务二 在任务一的基础上结合一些包含词(其中,累计……)与结果结点的位置关系解决问题二 任务三 结合正则表达式对自然灾害事件、人为事件、疾病爆发事件建立结果模式库,使用模式匹配的方法解决问题一 任务二 在任务一的基础上结合一些包含词(其中,累计……)与结果结点的位置关系解决问题二 任务三 在任务二的基础上对属性相同的结果信息进行相加解决问题三
系统简介 系统框架图 原始文档 文档预处理 规则集合 模式匹配 结点信息规范化 模式序列化 结果句子规范化 Rules1.txt 结果输出
系统模块介绍 文档预处理 对输入文档格式上的预处理 空格,换行符替换;全角半角转换 对输入文档语义上的预处理 符合某些句式的句子做一些修改,以便提高系统精度。 句式一:“在……中”替换为”…… ,其中” 句式二:“与……相比” 替换为空字符 句式三:“(一旦|假如)……,”替换为空字符
系统模块介绍 模式匹配 使用模式库中的模式逐条地对文档中的每一句句子进行模式匹配,把抽取到的信息放在数据结构中以供后续模块使用。 PropertyNode: 记录存放单个属性结点的各种信息 ResultSentence: 记录一个句子的各个属性结点
系统模块介绍 PropertyNode
系统模块介绍 ResultSentence
系统模块介绍 Resultsentence1 ProNodeList1: Resultsentence2 Text = ”印尼国家减灾协调局当天说,又有10具尸体在努沙登加省中被找到,该省已确定的死亡人数上升到160人,加上在其他地区死亡的25人,此次地震的死亡总人数达185人,另有近170人受伤,其中93人受重伤。 ” ProNodeList1: 死亡:10具尸体 死亡人数:160人 死亡:25人 死亡总人数:185人 受伤:近170人 重伤:93人 ProNodeList2 = null ResultNodeList = null Text = ”今年2月6日,最东部的巴布亚省地区发生了一次里氏6.9级的强烈地震,造成纳比雷地区56人死亡,亚普拉地区34人死亡,20人重伤。” ProNodeList1: 死亡:56人 死亡:34人 重伤:20人 ProNodeList2 = null ResultNodeList = null
系统模块介绍 结点信息规范化 基本信息规范化 数字字符串转换 增减信息处理 重复结点删除
系统模块介绍 Resultsentence1 ProNodeList1: Resultsentence2 Text = ”印尼国家减灾协调局当天说,又有10具尸体在努沙登加省中被找到,该省已确定的死亡人数上升到160人,加上在其他地区死亡的25人,此次地震的死亡总人数达185人,另有近170人受伤,其中93人受重伤。 ” ProNodeList1: 死亡:增加10人 死亡:160人 死亡:25人 死亡:185人 受伤:近170人 受伤:93人 ProNodeList2 = null ResultNodeList = null Text = ”今年2月6日,最东部的巴布亚省地区发生了一次里氏6.9级的强烈地震,造成纳比雷地区56人死亡,亚普拉地区34人死亡,20人重伤。” ProNodeList1: 死亡:56人 死亡:34人 受伤:20人 ProNodeList2 = null ResultNodeList = null
系统模块介绍 条件一:有且仅有一个包含词 结果句子规范化 属性包含处理 找子结点 “又有10具尸体在努沙登加省中被找到,该省已确定的死亡人数上升到160人,加上在其他地区死亡的25人,此次地震的死亡总人数达185人,另有近170人受伤,其中93人受重 伤。“ “ 马拉维卫生副部长查尔斯·姆乔沙说,2月底全国共有2265人感染霍乱, 5月底感染霍乱的群体为4157人,其中16人死亡。” 包含词2:累计,增加到…… 包含词2:累计,增加到…… 父结点1 (子结点2) 父结点2 子结点1 条件二:没有其他属性关系上可以包含的结点 父结点1 包含词1:其中,其余…… 子结点1
系统模块介绍 结果句子规范化 ProNodeList2
系统模块介绍 Resultsentence1 Text = ”印尼国家减灾协调局当天说,又有10具尸体在努沙登加省中被找到,该省已确定的死亡人数上升到160人,加上在其他地区死亡的25人,此次地震的死亡总人数达185人,另有近170人受伤,其中93人受重伤。 ” ProNodeList1: 死亡:增加10人 死亡:160人 死亡:25人 死亡:185人 受伤:近170人 受伤:93人 ProNodeList2: 死亡:185人 受伤:近170人 死亡:160人 死亡:25人 受伤:93人 死亡:增加10人 ResultNodeList = null
系统模块介绍 Resultsentence2 Text = ”今年2月6日,最东部的巴布亚省地区发生了一次里氏6.9级的强烈地震,造成纳比雷地区56人死亡,亚普拉地区34人死亡,20人重伤。” ProNodeList1: 死亡:56人 死亡:34人 受伤:20人 ProNodeList2: 死亡:56人 死亡:34人 受伤:20人 ResultNodeList = null
系统模块介绍 结果句子规范化 信息合并 ResultNodeList: 最终结果链表 1人 死亡: 4人 6人 受伤: 3人 失踪: 2人 HashMap: key值是属性值, value值是相同属性结点的链表 ResultNodeList: 最终结果链表 1人 死亡: 4人 6人 受伤: 3人 失踪: 2人 5人 按照ProNodeList2中父结点的属性值加入对应位置中 死亡:1+4+6 人 受伤:3人 失踪:2+5 人
系统模块介绍 Resultsentence1 Text = ”印尼国家减灾协调局当天说,又有10具尸体在努沙登加省中被找到,该省已确定的死亡人数上升到160人,加上在其他地区死亡的25人,此次地震的死亡总人数达185人,另有近170人受伤,其中93人受重伤。 ” ProNodeList1: 死亡:增加10人 死亡:160人 死亡:25人 死亡:185人 受伤:近170人 受伤:93人 ProNodeList2: 死亡:185人 受伤:近170人 死亡:160人 死亡:25人 受伤:93人 死亡:增加10人 HashMap: 死亡 185人 ResultNodeList: 死亡:185人 受伤:近170人 受伤 近170人
系统模块介绍 Resultsentence2 Text = ”今年2月6日,最东部的巴布亚省地区发生了一次里氏6.9级的强烈地震,造成纳比雷地区56人死亡,亚普拉地区34人死亡,20人重伤。” ProNodeList1: 死亡:56人 死亡:34人 受伤:20人 ProNodeList2: 死亡:56人 死亡:34人 受伤:20人 死亡 56人 34人 ResultNodeList: 死亡:90人 受伤:20人 HashMap: 受伤 20人
实验结果及系统存在问题 实验结果
实验结果及系统存在问题 问题说明 1.一个句子中涉及到多个事件 “ 今年1月份,印尼有15778人感染登革热,而在2006年同期,感染人数为18547人。”; 运行结果:感染34325人 2.句子的语义上有歧义 “6人死亡1人失踪30人受伤” 运行结果: 死亡6人、失踪31人、受伤30人 3.句子中有一些表示主观意愿的词 “据悉,联合国有关机构在本次会议上承诺将在10年内为这一运动提供3000万美元资助,同时还将提供各种必要的技术援助。 ” 运行结果:经济救助3000万美元
谢谢!