LangExtract

はじめに

 今回は、Googleが公開した「LangExtract」を紹介する。文章の中から、ユーザが必要とする情報だけを抽出するPythonライブラリである。

LangExtractとは

 LangExtractとは、LLMを用いて、与えられた文章からユーザがあらかじめ指定した情報を抽出するPythonライブラリである。以前の記事「LLMの出力の構造化データへの変換」で紹介したStructured Outputと呼ばれる手続きと目的は同じである。Structured Outputでは、抽出したい単語がどれであるかはLLMに判断させていた。今回紹介する手法は、ユーザーが定義した少数の例(few-shot examples)に基づき取り出す単語をLLMが判断するため、精度の高い抽出を期待できる。また、Googleが公開したライブラリであるが、バックエンドのLLMとしてOpenAIのモデルも使うことができる。今回は、GPT4oを用いた実験を紹介する(今回のソースコード)。

サンプルコード1

 最初に、どのような文章からどのような情報を取り出すのかが分かる具体例を与える。

3行目は入力プロンプト、8行目は例文、10行目から14行目までがユーザが望む回答である。この例文と回答をベースにLLMは情報抽出を行う。次に、実際に回答してほしい文章を与える。

4行目、5行目が情報を抽出したい文章である。以下のコードで実行する。

3行目に対象とする文章を、4行目にプロンプトを、5行目に例文とその回答を与えている。7行目に今回利用するモデル名が記載されている。結果は以下の通り(JSON形式)である。対象とした文章内の該当する文字列を赤字で示した。

2つの文章から欲しい情報を正確に取り出せていることが分かる。

サンプルコード2

 別の抽出を考える。最初に、具体例を与える。

3行目は入力プロンプト、8行目は例文、10行目から14行目までがユーザが望む回答である。2つの対象文から情報を抜き出した結果を以下に示す。

期待する回答を得ていることが分かる。該当する文字列がない場合は、Noneが入る。

まとめ

 今回は、与えられた文章から欲しい情報を抽出するライブラリ「LangExtract」を紹介した。この手法は、最初にユーザがタスクの例を提示するため、Structured Outputと呼ばれる手法より正確に単語等を抽出することができる。今回は短文のみを対象としたが、長文対応力も備わっており、大規模文書でも正確性と再現性を確保できると謳われている。

Kumada Seiya

Kumada Seiya

仕事であろうとなかろうと勉強し続ける、その結果”中身”を知ったエンジニアになれる

最近の記事

  • 関連記事
  • おすすめ記事
  • 特集記事

アーカイブ

カテゴリー

PAGE TOP