教程:基于 UIE 的命名实体识别
本教程基于 PaddleNLP 的 Universal Information Extraction 进行命名实体识别任务,并展示通过标注少量数据进行微调获取模型效果快速提升。
备注
完整的 Jupyter 笔记本、代码、标注数据在 https://openbayes.com/console/open-tutorials/containers/lWyxi1DwhJU 都可以找得到。
导入依赖库
from pprint import pprint
from paddlenlp import Taskflow
使用 uie-base 进行命名实体识别
首先直接使用预训练模型 uie-base 进行命名实体识别,不做任何的调优看看效果。
schema = [
'地名',
'人名',
'组织',
'时间',
'产品',
'价格',
'天气'
]
ie = Taskflow('information_extraction', schema=schema)
pprint(ie("2K 与 Gearbox Software 宣布,《小缇娜的奇幻之地》将于 6 月 24 日凌晨 1 点登录 Steam,此前 PC 平台为 Epic 限时独占。在限定期间内,Steam 玩家可以在 Steam 入手《小缇娜的奇幻之地》,并在 2022 年 7 月 8 日前享有获得黄金英雄铠甲包。"))
[{'产品': [{'end': 35,
'probability': 0.8594067882980987,
'start': 25,
'text': '《小缇娜的奇幻之地》'}],
'地名': [{'end': 117,
'probability': 0.5248250992968906,
'start': 109,
'text': '小缇娜的奇幻之地'},
{'end': 34,
'probability': 0.3007929716932729,
'start': 26,
'text': '小 缇娜的奇幻之地'}],
'时间': [{'end': 52,
'probability': 0.87968346213556,
'start': 38,
'text': '6 月 24 日凌晨 1 点'}],
'组织': [{'end': 93,
'probability': 0.5977969768231866,
'start': 88,
'text': 'Steam'},
{'end': 2,
'probability': 0.6914769673274321,
'start': 0,
'text': '2K'},
{'end': 75,
'probability': 0.5848915911412256,
'start': 71,
'text': 'Epic'},
{'end': 60,
'probability': 0.5682100157587833,
'start': 55,
'text': 'Steam'},
{'end': 21,
'probability': 0.679590305138845,
'start': 5,
'text': 'Gearbox Software'},
{'end': 105,
'probability': 0.4573145431744834,
'start': 100,
'text': 'Steam'}]}]