引言
别名即同义词、近义词,是同一事物的不同称呼。在日常生活中,我们也常常用到别名,比如土豆的别名为马铃薯,KFC的别名为肯德基。在上文关于知识图谱上下级概念建设的一点想法中提及了上下级概念的描述及意义,本文将尝试着使用深度学习模型建立同义关系模型。
比如在下面的文本中:
卡定沟:又名嘎定沟,位于西藏318国道拉萨至林芝段距八一镇24公里处,海拔2980米,地处雅鲁藏布江支流尼洋河畔
我们可以发现别名为:(卡定沟, 别名, 嘎定沟)
。本文使用深度学习方法去发现非结构化文本中的别名与简称(或称缩略语),即使用关系抽取模型
作为别名发现的模型。本文的最大价值在于提供高质量的别名、简称的标注语料
,以及笔者对于别名发现模型
的一次尝试。
别名(或同义关系)知识图谱构建中是必不可少的一环,是扩充本体名称的重要手段。别名发现的意义如下:
- 是对实体本身更好的理解,比如我们常常听说的
阿里巴巴
,其全名为阿里巴巴网络技术有限公司
,借助别名可以知道这是一家科技公司 - 是构建知识图谱的重要一环,对本体的名称进一步扩充
- 对搜索体验的提升,比如用户搜索
马铃薯
,系统借助同义关系找到其别名:土豆
,则可扩充用户的搜索为马铃薯 土豆
;用户搜索珠峰
,系统借助同义关系找到其全名:珠穆朗玛峰
,则可扩充用户的搜索为珠峰 珠穆朗玛峰
,这无疑能提升用户搜索体验,提升搜索效果。
语料构建
本文最大的贡献在于提供人工标注的高质量别名语料。
我们的语料来自于CCF2019年关系抽取比赛数据
及阅读理解数据WebQA & SougouQA
,借助程序处理(关键词)及人工标注整理,目前共获取有效标注语料共4425条,具体说明如下:
文件名称 | 数据来源 | 标注样本数量 |
---|---|---|
data/ccf2019_corpus.json | CCF2019年关系抽取比赛数据 | 3369 |
data/sougouqa_webqa_corpus.json | 阅读理解数据(WebQA & SougouQA) | 1056 |
模型训练
本文采用文章用bert4keras做三元组抽取中给出的关系抽取模型进行模型训练,其中训练集数据:测试集数据=8:2。
模型的参数设置为maxlen=200, batch_size=16, epoch=20, 使用预训练模型为哈工大的中文Roberta模型: chinese-RoBERTa-wwm-ext
,在Google Colab平台上进行模型训练, 在测试集上的最好F1值为88.97%。
别名发现
模型训练好之后,我们可以使用该模型对其它非结构化文本进行预测,并写入至Neo4j中进行观察。以下将给出几个抽取例子:
杨桃,又名阳桃、羊桃、五棱子,学名“五敛子”,又因横切面如五角星,故国外又称之为“星梨”。 杨桃原产地,传统认为产於东南亚的马来西亚等地。我国於汉朝就有栽培记载,今我国福建、广东、广西、云南等地;亚洲东南亚、印度;美洲巴西等热带地区均普遍栽培。…
预测结果:
[("杨桃", "别名", "阳桃"), ("杨桃", "别名", "羊桃"), ("杨桃", "别名", "五棱子"), ("杨桃", "别名", "五敛子"), ("杨桃", "别名", "星梨")]
英吉利海峡隧道(thechanneltunnel)又称英法海底隧道或欧洲隧道(eurotunnel),是一条把英国英伦三岛连接往欧洲法国的铁路隧道,于1994年5月6日开通。
预测结果:
[("英吉利海峡隧道", "别名", "英法海底隧道"), ("英吉利海峡隧道", "别名", "欧洲隧道")]
中科大是中国科学技术大学的简称,位于安徽省合肥市。
预测结果:
[('中国科学技术大学', '简称', '中科大')]
总结
语料维护费时费力,因此可能会存在一定错误,如有问题,请及时指出。另外,语料并没有很全,后续需持续投入进行维护。
本文给出了一种别名发现模型
的思路,希望后续关于这方面的资料和研究会越来越多,感谢阅读~
本文项目已开源,其Github地址为:https://github.com/percent4/alias_find_system,欢迎大家参考~