🚀 GLiNER多PII领域模型
GLiNER是一个命名实体识别(NER)模型,它能够使用双向变压器编码器(类似BERT)识别任何实体类型。它为传统的NER模型提供了一个实用的替代方案,传统NER模型仅限于预定义的实体,而大语言模型(LLMs)虽然灵活,但在资源受限的场景中成本高且体积大。
该模型是通过在合成数据集E3 - JSI/synthetic - multi - pii - ner - v1上对urchade/gliner_multi_pii - v1进行微调训练得到的。
此模型能够识别各种类型的个人身份信息(PII),包括但不限于以下实体类型:个人
、组织
、电话号码
、地址
、护照号码
、电子邮件
、信用卡号码
、社会保险号码
、健康保险编号
、出生日期
、手机号码
、银行账号
、药物
、个人身份登记号
、驾驶证号码
、税务识别号
、医疗状况
、身份证号码
、国家身份证号码
、IP地址
、电子邮件地址
、国际银行账号
、信用卡到期日期
、用户名
、健康保险号码
、登记号码
、学生身份证号码
、保险号码
、航班号码
、固定电话号码
、血型
、信用卡验证码
、预订号码
、数字签名
、社交媒体账号
、车牌号
、公司登记号
、邮政编码
、护照号码
、序列号
、车辆登记号码
、信用卡品牌
、传真号码
、签证号码
、保险公司
、身份文件号码
、交易号码
、国家健康保险号码
、信用卡验证码
、出生证明号码
、火车票号码
、护照到期日期
和社会保险号码
。
🚀 快速开始
要使用该模型,必须使用GLiNER库。安装完成后,用户可以加载模型并使用它来识别文本中的实体。
pip install gliner
✨ 主要特性
- 能够使用双向变压器编码器识别任何实体类型,为传统NER模型和大语言模型提供了实用替代方案。
- 经过微调训练,可识别多种类型的个人身份信息(PII)。
💻 使用示例
基础用法
从英文医学文本中提取实体
from gliner import GLiNER
model = GLiNER.from_pretrained("E3-JSI/gliner-multi-pii-domains-v1")
text = """
Medical Record
Patient Name: John Doe
Date of Birth: 15-01-1985
Date of Examination: 20-05-2024
Social Security Number: 123-45-6789
Examination Procedure:
John Doe underwent a routine physical examination. The procedure included measuring vital signs (blood pressure, heart rate, temperature), a comprehensive blood panel, and a cardiovascular stress test. The patient also reported occasional headaches and dizziness, prompting a neurological assessment and an MRI scan to rule out any underlying issues.
Medication Prescribed:
Ibuprofen 200 mg: Take one tablet every 6-8 hours as needed for headache and pain relief.
Lisinopril 10 mg: Take one tablet daily to manage high blood pressure.
Next Examination Date:
15-11-2024
"""
labels = ["name", "social security number", "date of birth", "date"]
entities = model.predict_entities(text, labels, threshold=0.5)
for entity in entities:
print(entity["text"], "=>", entity["label"])
预期输出
John Doe => name
15-01-1985 => date of birth
20-05-2024 => date
123-45-6789 => social security number
John Doe => name
15-11-2024 => date
从荷兰文医学文本中提取实体
from gliner import GLiNER
model = GLiNER.from_pretrained("E3-JSI/gliner-multi-pii-domains-v1")
text = """
Medisch dossier
Naam patiënt: Jan de Vries
Geboortedatum: 15-01-1985
Datum van onderzoek: 20-05-2024
Burgerservicenummer: 987-65-4321
Onderzoeksprocedure:
Jan de Vries onderging een routine lichamelijk onderzoek. De procedure omvatte het meten van de vitale functies (bloeddruk, hartslag, temperatuur), een uitgebreid bloedonderzoek en een cardiovasculaire inspanningstest. De patiënt meldde ook af en toe hoofdpijn en duizeligheid, wat aanleiding gaf tot een neurologische beoordeling en een MRI-scan om eventuele onderliggende problemen uit te sluiten.
Voorgeschreven medicatie:
Paracetamol 500 mg: Neem één tablet elke 6-8 uur indien nodig voor hoofdpijn en pijnverlichting.
Amlodipine 5 mg: Neem één tablet dagelijks om hoge bloeddruk te beheersen.
Volgende onderzoekdatum:
15-11-2024
"""
labels = ["naam", "bmurgerservicenummer", "geboortedatum", "datum"]
entities = model.predict_entities(text, labels, threshold=0.2)
for entity in entities:
print(entity["text"], "=>", entity["label"])
预期输出
Jan de Vries => naam
15-01-1985 => geboortedatum
20-05-2024 => datum
987-65-4321 => bmurgerservicenummer
Jan de Vries => naam
15-11-2024 => datum
📄 许可证
本项目采用Apache 2.0许可证。
致谢
本项目由欧盟资助。地平线欧洲项目PREPARE中的英国参与者由英国研究与创新署(UKRI)拨款10086219(三边研究)支持。然而,文中表达的观点和意见仅为作者个人观点,不一定反映欧盟、欧洲健康与数字执行机构(HADEA)或英国研究与创新署(UKRI)的观点。欧盟、资助机构和英国研究与创新署均不对其负责。资助协议编号101080288 PREPARE HORIZON - HLTH - 2022 - TOOL - 12 - 01。
信息表格
属性 |
详情 |
库名称 |
gliner |
任务类型 |
标记分类 |
数据集 |
E3 - JSI/synthetic - multi - pii - ner - v1 |
基础模型 |
urchade/gliner_multi_pii - v1 |
支持语言 |
英语、法语、德语、西班牙语、葡萄牙语、意大利语、斯洛文尼亚语、希腊语、荷兰语 |
许可证 |
Apache 2.0 |