信息抽取/实体关系抽取之UIE
admin
2024-03-22 04:05:59
0

目前需要的NLP岗位要求中常见字眼“信息抽取,关系抽取”,不懂的就会问,这是啥?莫不是token 分类,NER?其实不是,应该是类似于属性信息,比如商品,价格25,销量1w+,加购2000+,产地北京,等等一些商品的描述信息,也可以是人的属性信息,比如我,年龄25,身高183,体重73,身价1kw,家乡北京,等等。当然也可以是人与人之间的信息,比如娱乐圈,谁的谁是谁的前任,谁的女儿是谁的孩子,他爹是谁,他后爹是谁,他干爹是谁,等等。也可以是结构化信息。

下面以飞酱的开源UIE(Universal Information Extraction)为例进行实际操作,

安装飞酱是基础,否则paddlenlp也不能用。

$ pip install --upgrade paddlenlp
$ python -m pip install paddlepaddle==2.3.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
##
>>> from pprint import pprint
>>> from paddlenlp import Taskflow
/opt/anaconda3/lib/python3.9/site-packages/_distutils_hack/__init__.py:30: UserWarning: Setuptools is replacing distutils.warnings.warn("Setuptools is replacing distutils.")
schema = ['时间', '人物', '赛事'] # Define the schema for entity extraction
ie = Taskflow('information_extraction', schema=schema)
>>> pprint(ie("12月6日上午卡塔尔世界杯中国队以满分100分获得金牌!"))
[{'时间': [{'end': 7,'probability': 0.9871144616784733,'start': 0,'text': '12月6日上午'}],'赛事': [{'end': 13,'probability': 0.9676816951303167,'start': 7,'text': '卡塔尔世界杯'}]}]
#277356808 Q group

可见少了人物,如果语言不够规范,可能就无法识别。

医学方面结构信息也可提取:(medical)当然也有其他模型,taskflow那里设置

>>> schema = ['肿瘤的大小', '肿瘤的个数', '肝癌级别', '脉管内癌栓分级']
>>> ie.set_schema(schema)#277356808 Q group
>>> pprint(ie("(右肝肿瘤)肝细胞性肝癌(I-III级,梁索型和假腺管型),肿瘤包膜不完整,紧邻肝被膜,侵及周围肝组织,未见脉管内癌栓(MVI分级:M0级)及卫星子灶形成。(肿物3个,大小4.2×5.0×1.8cm)。"))
[{'肝癌级别': [{'end': 20,'probability': 0.9246462251936833,'start': 13,'text': 'I-III级'}],'肿瘤的个数': [{'end': 84,'probability': 0.7917894830730177,'start': 82,'text': '3个'}],'肿瘤的大小': [{'end': 100,'probability': 0.830017001399554,'start': 87,'text': '4.2×5.0×1.8cm'}],'脉管内癌栓分级': [{'end': 70,'probability': 0.9117307134953805,'start': 67,'text': 'M0级'}]}]

除了上面的基本信息抽取还有关系抽取,事件抽取,情感分类,观点抽取,可用模型如下,taskflow里面设置model="*****",默认的是“uie-base”

uie-base (默认)12-layers, 768-hidden, 12-heads中文
uie-base-en12-layers, 768-hidden, 12-heads英文
uie-medical-base12-layers, 768-hidden, 12-heads中文
uie-medium6-layers, 768-hidden, 12-heads中文
uie-mini6-layers, 384-hidden, 12-heads中文
uie-micro4-layers, 384-hidden, 12-heads中文
uie-nano4-layers, 312-hidden, 12-heads中文
uie-m-large24-layers, 1024-hidden, 16-heads中、英文
uie-m-base12-layers, 768-hidden, 12-heads中、英文

此外也有数据标注的专门库 ,飞酱支持数据从标注到训练使用。

也可对数据进行微调,如下示例:

export finetuned_model=./checkpoint/model_best
#Q group 277356808
python finetune.py  \--device gpu \--logging_steps 10 \--save_steps 100 \--eval_steps 100 \--seed 42 \--model_name_or_path uie-base \--output_dir $finetuned_model \--train_path data/train.txt \--dev_path data/dev.txt  \--max_seq_length 512  \--per_device_eval_batch_size 16 \--per_device_train_batch_size  16 \--num_train_epochs 100 \--learning_rate 1e-5 \--label_names 'start_positions' 'end_positions' \--do_train \--do_eval \--do_export \--export_model_dir $finetuned_model \--overwrite_output_dir \--disable_tqdm True \--metric_for_best_model eval_f1 \--load_best_model_at_end  True \--save_total_limit 1 \

愿我们终有重逢之时,而你还记得我们曾经讨论的话题 

相关内容

热门资讯

【MySQL】锁 锁 文章目录锁全局锁表级锁表锁元数据锁(MDL)意向锁AUTO-INC锁...
【内网安全】 隧道搭建穿透上线... 文章目录内网穿透-Ngrok-入门-上线1、服务端配置:2、客户端连接服务端ÿ...
GCN的几种模型复现笔记 引言 本篇笔记紧接上文,主要是上一篇看写了快2w字,再去接入代码感觉有点...
数据分页展示逻辑 import java.util.Arrays;import java.util.List;impo...
Redis为什么选择单线程?R... 目录专栏导读一、Redis版本迭代二、Redis4.0之前为什么一直采用单线程?三、R...
【已解决】ERROR: Cou... 正确指令: pip install pyyaml
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
Lock 接口解读 前置知识点Synchronized synchronized 是 Java 中的关键字,...
Win7 专业版安装中文包、汉... 参考资料:http://www.metsky.com/archives/350.htm...
3 ROS1通讯编程提高(1) 3 ROS1通讯编程提高3.1 使用VS Code编译ROS13.1.1 VS Code的安装和配置...
大模型未来趋势 大模型是人工智能领域的重要发展趋势之一,未来有着广阔的应用前景和发展空间。以下是大模型未来的趋势和展...
python实战应用讲解-【n... 目录 如何在Python中计算残余的平方和 方法1:使用其Base公式 方法2:使用statsmod...
学习u-boot 需要了解的m... 一、常用函数 1. origin 函数 origin 函数的返回值就是变量来源。使用格式如下...
常用python爬虫库介绍与简... 通用 urllib -网络库(stdlib)。 requests -网络库。 grab – 网络库&...
药品批准文号查询|药融云-中国... 药品批文是国家食品药品监督管理局(NMPA)对药品的审评和批准的证明文件...
【2023-03-22】SRS... 【2023-03-22】SRS推流搭配FFmpeg实现目标检测 说明: 外侧测试使用SRS播放器测...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
初级算法-哈希表 主要记录算法和数据结构学习笔记,新的一年更上一层楼! 初级算法-哈希表...
进程间通信【Linux】 1. 进程间通信 1.1 什么是进程间通信 在 Linux 系统中,进程间通信...
【Docker】P3 Dock... Docker数据卷、宿主机与挂载数据卷的概念及作用挂载宿主机配置数据卷挂载操作示例一个容器挂载多个目...