Page 199 - 《软件学报》2021年第9期
P. 199
吴信东 等:碎片化家谱数据的融合技术 2823
Table 1 Language schema
表 1 语言模式
语言模式
模式 1 N,FN 之子,字 XX,号 XX,生于 XX,卒于 XX,…,配 PN,一子:SN.
模式 2 FN 之子,N,字 XX,号 XX,生于 XX,卒于 XX,…,配 PN,一子:SN.
模式 3 N,PN,PN,…一子:SN
模式 4 N,字 XX,号 XX,生于 XX,卒于 XX,…,…配 PN,生于 XX,卒于 XX,…,…一子:SN
由于不同家谱具有不同的语言模式,本文使用 HanLP 汉语语言处理工具 [45] 提取家谱数据的浅层词法特征,
对家谱数据进行分词、命名实体识别和词性标注.但由于家谱的用词语法和行文风格与开放领域文本不同,为
了保证 Hanlp 分析结果的准确性,我们需要对家谱中特殊的用词进行总结,构建家谱领域词典,为 Hanlp 提供家
谱领域语义支持.
从表 1 中可以看出:人物之间关系和属性的描述具有一定的规律性,不同种类信息附近通常有固定的、具
有语义信息的关键词.因此,在对家谱进行分析处理后,根据分析后的词语词性及词语附近关键词,在全局知识
库提供的语义知识的协助下,判断当前待处理家谱所对应的语言模式,对家谱进行初步的信息抽取,并自动构建
适用于当前家谱的局部规则库.例如,在关键词“配”“妣”“娶”后的词性为“人物姓名”的词语一般为人物配偶姓
名,关键词“字”后的词性为“名词”的词语一般为人物属性“字”的属性值.
之后,我们根据上一步中构建的局部规则库,对少部分家谱数据进行抽取,将结果反馈给用户:若用户确定
当前抽取结果正确,则采用现有局部规则库;若用户对抽取结果不满意,则用户对数据进行标注,并将标注信息
返回至计算机.计算机根据用户标注信息与原抽取结果的差异,对局部规则库中的规则进行修正.
另外,由于家谱领域的特殊性,家谱文本中通常蕴含着一些隐性的人物信息.为了确保数据抽取的全面性和
准确性,我们根据 OI 提供的领域知识,抽取家谱中的隐性信息,对抽取结果进行扩充.例如,利用人物属性“辈份”
添加隐性父子关系:若存在人物集合 P={p 1 ,p 2 ,…,p m }的辈份为 n,且辈份为 n−1 的人物仅有一个,记为人物 B,则
我们可以认为,人物 B 为人物集合 P 的父亲.
2.4 数据规范层
数据规范层的主要功能是将数据抽取层中抽取到的信息用一个统一的标准规范化,将这些数据转换为一
种统一的描述,则有利于消除信息的语义异构性.但不同领域通常具有不同的数据规范标准.本文提出在 OI 提
供的领域数据规范标准的基础上,制定数据规范原则,具体原则如下.
(1) 化“繁”为“简”原则
对于中文数据,经常会出现繁体字信息.为了数据的统一性,我们需要将所有的繁体字转换为简体字进行存
储.目前有许多开源工具类可以进行中文繁简体的转换,如 ZHConverter(https://github.com/program-in-chinese/
zhconverter),OpenCC(https://github.com/BYVoid/OpenCC),OpenCC4j(https://github.com/houbb/opencc4j)等.
(2) 标准化原则
对于数据源中存在的表述不一致性问题,我们为不同的数据类型制定一个统一的标准,将数据标准化.人物
属性信息值的数据类型主要有三类:字符串类型、数值类型和时间类型数据.我们分别为这三类数据制定一个
标准.
• 对于数值类型数据,以阿拉伯数字为统一标准.如果同一人物属性的两个事实内容等价,仅是数值表示
方式不同,则我们统一选择以阿拉伯数字表示的数据.假设有两条来自不同数据源的同一人物的信
息:“张三享年七十二岁”和“张三享年 72 岁”.采用该条融合规则后,以“72 岁”作为人物“张三”的享年;
• 对于字符串类型数据,会存在缩写词、简称等表示方式,以名称的全称为统一标准.名称的缩写、简称
等形式可能与另一名称的缩写或简称重合,造成歧义.例如,“南大”一词,可能指代“南京大学”,也可能指
代“南昌大学”.因此,为了保证融合结果的清晰明确,在进行融合时,我们选择名称的全称或较为完整的
数据;
• 对于时间数据,在家谱中时间大多数以字符串型数据存在,如“开皇十八年二月二十二日”“顺治乙酉年