モデル別実行レシピ

GLiNER2.5で英語文からfieldをJSON抽出

英語問い合わせから定義済みfieldを抽出し、原文と一緒に保存します。

GLiNER2.5は文と抽出したい項目名を入力すると、該当項目と原文中の範囲を返します。この例では英語のサポート文から製品名、エラーコード、問題の説明を抽出し、JSONレコードに保存します。

実行条件と要点
  • モデルカードのbase checkpointは英語向けです。
  • この例はfield抽出を扱い、relation抽出は行いません。

文章生成ではなく構造化抽出を行います

GLiNER2.5は情報抽出モデルです。文と抽出したい項目名を入力すると、該当項目と原文中の位置を返します。この例では英語のサポート文から製品名、エラーコード、問題の説明を抽出し、JSONレコードに保存します。

公式repoはfastino/gliner2.5-base-v1を英語向け推奨checkpoint1として示し、pip install "gliner2[local]"を案内します。韓国語でも同等の品質とは推定せず、まず英語標本で検証します。

文書が検索用の段落に分かれ、一部がローカルPCへ送られる様子
文書種類と抽出したい情報を先に決めます。

小さなschemaから始めます

文書を1種類選び、entity名とrelationの向きを定義します。AutoExtractor.from_pretrained("fastino/gliner2.5-base-v1")で読み込み、field・relation・attributeを指定します。

下のPython codeをextract.pyとして保存します。source_id・原文・model返却値を1つのfileに保存し、出力を原文と照合できます。

extract.py — fieldを抽出してJSON保存
import json
from gliner2 import AutoExtractor

model = AutoExtractor.from_pretrained("fastino/gliner2.5-base-v1")
source_id = "ticket-001"
text = "The Atlas 14 laptop stopped charging with error E-204 after the March update."
schema = {"product": [
    "name::str::Product name and model",
    "error_code::str::Error code mentioned in the report",
    "issue::str::What went wrong",
]}
result = model.extract_json(text, schema)
record = {"source_id": source_id, "text": text, "extraction": result}
with open("extraction.json", "w", encoding="utf-8") as f:
    json.dump(record, f, ensure_ascii=False, indent=2)
print(json.dumps(record, ensure_ascii=False, indent=2))
GLiNER2.5をローカル推論用に導入
python -m venv .venv
source .venv/bin/activate
python -m pip install -U "gliner2[local]"
field抽出を実行
python extract.py
原文とmodel返却値を含む`extraction.json`を保存します。
質問ごとの正解根拠をカードに整理した様子
固定標本で見落としと誤検出を記録します。

項目ごとに抽出結果を監査します

人手ラベル付き文を100件用意し、entity spanのprecision・recall、relationのprecision・recall、JSON parse成功率を別々に測ります。合算値だけでは頻繁に欠落・誤接続する項目が隠れます。

誤検出の修正時間と誤ったrelationが後続処理に与えるコストも記録します。英語以外や複雑なレイアウトでは、OCR2出力がtext入力の前提に合うかを別に確認します。

表の構造をそのまま残す、または文書全体を一度に変換する必要があるなら、項目抽出モデルより文書パーサーを先に比較してください。ここでは指定した項目だけを探すため、表のセルや読み順は別に確認する必要があります。

2台のPCで文書の索引作成と検索結果を比較する様子
抽出精度と後続検索性能を分けて評価します。

用語の注釈

  1. チェックポイント — 学習済みモデルの重みなどを保存したファイルです。同じモデル系列でも、版や用途によって異なるチェックポイントを使うことがあります。

    本文に戻る
  2. OCR — 画像やスキャン文書の文字を認識してテキストにする処理です。表の配置や読み順は、元の画像を合わせて確認する必要があります。

    本文に戻る

よくある質問

この記事で最初に確認すべきことは何ですか?
GLiNER2.5は文と抽出したい項目名を入力すると、該当項目と原文中の範囲を返します。この例では英語のサポート文から製品名、エラーコード、問題の説明を抽出し、JSONレコードに保存します。