OpenAIの「Classification」で色々なデータを分類してみた – 日本一詳しいOpenAI入門

Microsoft Ignite 2021の基調講演で発表された「Azure OpenAI Service」。公式ページにある通りOpenAI でOpenAI APIを発行してもらったのでExpamplesにある49個のアプリから「Classification」をPythonから実行して試行錯誤します。 

 

すでにOpenAIが持っている情報に対して、少しの教師を与えることで分類してくれるようです。 

 

OpenAIExpamplesにあるClassificationとは 

公式の説明では「Classify items into categories via example.」とあり、“例(教師データ)を使ってアイテムをカテゴリーに分類”となっています。 

 

公式のタグでは「Classification」と1つが付与されています。1つだけ付与されている珍しいExampleとなります。 

プログラムを見るとエンジンは「Davinci」を使っています。 

 

サンプルコードでは1行目に「The following is a list of companies and the categories they fall into(以下は企業とそのカテゴリーの一覧です。)」とあり、企業とそれに対するカテゴリー一覧が表示されているという説明が記述されています。 

他のサンプルでも最初に「The following is(以下は)」で始まるものがあり、先頭にこの記述をすることでルールを推測し、モデルを作ってくれているようです。 

 

 

早速使ってみた 

公式にあるコードを参考に、好きな文章を入れられるように str という変数に会話を入れて実行できるようにします。 

 

例として、Facebook、Linkedin、Uber、ユニリーバ、マクドナルドの5社を例に出し、Fedexがどのようなカテゴリーかを推測するモデルです。一般的な言葉だけでなく、企業名といった固有名詞も判断できることがわかります。 

 

実行すると 、

Facebook:ソーシャルメディア、テクノロジー 

LinkedIn:ソーシャルメディア、テクノロジー、エンタープライズ、キャリア 

Uber:運送、テクノロジー、マーケットプレイス 

ユニリーバ:コングロマリット(複合企業)、一般消費製品 

マクドナルド:食事、ファーストフード、物流、レストラン 

 

に対して 、

FedEx:Logistics(物流), Transportation(運送) 

となります。 

 

First RetailingConsumer Goods(一般消費製品), Retail(小売り) 

のような企業だけでなく最近上場したばかりの企業を調べても 、

日本調理機(株):Conglomerate, Consumer 

のように結果が返ってきます。 

 

対して、日本で一番時価総額が高いユニコーン企業である株式会社Preffered Networksでも結果が返ってこなかったので、基本的には上場しているかどうかということのようです。 

 

他の分類も出来ます 

最初の「companies」の部分を「actors」に変えて、情報を用意してみました。 

Edward Regan Murphy: comedian, actor, singer 

Charles Spencer Chaplin: comedian,  filmmaker, composer 

Sir Sean Connery: actor 

Jim Carrey: 

 

もっと語彙力があると様々な分類ができると思われますが、きちんと「comedian, actor」と返ってきました。 

 

どんなときに使えるのか? 

企業の分類は、よく知っている企業に対して多くのカテゴリーを付与し教師データとして用意することで、上場レベルであれば様々な国の企業のカテゴリーなどを詳細に取得することが出来ます。英語以外の国の企業についても簡単にカテゴリー分けをすることが出来るので、調査等を行うときに非常に役に立ちます。 

上場企業や俳優の様に、ある程度インターネット上にもデータがあるものでいくつかの例を用意するだけで、カテゴリーを付与することが出来ます。ですので、似たような企業を探す・好みの映画を探す・似た傾向のアーティストを探すと行ったことが可能であり、検索エンジンとは違った視点でもデータ集めや活用をすることが出来ます。