GPT4oを用いた固有表現抽出

はじめに

 これまで、GPT4oを用いた画像の異常検知や顔認証の簡単な検証を行ってきた。今回は、固有表現抽出を試してみる。

固有表現抽出とは

 固有表現抽出(Named Entity Recognition:NER)とは、テキストから特定の種類の情報(固有表現)を自動的に識別し抽出する自然言語処理の手法である。固有表現には通常、次のような種類が含まれる。

  • 人名(例:夏目漱石、宮沢賢治)
  • 地名(例:東京、大阪)
  • 組織名(例:東京大学、朝日新聞社)
  • 日時(例:1867年、2月9日)
  • 職名や職位(例:教師、尉)
  • 体の部位(例:膝、腕)
  • Ginzaを用いた固有表現抽出

     最初に、固有表現抽出を行うPythonライブラリ「GINZA」を紹介する。リンク先の説明に従いインストールを行ったあと以下を実行すれば良い。

    7行目から9行目にかけて与えた文章が固有表現を抜き出す文章である。出力は以下の通り。

    各行は、<固有表現>, <ラベル>, <固有表現の先頭の文字番号>, <固有表現の末尾の文字番号>から成る。ラベルの種類は拡張固有表現階層定義に記載されている。これを見ると、かなり細かい分類であることが分かる。ところで、上の「金メダル」のラベルが「自然現象_その他」になっているのは意味不明だ。

    GPT4oを用いた固有表現抽出

     GPT4oを使う場合は、以下のようにするだけである。与えた文章は先と同じものである。
    こちらの「金メダル」には「賞」というラベルが割り当てられている。こちらの方が妥当である。

    比較

     いくつかの文章を与えて、GINZAとGPT4oによる固有表現抽出を行ってみたが、ほぼ同じ結果であり面白くない。そこで、少し昔の小説の一節を与えてみる。

    GINZAの方にいくつかおかしな部分がある(赤で示した部分)。一方で、GPT4oの方におかしな箇所はない。上段の例にてGPT4oが「虎榜」の意味を指摘しているのは流石である。

    GPT4oによる履歴書の読み取り

     最後に、GPT4oに履歴書(PDF)を与えて、固有表現抽出した結果を示す。

    結果は以下の通り。

    まとめ

     今回は、固有表現抽出と呼ばれる自然言語処理の1ジャンルをGPT4oを用いて実現してみた。かなりの精度で固有表現を検出できることが分かった。最近、o1-previewやo1-miniに引き続き、o1とo1 proが公開された。ますます賢くなります。

    Kumada Seiya

    Kumada Seiya

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

    最近の記事

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

    アーカイブ

    カテゴリー

    PAGE TOP