🚀 GLiNER Multi PII Domains
GLiNERは、双方向トランスフォーマーエンコーダ(BERTライク)を使用して任意のエンティティタイプを識別できる固有表現抽出(NER)モデルです。これは、事前定義されたエンティティに限定される従来のNERモデルや、柔軟性はあるもののリソース制約のあるシナリオではコストが高く大規模な大規模言語モデル(LLM)に代わる実用的な選択肢を提供します。
このモデルは、合成データセットE3 - JSI/synthetic - multi - pii - ner - v1上でurchade/gliner_multi_pii - v1をファインチューニングすることで学習されました。
このモデルは、以下に限定されないが、person
(人物)、organization
(組織)、phone number
(電話番号)、address
(住所)、passport number
(パスポート番号)、email
(電子メール)、credit card number
(クレジットカード番号)、social security number
(社会保障番号)、health insurance id number
(健康保険ID番号)、date of birth
(生年月日)、mobile phone number
(携帯電話番号)、bank account number
(銀行口座番号)、medication
(薬剤)、cpf
、driver's license number
(運転免許証番号)、tax identification number
(税務識別番号)、medical condition
(病状)、identity card number
(身分証明書番号)、national id number
(国民ID番号)、ip address
(IPアドレス)、email address
(電子メールアドレス)、iban
、credit card expiration date
(クレジットカード有効期限)、username
(ユーザー名)、health insurance number
(健康保険番号)、registration number
(登録番号)、student id number
(学生ID番号)、insurance number
(保険番号)、flight number
(便名)、landline phone number
(固定電話番号)、blood type
(血液型)、cvv
、reservation number
(予約番号)、digital signature
(電子署名)、social media handle
(ソーシャルメディアハンドル)、license plate number
(ナンバープレート)、cnpj
、postal code
(郵便番号)、passport number
(パスポート番号)、serial number
(シリアル番号)、vehicle registration number
(車両登録番号)、credit card brand
(クレジットカードブランド)、fax number
(ファックス番号)、visa number
(ビザ番号)、insurance company
(保険会社)、identity document number
(身分証明書番号)、transaction number
(取引番号)、national health insurance number
(国民健康保険番号)、cvc
、birth certificate number
(出生証明書番号)、train ticket number
(電車の切符番号)、passport expiration date
(パスポート有効期限)、social security number
(社会保障番号)などの様々な種類の個人情報(PII)を認識することができます。
🚀 クイックスタート
✨ 主な機能
GLiNERは、双方向トランスフォーマーエンコーダを用いて、多様な言語での個人情報(PII)を識別することができます。従来のNERモデルや大規模言語モデルに比べ、リソース制約のある環境でも効果的に動作します。
📦 インストール
モデルを使用するには、GLiNERライブラリを使用する必要があります。以下のコマンドでインストールできます。
pip install gliner
💻 使用例
基本的な使用法
以下は、英語の医療テキストからエンティティを抽出する例です。
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](https://prepare - rehab.eu/)の英国の参加者は、UKRI助成金番号10086219(三国間研究)によって支援されています。ただし、表現される見解や意見は著者のものであり、必ずしも欧州連合、欧州健康・デジタル執行機関(HADEA)、またはUKRIの見解を反映するものではありません。欧州連合、助成機関、またはUKRIはこれらについて責任を負うことはできません。助成協定101080288 PREPARE HORIZON - HLTH - 2022 - TOOL - 12 - 01。