/ Модель

Характеристики

Размер весов
1,2 ГБ
Лицензия
Apache 2.0
Базовая модель
gliner_multi_pii-v1
Библиотека
gliner
Опубликована
18 мая 2026

gliner-ja-pii-v1

Разметка токеновТекст → label6 профессий

Модель GLiNER, дообученная для поиска восьми категорий персональных и секретных данных в японском тексте.

7 998скачиваний за 30 дней3лайкавеса обновлены18 мая 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

DataSign разработала gliner-ja-pii-v1 — модель GLiNER для обнаружения и извлечения персональных данных в японском тексте. Она дообучена на синтетических японских данных на базе urchade/gliner_multi_pii-v1 и поддерживает NER с задаваемыми естественным языком метками сущностей. Модель ищет восемь категорий: имена, телефоны, адреса, адреса электронной почты, даты, URL, номера счетов и секреты, включая пароли, API-ключи и коды аутентификации.

Модель предназначена для выявления чувствительной информации в японских документах и текстах. В README приведена оценка на 600 синтетических примерах; результаты зависят от метки и порога обнаружения. Для японского текста требуется предварительная сегментация с помощью Janome и специального splitter, исключающего токены только из пробелов; стандартный whitespace splitter применять не следует. Максимальная длина входа — 160 токенов, более длинные тексты нужно разбивать. Лицензия — Apache-2.0.

Сценарии применения

  • поиск имён и контактных данных в японских документах
  • обнаружение персональных данных в пользовательских сообщениях на японском языке
  • поиск паролей, API-ключей и кодов аутентификации в тексте
  • извлечение японских адресов, дат и номеров счетов
  • подготовка японских текстов к обезличиванию

Ограничения

Для японского текста необходима сегментация Janome со специальным splitter; стандартное разбиение по пробелам не подходит. Максимальная длина входа — 160 токенов, а приведённая оценка выполнена на синтетических данных и не гарантирует такие же результаты на реальных текстах.

Для каких профессий подходит6

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

gliner-ja-pii-v1

日本語の個人情報 (PII) 検出に特化した GLiNER モデルです。urchade/gliner_multi_pii-v1 をベースに、日本語の合成データでファインチューニングしました。

概要

GLiNER は任意のエンティティラベルを自然言語で指定できる柔軟な NER モデルです。本モデルは以下 8 カテゴリの日本語 PII を検出します:

  • person name — 氏名 (漢字・ひらがな・カタカナ)
  • phone number — 電話番号 (090-XXXX-XXXX, +81-X-XXXX-XXXX, ベタ書き 11 桁など)
  • address — 住所 (〒郵便番号、都道府県、丁目番地号、ビル名など)
  • email address — メールアドレス
  • date — 日付 (西暦、令和、平成など)
  • url — URL
  • account number — 口座番号 (銀行口座、顧客番号など)
  • secret — パスワード・API キー・認証コードなど

性能

合成テストデータ 600 サンプル (1318 spans) での評価結果:

LabelPrecisionRecallF1Support
person name0.9840.9820.983439
phone number0.8560.8560.856180
address0.9660.8250.890103
email address0.8670.8370.852203
date0.9470.9620.955131
url0.9420.8020.866101
account number1.0000.9480.97377
secret0.9630.9170.93984
micro avg0.9400.9080.9241318

(しきい値 0.5 時点)

ベースモデル urchade/gliner_multi_pii-v1 をそのまま日本語に適用した場合の F1 は約 0.10 で、本モデルは約 9 倍の精度改善を達成しています。

使い方

インストール

pip install gliner janome

日本語対応のための重要な前処理

GLiNER の標準 whitespace splitter は日本語の単語境界を識別できません。本モデルでは Janome 形態素解析器を使用し、さらに空白だけのトークンを除外する独自の splitter を使うことを前提に学習されています。この splitter を必ず適用してください。

from gliner import GLiNER
from gliner.data_processing import WordsSplitter


class JapaneseSplitterNoWS:
    """Janome ベースの splitter。空白だけのトークンを yield しない。"""

    def __init__(self):
        self._base = WordsSplitter(splitter_type="janome")

    def __call__(self, text):
        for tok, s, e in self._base(text):
            if tok.strip() == "":
                continue
            yield tok, s, e


model = GLiNER.from_pretrained("DataSign/gliner-ja-pii-v1", max_width=25)
model.data_processor.words_splitter = JapaneseSplitterNoWS()

基本的な推論

labels = [
    "person name", "phone number", "address", "email address",
    "date", "url", "account number", "secret",
]

text = (
    "氏名: 山田太郎\n"
    "住所: 〒980-0021 宮城県仙台市青葉区中央1-2-3\n"
    "電話: 022-123-4567\n"
    "メール: yamada@example.co.jp\n"
    "申込日: 令和8年5月15日"
)

entities = model.predict_entities(text, labels, threshold=0.5)
for e in entities:
    print(f"[{e['label']}] {e['text']!r} (score={e['score']:.2f})")

出力例:

[person name] '山田太郎' (score=1.00)
[address] '〒980-0021 宮城県仙台市青葉区中央1-2-3' (score=0.98)
[phone number] '022-123-4567' (score=1.00)
[email address] 'yamada@example.co.jp' (score=1.00)
[date] '令和8年5月15日' (score=1.00)

長文の処理

モデルの最大入力長は 160 トークンです。これより長いテキストは分割が必要です:

def chunk_text(text, splitter, chunk_size=120, overlap=20):
    tokens = list(splitter(text))
    chunks = []
    i = 0
    while i < len(tokens):
        end = min(i + chunk_size, len(tokens))
        chunks.append((tokens[i][1], tokens[end - 1][2],
                       text[tokens[i][1]:tokens[end - 1][2]]))
        if end == len(tokens):
            break
        i = end - overlap
    return chunks


splitter = JapaneseSplitterNoWS()
chunks = chunk_text(long_text, splitter)
all_entities = []
for char_start, _, chunk in chunks:
    preds = model.predict_entities(chunk, labels, threshold=0.5)
    for p in preds:
        p["start"] += char_start
        p["end"] += char_start
        all_entities.append(p)

学習データ

合成データのみで学習しています。Faker (ja_JP ロケール) で氏名・住所・電話・メールを生成し、テンプレートに差し込む方式で 4,000 サンプルを作成しました。テンプレートは以下を含みます:

  • フォーム形式 (氏名: <値>, 住所:\n<値>)
  • ビジネスメール (<氏名>様、ご依頼の件、<日付>までに対応します)
  • HubSpot 風通知 (姓: <姓>\n名: <名>\nメール: <email> 形式)
  • ログメッセージ (User <name> failed to login at <date>)
  • パスワード共有 (パスワードは <secret>、APIキーは <secret> です)

実データは含まれていないため、業務文書の表記揺れには弱い場合があります。

制限事項

  • 最大入力長 160 トークン: 長文は分割推論が必要
  • 会社名・組織名は検出されません: 8 カテゴリに含まれないため
  • 合成データのみ学習: 業務文書特有の表記には実データを追加学習することで精度向上が期待できます
  • 1 文字漢字の名前: 諒 などの 1 文字漢字名は学習サンプルが限定的で recall が低い場合があります

ライセンス

Apache License 2.0 (ベースモデル urchade/gliner_multi_pii-v1 と同じ)

引用

ベースモデル GLiNER の論文:

@misc{zaratiana2023gliner,
  title={GLiNER: Generalist Model for Named Entity Recognition using Bidirectional Transformer},
  author={Urchade Zaratiana and Nadi Tomeh and Pierre Holat and Thierry Charnois},
  year={2023},
  eprint={2311.08526},
  archivePrefix={arXiv},
  primaryClass={cs.CL}
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · gliner

Нельзя запустить

Модели GLiNER требуют отдельного рантайма.

Ревизия весов
54e97b3

0 моделей