🚀 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 |