资讯 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

开放域信息抽取(生成式)

任务介绍

开放域信息抽取利用单一模型支持多种类型的开放抽取任务,用户可以使用自然语言自定义抽取目标,无需训练即可抽取输入文本中的对应信息。本任务与之前开放域信息抽取(抽取式)不同的是,采用生成模型进行信息抽取。

数据准备

这里我们提供了一份开源的demo数据。

进入任务目录

cd ../tasks/openie

训练集和验证集已经转好模型需要的格式,分别存放在./data/ie_generation_data目录下的train和dev件夹下。

训练集/验证集

训练集、验证集的数据格式相同,如下所示。

{"content": "卢靖姗白鹿因新剧《凤囚凰》播出,备受关注", "answer": "白鹿", "question": "瞽凤囚凰的主演", "title": "OPEN\tRE\tLIC2019"}


{"content": "录音机-专业录音软件有哪些专业的功能?。Shortcuts:捷径功能让你的手机秒变智能录音机,只需录入语音指令,唤醒Siri即可立刻录音、计划录音或播放最近的录音", "answer": "数码奭软件", "question": "槭主题标签", "title": "feed_data"}


{"content": "薛家将-百度云打包 - 薛家将打包下载。《白眉大侠》讲述宋朝仁宗皇帝执政期间,以徐良、蒋平、白芸瑞为首的三侠、七杰、小五义等众开封府校尉,在...《隋唐演义》评书讲述的是隋王朝临末日时,以瓦岗寨为首的起义军,联络朝中被隋炀帝迫害的将领,推翻隋朝,...长篇评书《乱>    世枭雄》讲的是东北王张作霖和其子少帅张学良的传奇故事,是著名评书艺术家单田芳先生根据大量...《童林传》评书说的是清康熙年间,童林(字海川)因贪恋赌博,将父亲气伤后被父亲赶走。他绝路逢生,不仅得...《三侠剑》故事自“明清八义”开书,胜英年轻时因金镖误伤八弟秦天豹,与秦家结下“    梁子”。后来“明清八义...评书《水浒传》中塑造了一批啸聚江湖,仗义行侠的绿林好汉的独特性格和各人被逼上梁山的成长道路;及其后宋...评书《龙虎风云会》是长篇侠义评书《白眉大侠》的继续和补充,又可单独成章,并增加了公案情节。此书以房书...《三侠五义》原名《忠烈侠义传》,长篇侠>    义公案小说。清代无名氏根据说书艺人石玉昆说唱的《龙图公案》及其...", "answer": "历史奭宋朝", "question": "槭主题标签", "title": "feed_data"}

每条数据有4个字段,

  • content字段是文本内容;
  • answer字段是答案(label),
  • title字段可以理解文本内容的简介/标题等或者表示文本内容属于哪一类的文本,
  • qustion字段是待抽取目标的问题。

其中多个抽取结果之间的分割符号是:奭;

抽取任务和分类任务(主题标签、是否),区分两个任务的命令添加在数据的question字段开头,抽取任务是“瞽”,分类任务是“槭”。

开始训练

使用预置网络进行训练的方式为使用./run_trainer.py入口脚本,通过--param_path参数来传入./examples/目录下的json配置文件。 模型结构是基于unilm的生成网络,训练分为以下几个步骤:

  1. 基于示例的数据集,可以运行以下命令在训练集(train.json)上进行模型训练,并在测试集(dev.json)上进行验证;
# 下载模型
cd ../../models_hub
sh download_ernie_ie_2.0_large_generation_ch.sh
# 配置文件./examples/ernie_ie_2.0_large_generation_ch.json
cd ../tasks/openie
python run_trainer.py --param_path ./examples/ernie_ie_2.0_large_generation_ch.json
  1. 训练运行的日志会自动保存在./log/test.log文件中;
  2. 训练结束后产生的模型文件会默认保存在./output/ernie_ie_2.0_large_generation_ch/目录下,其中save_inference_model/文件夹会保存用于预测的模型文件,save_checkpoint/文件夹会保存用于热启动的模型文件;训练中产生评估结果和对评估集的预测结果分别保存在output/evaluations/文件夹和output/predictions文件夹

开始预测

使用预置网络进行预测的方式为使用./run_infer.py入口脚本,通过--param_path参数来传入./examples/目录下的json配置文件。

其预测分为以下几个步骤:

  1. 基于./examples/ernie_ie_2.0_large_generation_ch_infer.json训练出的模型默认储存在./output/ernie_ie_2.0_large_generation_ch/save_inference_model/中,在该目录下找到被保存的inference_model文件夹,修改./examples/ernie_ie_2.0_large_generation_ch_infer.json中"inference_model_path"参数,如下所示:
{
  ...
  "inference":{   
     ...
    "inference_model_path":"output/ernie_ie_2.0_large_generation_ch/save_inference_model/inference_step_201" 
  }
}
  1. 预测结果会保存在./output/predict_result.txt
上一篇
信息抽取:多对多关系&实体属性抽取
下一篇
(New)通用信息抽取:跨任务跨模态统一模型ERNIE-UIE,开箱即用