OpenNRE:清华开源的实体关系抽取工具包 文章目录OpenNRE清华开源的实体关系抽取工具包1、关系抽取解决什么问题2、OpenNRE 做了什么3、快速上手4、训练自己的模型5、适合谁用OpenNRE清华开源的实体关系抽取工具包OpenNRE 在 GitHub 上拿到了 4.4K Star。这是清华大学 NLP 组推出的开源关系抽取工具包属于 OpenSKL 项目的子项目。核心任务是从非结构化文本中提取实体间的语义关系比如从乔布斯创立了苹果公司这句话中抽取出乔布斯创始人苹果公司这样的三元组。1、关系抽取解决什么问题关系抽取是知识图谱自动构建的核心环节。自然语言里充满了实体和它们之间的关系“马云是阿里巴巴的创始人”、“北京是中国的首都”这些事实散落在新闻、百科、论文里。关系抽取模型的工作就是识别出句子中的实体并判断它们之间存在什么类型的语义关联。积累起来的三元组构成知识网络支撑问答系统、推荐引擎、搜索引擎等下游应用。没有关系抽取机器获取的知识只是一堆孤立的名词。2、OpenNRE 做了什么关系抽取的研究门槛不低。不同论文用不同的代码框架、数据格式和评估指标复现一篇论文的实验经常要花几周。OpenNRE 把主流的实体关系抽取模型统一到一个框架里。输入输出接口标准化模型结构模块化切换编码器或注意力机制只需要改几行配置。支持监督学习和远程监督两种设定兼容 CNN 网络和 BERT 预训练语言模型。在 NYT10 数据集上CNN-ATT 模型跑出了 0.333 的 AUC 和 0.397 的 F1 值比原论文发表的结果略高。3、快速上手安装是标准流程clone 仓库后 pip 装依赖再跑 setup.py。数据和预训练文件需要单独下载benchmark 和 pretrain 目录下有对应的下载脚本。OpenNRE 提供了几个开箱即用的预训练模型importopennre modelopennre.get_model(wiki80_cnn_softmax)model.infer({text:He was the son of Máel Dúin...,h:{pos:(18,46)},t:{pos:(78,91)}})# (father, 0.5108704566955566)首次调用会自动下载模型和数据之后直接 infer 即可。模型返回关系类型和置信度分数。不需要理解注意力机制的数学推导几行代码就能跑起来一个可用的关系抽取模型。目前官方提供 5 个预训练模型覆盖 wiki80 和 TACRED 两个数据集编码器可选 CNN 或 BERT。4、训练自己的模型如果有自己的数据集和关系类别定义example 目录提供了训练脚本。用 PCNN-ATT 在 NYT10 上训练一个 bag-level 模型python example/train_bag_cnn.py\--metricauc\--datasetnyt10m\--batch_size160\--lr0.1\--max_epoch100\--encoderpcnn\--aggratt换成 BERT 编码器同样只需调整几行参数命令行可灵活配置超参适合快速实验迭代。5、适合谁用NLP 研究者可以用它做关系抽取的 baseline 实验不必从零造轮子。知识图谱方向的开发者可以直接把预训练模型接入生产线。想入门关系抽取的学生也能通过清晰的代码结构和配套文档快速动手。OpenNRE 是 OpenSKL 项目的一部分同系列还有做知识图谱嵌入的 OpenKE、做预训练语言模型增强的 ERNIE、做图节点表示的 OpenNE。这几个工具配合使用可以覆盖知识图谱从构建到应用的完整链路。E、做预训练语言模型增强的 ERNIE、做图节点表示的 OpenNE。这几个工具配合使用可以覆盖知识图谱从构建到应用的完整链路。