1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CLASSIFY_TEXTを試してみた(Snowflake Cortex LLM Function)

Last updated at Posted at 2024-09-30

CLASSIFY_TEXTがプレビューになりました

CLASSIFY_TEXTが先日プレビューになりました。

CLASSIFY_TEXT 関数は「プロンプトエンジニアリングや後処理、例を提供することなく、テキストレコードにすばやく正確にラベルを付けることができる」というものです。

さっそく試してみましょう!

試す!

施設のカテゴリ分類

まずは、分かりやすそうなテーマで、施設のカテゴリ(観光施設・食事処 等)を分類してみます。

以下のカテゴリー1(大分類)と更に細かいカテゴリー2(小分類)で試してみます。

select
    place_name,
    get( -- JSON形式で返却されるのでget()で値を取り出します
        SNOWFLAKE.CORTEX.CLASSIFY_TEXT(
            place_name,
            ['買い物', '遊び', '交通', '生活', '観光', '飲食']
        ),
        'label'
     ) as category_1,
    get(
        SNOWFLAKE.CORTEX.CLASSIFY_TEXT(
            place_name,
            ['レジャー施設', 'スーパー', 'ラーメン屋', 'ゲームセンター', 'カレー屋', 'ライブハウス', '-- 合計45分類にしています_割愛 --' ]
        ),
    'label'
     ) as category_2
from
    sample
;

結果は以下のとおり!

  • 大分類はなぜか「交通」に分類しがち
  • 小分類はなんとなく合ってそう!
  • UNCLASSIFIEDで分類できないパターンもある

まずは、細かめに分類をしてもらったものをあとで集約したほうが良さそうな印象。

PLACE_NAME CATEGORY_1 CATEGORY_2
早川駅 交通
白山神社 交通 史跡
報徳二宮神社 交通 史跡
箱根神社 観光 史跡
小田原PA 交通 その他
国府津海岸 交通 自然
小田原料金所 交通 その他
道の駅 箱根峠 交通
石垣山一夜城歴史公園駐車場 交通 UNCLASSIFIED
箱根ガラスの森美術館 交通 美術館

テキストから旅行前後か分類

次は、テキストの内容から「旅行前・旅行中・旅行後」の分類をしてみます。

LLMにそれぞれのシチュエーションを想定したテキストを作ってもらいました。

select
    text,
    status_original,
    get(
        SNOWFLAKE.CORTEX.CLASSIFY_TEXT(
            tweet_text,
            ['旅行前', '旅行中', '旅行後']
        ),
        'label'
    ) as travel_classified
from
    sample

結果は以下のとおり!
※ STATUS_ORIGINALはLLMが文書作成時に想定したステータスです

  • 人間と同程度の判断をしている印象
  • たしかに「日常に戻ったと思ったら、すぐに旅行の計画を再開」は旅行後か旅行前なのか分類に悩む

先程の施設のカテゴリ分類のように単語を対象とするよりも、ある程度の文章量があった方が良さそうですね!

TEXT STATUS_ORIGINAL STATUS_CLASSIFIED
来週からの旅行が待ちきれない!#旅行準備 旅行前 旅行前
初めての海外旅行、何を持って行くべきか悩むな〜 旅行前 旅行前
旅行のために新しいカメラを買った!撮るのが楽しみ✨ 旅行前 旅行前
チケット予約完了!ヨーロッパまであと5日💼 旅行前 旅行前
旅行の計画を立てるのって、意外と大変…けど楽しい! 旅行前 旅行前
旅行のために新しいスーツケースを購入しました✈️ 旅行前 旅行前
ガイドブックを読み漁って、行きたい場所が増えた😂 旅行前 旅行前
パスポートの期限、ちゃんと確認しておかないと! 旅行前 旅行前
旅行前に体調管理しっかりしないとな 旅行前 旅行前
友達から旅行のお土産リクエストが多すぎる笑 旅行前 旅行前
旅行前に買っておくべき必需品って何だろう? 旅行前 旅行前
海外旅行のために、新しい服を準備中🛍️ 旅行前 旅行前
旅行前に英会話の勉強を少しでもしておこう 旅行前 旅行前
次の旅行は、どの国がいいかな…行きたいところが多すぎる! 旅行前 旅行前
旅行先の天気予報が気になる。晴れるといいな🌞 旅行前 旅行前
旅行プランを立てるのに、ネットでリサーチするのが止まらない 旅行前 旅行前
旅行前に、友達からお土産のオススメを聞いてみた 旅行前 旅行前
旅行の日程が決まった!今からワクワクが止まらない✨ 旅行前 旅行前
旅行先の文化を予習中。現地でのマナーは大事! 旅行前 旅行前
ついに旅行の出発日。準備は万端!🎒 旅行前 旅行前
初めて訪れた国の景色が美しすぎる…感動 旅行中 旅行中
現地の食べ物が美味しすぎて止まらない🤤 旅行中 旅行中
旅先で出会った人たちが素敵すぎる! 旅行中 旅行中
観光地巡りで歩き疲れたけど、それもまた楽しい 旅行中 旅行中
地元のマーケットでショッピング中🛍️ 旅行中 旅行中
現地の文化に触れるたびに、新しい発見がある 旅行中 旅行中
朝市で朝食。新鮮な果物が最高🍎 旅行中 旅行中
現地の友達と合流して、案内してもらうことに 旅行中 旅行中
晴天のビーチでのんびりリラックス中🏖️ 旅行中 旅行中
旅行中のインスタ更新が止まりません📸 旅行中 旅行中
ローカルなレストランで、美味しいディナーを堪能 旅行中 旅行中
知らなかった場所にたくさん出会えて新鮮な毎日 旅行中 旅行中
現地の交通機関を使いこなしてます!意外と便利 旅行中 旅行中
市場で見つけた珍しい物が面白い! 旅行中 旅行中
旅行中に新しい友達ができて、感謝しかない 旅行中 旅行中
歴史的な建造物を見て、時を忘れてしまう… 旅行中 旅行中
現地の有名なカフェに立ち寄って、ピースフルな時間☕️ 旅行中 旅行中
旅先での小さいトラブルも思い出のうち! 旅行中 旅行後
急遽のルート変更。でもそれもまた旅の醍醐味 旅行中 旅行中
旅先での風景が綺麗すぎて、毎日がフォトジェニック 旅行中 旅行中
旅行から帰ってきて、やっと一息…でも戻りたいな 旅行後 旅行後
旅先で買ったお土産、早速友達に渡した🎁 旅行後 旅行後
帰ってきたら、旅行の写真を整理しなきゃな📷 旅行後 旅行後
旅行中に増えたフォロワーさんたちと再び交流中 旅行後 旅行後
旅行の思い出をSNSにシェアして、余韻に浸る 旅行後 旅行後
現地で撮った写真をアルバムにまとめてみました 旅行後 旅行後
お土産話が止まらない!みんなにシェアしたい📖 旅行後 旅行後
旅先での出来事を思い出すたびにニヤニヤが止まらない 旅行後 旅行後
帰国後、現地の食べ物が恋しい… 旅行後 旅行後
楽しかった旅行の余韻で次の旅行の計画を始めました 旅行後 旅行後
たくさんの思い出を胸に、また日常生活へ戻る 旅行後 旅行後
旅行先で知り合った人と、また会う約束をした😊 旅行後 旅行後
旅の疲れが出たのか、少し体がだるい… 旅行後 旅行後
帰国して、スーツケースの中身を片付け中 旅行後 旅行後
旅行中の写真を見返すだけでニヤけてしまう 旅行後 旅行後
現地で学んだことを、日本で活かせるといいな 旅行後 旅行後
次回の旅行までに、また英語を勉強し直そう💬 旅行後 旅行前
日常に戻ったと思ったら、すぐに旅行の計画を再開 旅行後 旅行前
旅先での美しい景色が、脳裏に焼き付いて離れない 旅行後 旅行後
旅行の話を聞いた友達が、私も行きたい!と言ってくれた✨ 旅行後 旅行前

テキストから年齢層を分類

次は、テキストの内容から筆者の年齢層を分類してみます。
先ほどと同様に、LLMで各年齢層を想定したテキストを生成したものを使います。

select
    text,
    age_original,
    get(
        SNOWFLAKE.CORTEX.CLASSIFY_TEXT(
            text,
            ['10代', '20代', '30代', '40代', '50代', '60代']
        ),
        'label'
    ) as age_classified
from
    sample
;

結果は以下のとおり!
※ AGE_ORIGINALはLLMが文書作成時に想定したステータスです

  • LLMが想定したステータスと概ね同じような分類になった
  • 「そのぐらいの年齢層っぽいね」くらいの分類にはなっている

そもそも正しい年齢層が不明なので精度の判断が難しいですが、「良さそう」という印象です。

TEXT AGE_ORIGINAL AGE_CLASSIFIED
昨日、初めて友達と一緒にカラオケ行ったけど、めっちゃ楽しかった!また行きたいな~🎤🎶 10代 10代
今日の授業、先生が面白かったから眠くならなかった! 10代 10代
今日も勉強頑張るぞ!テストが近いから集中しなくちゃ✏️ 10代 10代
学校帰りに寄ったカフェのスイーツが美味しかった😋🍰 10代 10代
ゲームの発売日、待ちきれない!予約特典もゲットした! 20代 10代
午後は美容院でカット。週末に向けてリフレッシュしないと! 20代 20代
うちの猫が初めてのおもちゃに興奮状態!かわいすぎる~🐱💖 20代 10代
ようやく大学の卒業式!卒論がんばってよかったなぁ🎓 20代 20代
最近、仕事が忙しくてなかなか趣味の時間がとれない…。でも週末はしっかりリフレッシュしたい! 30代 20代
子どもの運動会、親として初参加!天気が良くてよかったです👏 30代 30代
最近、ドラマよりPodcastにハマってる。 30代 20代
子どもがやっと寝たから、今から自分の時間!ドラマタイム📺 30代 30代
最近の新曲、どれも昔の曲の方がよかったなと感じる。時代は変わったなぁ。 40代 40代
家族でのキャンプが最高のリフレッシュ!大自然の中でまたやりたい🏕 40代 30代
若い頃のバイクが好きだったけど、今は車でゆっくりドライブが楽しい。 40代 40代
週末はDIYで棚を作りました。やっぱり自分の手で作るのは楽しいですね。 40代 20代
昔は写真現像するのが当たり前だったけど、今じゃ全部スマホで済んじゃうね。 50代 40代
友人と久しぶりに登山してきたけど、山の空気はいいねぇ、やっぱり。 50代 30代
最近、庭いじりにハマってて、新しい花を植えたよ🌼 50代 30代
私の若い頃はウォークマンが流行ったけど、今は何でもスマホで済むね。 50代 50代
老後のために、少しずつ家庭菜園を始めてみようかなと思っています。🍀 60代 40代
毎朝のウォーキングが日課になっています。健康第一ですね。🌞 60代 60代
今日も朝早くからゴルフ。やっぱり自然の中のスポーツは爽快だなー!🏌️‍♂️ 60代 50代
昔の友達と一緒に旅行してきました。楽しい思い出がたくさんできました。 60代 20代


下記の記事にあるように、単純にテキストを分類するだけでなく、LLMアプリケーションにおいて、ユーザーからのプロンプトを分類してルーティングに活用するというのも良さそうですね!
活用方法は幅広そうなので、研究していきたいと思います!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?