一、流程概览
先用序列标注模型预测句子中的实体,再对实体(加上句子)走关系分类模型,预测实体的关系,最后形成有效的三元组。
1、数据标注
2、数据处理
处理原始数据得到ner命名实体识别的训练预测数据和关系抽取训练预测数据
3、实体识别任务
利用BERT-BILSTM-CRF识别出文本里面的实体。
4、关系抽取任务
根据rels之间实体对之间的关系,将可能有关系的两类实体和文本拼接后输入到模型里面进行分类。
二、数据标注和处理流程
原始数据
原始数据中必须包含这些信息:
- 原文本
- 文本中有哪些实体
- 实体词中哪些是主体(object),哪些是客体(object_type),且主体和客体之间是什么关系(predicate)
{ "text": "《步步惊心》改编自著名作家桐华的同名清穿小说《甄嬛传》改编自流潋紫所著的同名小说电视剧《何以笙箫默》改编自顾漫同名小说《花千骨》改编自fresh果果同名小说《裸婚时代》是月影兰析创作的一部情感小说《琅琊榜》是根据海宴同名网络小说改编电视剧《宫锁心玉》,又名《宫》《雪豹》,该剧改编自网络小说《特战先驱》《我是特种兵》由红遍网络的小说《最后一颗子弹留给我》改编电视剧《来不及说我爱你》改编自匪我思存同名小说《来不及说我爱你》", "spo_list": [{"predicate": "作者", "object_type": {"@value": "人物"}, "subject_type": "图书作品", "object": {"@value": "顾漫"}, "subject": "何以笙箫默"}, {"predicate": "改编自", "object_type": {"@value": "作品"}, "subject_type": "影视作品", "object": {"@value": "最后一颗子弹留给我"}, "subject": "我是特种兵"}, {"predicate": "作者", "object_type": {"@value": "人物"}, "subject_type": "图书作品", "object": {"@value": "桐华"}, "subject": "步步惊心"}, {"predicate": "作者", "object_type": {"@value": "人物"}, "subject_type": "图书作品", "object": {"@value": "流潋紫"}, "subject": "甄嬛传"}, {"predicate": "作者", "object_type": {"@value": "人物"}, "subject_type": "图书作品", "object": {"@value": "fresh果果"}, "subject": "花千骨"}, {"predicate": "作者", "object_type": {"@value": "人物"}, "subject_type": "图书作品", "object": {"@value": "月影兰析"}, "subject": "裸婚时代"}, {"predicate": "作者", "object_type": {"@value": "人物"}, "subject_type": "图书作品", "object": {"@value": "海宴"}, "subject": "琅琊榜"}, {"predicate": "改编自", "object_type": {"@value": "作品"}, "subject_type": "影视作品", "object": {"@value": "特战先驱"}, "subject": "雪豹"}, {"predicate": "改编自", "object_type": {"@value": "作品"}, "subject_type": "影视作品", "object": {"@value": "来不及说我爱你"}, "subject": "来不及说我爱你"}, {"predicate": "作者", "object_type": {"@value": "人物"}, "subject_type": "图书作品", "object": {"@value": "匪我思存"}, "subject": "来不及说我爱你"}]} |
实体识别训练数据
根据原始数据将上面的原始文本处理成以下格式,采用BIO标注法
{ "text": ["《", "步", "步", "惊", "心", "》", "改", "编", "自", "著", "名", "作", "家", "桐", "华", "的", "同", "名", "清", "穿", "小", "说", "《", "甄", "嬛", "传", "》", "改", "编", "自", "流", "潋", "紫", "所", "著", "的", "同", "名", "小", "说", "电", "视", "剧", "《", "何", "以", "笙", "箫", "默", "》", "改", "编", "自", "顾", "漫", "同", "名", "小", "说", "《", "花", "千", "骨", "》", "改", "编", "自", "f", "r", "e", "s", "h", "果", "果", "同", "名", "小", "说", "《", "裸", "婚", "时", "代", "》", "是", "月", "影", "兰", "析", "创", "作", "的", "一", "部", "情", "感", "小", "说", "《", "琅", "琊", "榜", "》", "是", "根", "据", "海", "宴", "同", "名", "网", "络", "小", "说", "改", "编", "电", "视", "剧", "《", "宫", "锁", "心", "玉", "》", ",", "又", "名", "《", "宫", "》", "《", "雪", "豹", "》", ",", "该", "剧", "改", "编", "自", "网", "络", "小", "说", "《", "特", "战", "先", "驱", "》", "《", "我", "是", "特", "种", "兵", "》", "由", "红", "遍", "网", "络", "的", "小", "说", "《", "最", "后", "一", "颗", "子", "弹", "留", "给", "我", "》", "改", "编", "电", "视", "剧", "《", "来", "不", "及", "说", "我", "爱", "你", "》", "改", "编", "自", "匪", "我", "思", "存", "同", "名", "小", "说", "《", "来", "不", "及", "说", "我", "爱", "你", "》"], "labels": ["O", "B-图书作品", "I-图书作品", "I-图书作品", "I-图书作品", "O", "O", "O", "O", "O", "O", "O", "O", "B-人物", "I-人物", "O", "O", "O", "O", "O", "O", "O", "O", "B-图书作品", "I-图书作品", "I-图书作品", "O", "O", "O", "O", "B-人物", "I-人物", "I-人物", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "B-图书作品", "I-图书作品", "I-图书作品", "I-图书作品", "I-图书作品", "O", "O", "O", "O", "B-人物", "I-人物", "O", "O", "O", "O", "O", "B-图书作品", "I-图书作品", "I-图书作品", "O", "O", "O", "O", "B-人物", "I-人物", "I-人物", "I-人物", "I-人物", "I-人物", "I-人物", "O", "O", "O", "O", "O", "B-图书作品", "I-图书作品", "I-图书作品", "I-图书作品", "O", "O", "B-人物", "I-人物", "I-人物", "I-人物", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "B-图书作品", "I-图书作品", "I-图书作品", "O", "O", "O", "O", "B-人物", "I-人物", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "B-影视作品", "I-影视作品", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "B-作品", "I-作品", "I-作品", "I-作品", "O", "O", "B-影视作品", "I-影视作品", "I-影视作品", "I-影视作品", "I-影视作品", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "B-作品", "I-作品", "I-作品", "I-作品", "I-作品", "I-作品", "I-作品", "I-作品", "I-作品", "O", "O", "O", "O", "O", "O", "O", "B-图书作品", "I-图书作品", "I-图书作品", "I-图书作品", "I-图书作品", "I-图书作品", "I-图书作品", "O", "O", "O", "O", "B-人物", "I-人物", "I-人物", "I-人物", "O", "O", "O", "O", "O", "B-图书作品", "I-图书作品", "I-图书作品", "I-图书作品", "I-图书作品", "I-图书作品", "I-图书作品", "O"], "id": 0 } |
关系抽取训练数据
从原始数据中抽取关系数据用于训练和预测
"{'text': '《步步惊心》改编自著名作家桐华的同名清穿小说《甄嬛传》改编自流潋紫所著的同名小说电视剧《何以笙箫默》改编自顾漫同名小说《花千骨》改编自fresh果果同名小说《裸婚时代》是月影兰析创作的一部情感小说《琅琊榜》是根据海宴同名网络小说改编电视剧《宫锁心玉》,又名《宫》《雪豹》,该剧改编自网络小说《特战先驱》《我是特种兵》由红遍网络的小说《最后一颗子弹留给我》改编电视剧《来不及说我爱你》改编自匪我思存同名小说《来不及说我爱你》', 'id': 0, 'labels': ['何以笙箫默', '顾漫', '作者']}" "{'text': '《步步惊心》改编自著名作家桐华的同名清穿小说《甄嬛传》改编自流潋紫所著的同名小说电视剧《何以笙箫默》改编自顾漫同名小说《花千骨》改编自fresh果果同名小说《裸婚时代》是月影兰析创作的一部情感小说《琅琊榜》是根据海宴同名网络小说改编电视剧《宫锁心玉》,又名《宫》《雪豹》,该剧改编自网络小说《特战先驱》《我是特种兵》由红遍网络的小说《最后一颗子弹留给我》改编电视剧《来不及说我爱你》改编自匪我思存同名小说《来不及说我爱你》', 'id': 0, 'labels': ['我是特种兵', '最后一颗子弹留给我', '改编自']}" "{'text': '《步步惊心》改编自著名作家桐华的同名清穿小说《甄嬛传》改编自流潋紫所著的同名小说电视剧《何以笙箫默》改编自顾漫同名小说《花千骨》改编自fresh果果同名小说《裸婚时代》是月影兰析创作的一部情感小说《琅琊榜》是根据海宴同名网络小说改编电视剧《宫锁心玉》,又名《宫》《雪豹》,该剧改编自网络小说《特战先驱》《我是特种兵》由红遍网络的小说《最后一颗子弹留给我》改编电视剧《来不及说我爱你》改编自匪我思存同名小说《来不及说我爱你》', 'id': 0, 'labels': ['步步惊心', '桐华', '作者']}" "{'text': '《步步惊心》改编自著名作家桐华的同名清穿小说《甄嬛传》改编自流潋紫所著的同名小说电视剧《何以笙箫默》改编自顾漫同名小说《花千骨》改编自fresh果果同名小说《裸婚时代》是月影兰析创作的一部情感小说《琅琊榜》是根据海宴同名网络小说改编电视剧《宫锁心玉》,又名《宫》《雪豹》,该剧改编自网络小说《特战先驱》《我是特种兵》由红遍网络的小说《最后一颗子弹留给我》改编电视剧《来不及说我爱你》改编自匪我思存同名小说《来不及说我爱你》', 'id': 0, 'labels': ['甄嬛传', '流潋紫', '作者']}" "{'text': '《步步惊心》改编自著名作家桐华的同名清穿小说《甄嬛传》改编自流潋紫所著的同名小说电视剧《何以笙箫默》改编自顾漫同名小说《花千骨》改编自fresh果果同名小说《裸婚时代》是月影兰析创作的一部情感小说《琅琊榜》是根据海宴同名网络小说改编电视剧《宫锁心玉》,又名《宫》《雪豹》,该剧改编自网络小说《特战先驱》《我是特种兵》由红遍网络的小说《最后一颗子弹留给我》改编电视剧《来不及说我爱你》改编自匪我思存同名小说《来不及说我爱你》', 'id': 0, 'labels': ['花千骨', 'fresh果果', '作者']}" "{'text': '《步步惊心》改编自著名作家桐华的同名清穿小说《甄嬛传》改编自流潋紫所著的同名小说电视剧《何以笙箫默》改编自顾漫同名小说《花千骨》改编自fresh果果同名小说《裸婚时代》是月影兰析创作的一部情感小说《琅琊榜》是根据海宴同名网络小说改编电视剧《宫锁心玉》,又名《宫》《雪豹》,该剧改编自网络小说《特战先驱》《我是特种兵》由红遍网络的小说《最后一颗子弹留给我》改编电视剧《来不及说我爱你》改编自匪我思存同名小说《来不及说我爱你》', 'id': 0, 'labels': ['裸婚时代', '月影兰析', '作者']}" "{'text': '《步步惊心》改编自著名作家桐华的同名清穿小说《甄嬛传》改编自流潋紫所著的同名小说电视剧《何以笙箫默》改编自顾漫同名小说《花千骨》改编自fresh果果同名小说《裸婚时代》是月影兰析创作的一部情感小说《琅琊榜》是根据海宴同名网络小说改编电视剧《宫锁心玉》,又名《宫》《雪豹》,该剧改编自网络小说《特战先驱》《我是特种兵》由红遍网络的小说《最后一颗子弹留给我》改编电视剧《来不及说我爱你》改编自匪我思存同名小说《来不及说我爱你》', 'id': 0, 'labels': ['琅琊榜', '海宴', '作者']}" "{'text': '《步步惊心》改编自著名作家桐华的同名清穿小说《甄嬛传》改编自流潋紫所著的同名小说电视剧《何以笙箫默》改编自顾漫同名小说《花千骨》改编自fresh果果同名小说《裸婚时代》是月影兰析创作的一部情感小说《琅琊榜》是根据海宴同名网络小说改编电视剧《宫锁心玉》,又名《宫》《雪豹》,该剧改编自网络小说《特战先驱》《我是特种兵》由红遍网络的小说《最后一颗子弹留给我》改编电视剧《来不及说我爱你》改编自匪我思存同名小说《来不及说我爱你》', 'id': 0, 'labels': ['雪豹', '特战先驱', '改编自']}" "{'text': '《步步惊心》改编自著名作家桐华的同名清穿小说《甄嬛传》改编自流潋紫所著的同名小说电视剧《何以笙箫默》改编自顾漫同名小说《花千骨》改编自fresh果果同名小说《裸婚时代》是月影兰析创作的一部情感小说《琅琊榜》是根据海宴同名网络小说改编电视剧《宫锁心玉》,又名《宫》《雪豹》,该剧改编自网络小说《特战先驱》《我是特种兵》由红遍网络的小说《最后一颗子弹留给我》改编电视剧《来不及说我爱你》改编自匪我思存同名小说《来不及说我爱你》', 'id': 0, 'labels': ['来不及说我爱你', '来不及说我爱你', '改编自']}" "{'text': '《步步惊心》改编自著名作家桐华的同名清穿小说《甄嬛传》改编自流潋紫所著的同名小说电视剧《何以笙箫默》改编自顾漫同名小说《花千骨》改编自fresh果果同名小说《裸婚时代》是月影兰析创作的一部情感小说《琅琊榜》是根据海宴同名网络小说改编电视剧《宫锁心玉》,又名《宫》《雪豹》,该剧改编自网络小说《特战先驱》《我是特种兵》由红遍网络的小说《最后一颗子弹留给我》改编电视剧《来不及说我爱你》改编自匪我思存同名小说《来不及说我爱你》', 'id': 0, 'labels': ['来不及说我爱你', '匪我思存', '作者']}" "{'text': '《步步惊心》改编自著名作家桐华的同名清穿小说《甄嬛传》改编自流潋紫所著的同名小说电视剧《何以笙箫默》改编自顾漫同名小说《花千骨》改编自fresh果果同名小说《裸婚时代》是月影兰析创作的一部情感小说《琅琊榜》是根据海宴同名网络小说改编电视剧《宫锁心玉》,又名《宫》《雪豹》,该剧改编自网络小说《特战先驱》《我是特种兵》由红遍网络的小说《最后一颗子弹留给我》改编电视剧《来不及说我爱你》改编自匪我思存同名小说《来不及说我爱你》', 'id': '0_norel', 'labels': ['裸婚时代', '流潋紫', '没关系']}" "{'text': '《步步惊心》改编自著名作家桐华的同名清穿小说《甄嬛传》改编自流潋紫所著的同名小说电视剧《何以笙箫默》改编自顾漫同名小说《花千骨》改编自fresh果果同名小说《裸婚时代》是月影兰析创作的一部情感小说《琅琊榜》是根据海宴同名网络小说改编电视剧《宫锁心玉》,又名《宫》《雪豹》,该剧改编自网络小说《特战先驱》《我是特种兵》由红遍网络的小说《最后一颗子弹留给我》改编电视剧《来不及说我爱你》改编自匪我思存同名小说《来不及说我爱你》', 'id': '0_norel', 'labels': ['步步惊心', 'fresh果果', '没关系']}" "{'text': '《步步惊心》改编自著名作家桐华的同名清穿小说《甄嬛传》改编自流潋紫所著的同名小说电视剧《何以笙箫默》改编自顾漫同名小说《花千骨》改编自fresh果果同名小说《裸婚时代》是月影兰析创作的一部情感小说《琅琊榜》是根据海宴同名网络小说改编电视剧《宫锁心玉》,又名《宫》《雪豹》,该剧改编自网络小说《特战先驱》《我是特种兵》由红遍网络的小说《最后一颗子弹留给我》改编电视剧《来不及说我爱你》改编自匪我思存同名小说《来不及说我爱你》', 'id': '0_norel', 'labels': ['花千骨', '顾漫', '没关系']}" "{'text': '《步步惊心》改编自著名作家桐华的同名清穿小说《甄嬛传》改编自流潋紫所著的同名小说电视剧《何以笙箫默》改编自顾漫同名小说《花千骨》改编自fresh果果同名小说《裸婚时代》是月影兰析创作的一部情感小说《琅琊榜》是根据海宴同名网络小说改编电视剧《宫锁心玉》,又名《宫》《雪豹》,该剧改编自网络小说《特战先驱》《我是特种兵》由红遍网络的小说《最后一颗子弹留给我》改编电视剧《来不及说我爱你》改编自匪我思存同名小说《来不及说我爱你》', 'id': '0_norel', 'labels': ['甄嬛传', '桐华', '没关系']}" "{'text': '《步步惊心》改编自著名作家桐华的同名清穿小说《甄嬛传》改编自流潋紫所著的同名小说电视剧《何以笙箫默》改编自顾漫同名小说《花千骨》改编自fresh果果同名小说《裸婚时代》是月影兰析创作的一部情感小说《琅琊榜》是根据海宴同名网络小说改编电视剧《宫锁心玉》,又名《宫》《雪豹》,该剧改编自网络小说《特战先驱》《我是特种兵》由红遍网络的小说《最后一颗子弹留给我》改编电视剧《来不及说我爱你》改编自匪我思存同名小说《来不及说我爱你》', 'id': '0_norel', 'labels': ['来不及说我爱你', '月影兰析', '没关系']}" "{'text': '《步步惊心》改编自著名作家桐华的同名清穿小说《甄嬛传》改编自流潋紫所著的同名小说电视剧《何以笙箫默》改编自顾漫同名小说《花千骨》改编自fresh果果同名小说《裸婚时代》是月影兰析创作的一部情感小说《琅琊榜》是根据海宴同名网络小说改编电视剧《宫锁心玉》,又名《宫》《雪豹》,该剧改编自网络小说《特战先驱》《我是特种兵》由红遍网络的小说《最后一颗子弹留给我》改编电视剧《来不及说我爱你》改编自匪我思存同名小说《来不及说我爱你》', 'id': '0_norel', 'labels': ['我是特种兵', '来不及说我爱你', '没关系']}" |
三、实体识别任务
序列标注模型结构
bert → bilstm → CRF模型融合
预测输入:
["《", "步", "步", "惊", "心", "》", "改", "编", "自", "著", "名", "作", "家", "桐", "华", "的", "同", "名", "清", "穿", "小", "说", "《", "甄", "嬛", "传", "》", "改", "编", "自", "流", "潋", "紫", "所", "著", "的", "同", "名", "小", "说", "电", "视", "剧", "《", "何", "以", "笙", "箫", "默", "》", "改", "编", "自", "顾", "漫", "同", "名", "小", "说", "《", "花", "千", "骨", "》", "改", "编", "自", "f", "r", "e", "s", "h", "果", "果", "同", "名", "小", "说", "《", "裸", "婚", "时", "代", "》", "是", "月", "影", "兰", "析", "创", "作", "的", "一", "部", "情", "感", "小", "说", "《", "琅", "琊", "榜", "》", "是", "根", "据", "海", "宴", "同", "名", "网", "络", "小", "说", "改", "编", "电", "视", "剧", "《", "宫", "锁", "心", "玉", "》", ",", "又", "名", "《", "宫", "》", "《", "雪", "豹", "》", ",", "该", "剧", "改", "编", "自", "网", "络", "小", "说", "《", "特", "战", "先", "驱", "》", "《", "我", "是", "特", "种", "兵", "》", "由", "红", "遍", "网", "络", "的", "小", "说", "《", "最", "后", "一", "颗", "子", "弹", "留", "给", "我", "》", "改", "编", "电", "视", "剧", "《", "来", "不", "及", "说", "我", "爱", "你", "》", "改", "编", "自", "匪", "我", "思", "存", "同", "名", "小", "说", "《", "来", "不", "及", "说", "我", "爱", "你", "》"]
预测输出:
["O", "B-图书作品", "I-图书作品", "I-图书作品", "I-图书作品", "O", "O", "O", "O", "O", "O", "O", "O", "B-人物", "I-人物", "O", "O", "O", "O", "O", "O", "O", "O", "B-图书作品", "I-图书作品", "I-图书作品", "O", "O", "O", "O", "B-人物", "I-人物", "I-人物", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "B-图书作品", "I-图书作品", "I-图书作品", "I-图书作品", "I-图书作品", "O", "O", "O", "O", "B-人物", "I-人物", "O", "O", "O", "O", "O", "B-图书作品", "I-图书作品", "I-图书作品", "O", "O", "O", "O", "B-人物", "I-人物", "I-人物", "I-人物", "I-人物", "I-人物", "I-人物", "O", "O", "O", "O", "O", "B-图书作品", "I-图书作品", "I-图书作品", "I-图书作品", "O", "O", "B-人物", "I-人物", "I-人物", "I-人物", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "B-图书作品", "I-图书作品", "I-图书作品", "O", "O", "O", "O", "B-人物", "I-人物", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "B-影视作品", "I-影视作品", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "B-作品", "I-作品", "I-作品", "I-作品", "O", "O", "B-影视作品", "I-影视作品", "I-影视作品", "I-影视作品", "I-影视作品", "O", "O", "O", "O", "O", "O", "O", "O", "O", "O", "B-作品", "I-作品", "I-作品", "I-作品", "I-作品", "I-作品", "I-作品", "I-作品", "I-作品", "O", "O", "O", "O", "O", "O", "O", "B-图书作品", "I-图书作品", "I-图书作品", "I-图书作品", "I-图书作品", "I-图书作品", "I-图书作品", "O", "O", "O", "O", "B-人物", "I-人物", "I-人物", "I-人物", "O", "O", "O", "O", "O", "B-图书作品", "I-图书作品", "I-图书作品", "I-图书作品", "I-图书作品", "I-图书作品", "I-图书作品", "O"]
四、关系分类任务 todo
用关系分类模型判断实体关系的类别
模型:chinese-bert-wwm-ext
预测输入:
text="《步步惊心》改编自著名作家桐华的同名清穿小说《甄嬛传》改编自流潋紫所著的同名小说电视剧《何以笙箫默》改编自顾漫同名小说《花千骨》改编自fresh果果同名小说《裸婚时代》是月影兰析创作的一部情感小说《琅琊榜》是根据海宴同名网络小说改编电视剧《宫锁心玉》,又名《宫》《雪豹》,该剧改编自网络小说《特战先驱》《我是特种兵》由红遍网络的小说《最后一颗子弹留给我》改编电视剧《来不及说我爱你》改编自匪我思存同名小说《来不及说我爱你》" {'图书作品': [('步步惊心', 1, 4), ('甄嬛传', 23, 25), ('何以笙箫默', 44, 48), ('花千骨', 60, 62), ('裸婚时代', 79, 82), ('琅琊榜', 99, 101), ('来不及说我爱你', 183, 189), ('来不及说我爱你', 203, 209)], '人物': [('桐华', 13, 14), ('流潋紫', 30, 32), ('顾漫', 53, 54), ('fresh果果', 67, 73), ('月影兰析', 85, 88), ('海宴', 106, 107), ('匪我思存', 194, 197)], '影视作品': [('雪豹', 132, 133), ('我是特种兵', 152, 156)], '作品': [('特战先驱', 146, 149), ('最后一颗子弹留给我', 167, 175)]} |
预测输出:
三元组:
[['何以笙箫默', '顾漫', '作者'], ['我是特种兵', '最后一颗子弹留给我', '改编自'], ['步步惊心', '桐华', '作者'], ['甄嬛传', '流潋紫', '作者'], ['花千骨', 'fresh果果', '作者'], ['裸婚时代', '月影兰析', '作者'], ['琅琊榜', '海宴', '作者'], ['雪豹', '特战先驱', '改编自'], ['来不及说我爱你', '来不及说我爱你', '改编自'], ['来不及说我爱你', '匪我思存', '作者']]