固有表現抽出の比較
同じ本文に対する語リスト照合・GiNZA・XLM-RoBERTa・GLiNER2.5・Qwen3.5-4B・GPT-6.1-Sol Medの抽出結果を比較できるノートブックです。
ノートブックを開く
ブラウザーで開く(学内限定)
手元で実行する
教材一式(ZIP)を展開し、すべてのファイルを同じフォルダーに置いてください。notebook-theme.cssと隠しファイル.marimo.tomlも残してください。そのフォルダーで次のコマンドを実行してください。
uvx --python 3.14 marimo==0.25.0 edit --sandbox ner-comparison.pyuvxが認識されない場合は、先に授業のノートブックを実行するの手順でuvをインストールしてください。
ノートブックは最初に保存済みの実行結果を表示します。「GPT-6.1-Sol Med」には、教員が商用モデルGPT-6.1-Solを推論設定mediumで実行した結果を表示します。モデルの版は公開されていません。このノートブックでは実行できず、保存済みの比較結果のみを表示します。
新しく実行する場合、ノートブックは初回に数GBのモデルを取得します。AppleシリコンのMacではGPU、それ以外ではCPUで本文を処理します。APIキーは不要です。
LinuxでNVIDIAやAMDのGPUを使うには?
LinuxでNVIDIA(CUDA)またはAMD(ROCm)のGPUを使う場合は、上のコマンドの代わりに、同じフォルダーで次のコマンドを1行ずつ実行してください。
uv venv --python 3.14
uv export --script ner-comparison.py --no-hashes | grep -v '^torch==' > requirements.txt
uv pip install --torch-backend=auto -r requirements.txt torch==2.14.1
uv run marimo edit --no-sandbox ner-comparison.py最初の3行は、このフォルダーに環境(.venv)を作り、ner-comparison.py.lockと同じ版のパッケージと、GPUに合うPyTorchを入れます。2回目からは最後の行だけを実行してください。
結果を比べる
- Soranoha版「蜘蛛の糸」の第1部(四段落)で、各方法の結果を確認してください。
- 「蜘蛛の糸:領域別カテゴリ」に切り替え、神仏・罪人・刑罰の場所の抽出結果を比べてください。語リスト照合・GiNZA・XLM-RoBERTaのカテゴリは人名・地名のままなので、「対象外」と表示され、スコアはつきません。
- 「本文・条件を変えて実行」でカテゴリ名と説明を一つ変え、「比較する」を押してください。
抽出の基準、暫定的な確認用アノテーション(GPT-6.1-Sol Medの旧出力)、元の出力はノートブック内で開けます。本文や抽出の基準を編集した場合、ノートブックは抽出結果のみを表示し、確認用アノテーションとの比較表は表示しません。
語リスト照合は、本文に合わせて用意した表現を探します。「本文・条件を変えて実行」で表現とカテゴリを編集できます。
GiNZAとXLM-RoBERTaのNERカテゴリは学習時に決まっています。XLM-RoBERTaは日本語Wikipediaのアノテーションで学習したモデルです。この比較では人名(PER)と地名(LOC)を使い、その他のカテゴリは元の出力に残します。
GLiNER2.5もエンコーダー型ですが、対象に合わせたカテゴリと説明をその場で指定できます。LLMもカテゴリと説明を受け取り、抽出結果を生成します。配布例の入力には共通のカテゴリ定義を含め、正解の名前は含めていません。
新しいカテゴリへの対応と、指示どおりに抽出できたかを分けて確認してください。
ノートブックはQwenの出力を、指定したカテゴリのJSONに制限しています。形式が正しくても、抽出漏れや分類の誤りは残ります。