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?

「Jev」で日本語ニュース記事のカテゴリ分類を検証してみた

1
Posted at

はじめに

いま話題の Jev で何ができるのか、具体的に試してみた記事です。(詳細な検証記事ではありません)
Jev の詳しい仕組みは他の記事に譲りますが、簡単にいうと「判断に特化したAI」です。
判断の対象と判断の基準を渡すと、判断結果を確率付きで返してくれます。
今回は、livedoorニュースコーパスの記事のカテゴリ分類を Jev にやらせてみました。
公式ドキュメントには「主な学習言語は英語で、日本語を含む CJK は同等の精度ではない」と書かれています。実際どのくらい差が出るのかを見るため、同じ記事を Claude Opus 5.5 にも分類させて比較しています。

やったこと

1. データ

livedoorニュースコーパスを使いました。
livedoor ニュースが配信していた記事を9カテゴリに分けて収録した、日本語テキスト分類の定番データセットです(CC BY-ND 2.1)。正解ラベルが最初から付いているので、精度をそのまま測れると思い選びました。

9カテゴリ、7,367記事から、各カテゴリ30件をランダムに選び、計270件を使いました。
各記事ファイルは「1行目 URL、2行目 日付、3行目 タイトル、4行目以降 本文」という形式なので、タイトルと本文を空行でつないだものを Jev に渡しています。

2. 接続

TypeSafe の新規登録が混み合っているのか API キーが取得できなかったので、Vercel AI Gateway の TypeSafe 互換 API を使いました。
Gateway の API キーを作り、クレジットカードを登録すればすぐ呼べます(試した時点では Jev は無料期間中でした)。

  • エンドポイント:https://ai-gateway.vercel.sh/typesafe/v1/systemone
  • モデル:typesafe-ai/jev(Gateway 経由ではバージョンを指定できませんでした)

3. リクエスト

質問は Choice(選択式)を1問だけにしました。
stateには判断の対象になるニュース記事の内容を入れます。
instructionsはJevへの質問(判断してほしい事項)として、ニュース記事のカテゴリを判定してほしい旨を記述しました。
criteria に、9カテゴリそれぞれの日本語の説明を書いています。この説明が Jev にとっての「判断基準」になります。

{
  "model": "typesafe-ai/jev",
  "state": "(タイトル)\n\n(本文)",
  "questions": {
    "category": {
      "type": "choice",
      "instructions": "このニュース記事が掲載されたカテゴリ",
      "criteria": {
        "dokujo-tsushin": "独身の働く女性向けのコラム。恋愛、結婚、職場の人間関係、30代女性の生き方や本音",
        "it-life-hack": "IT製品やソフトウェア、Webサービスの紹介と、仕事や生活での活用術",
        "kaden-channel": "家電やデジタル機器の新製品、ネット上で話題のガジェットやIT業界の出来事",
        "livedoor-homme": "大人の男性向けライフスタイル。キャリア、ビジネス、ファッション、グルメ、趣味",
        "movie-enter": "映画の作品紹介、公開情報、俳優や監督のインタビュー、試写会や舞台挨拶",
        "peachy": "女性向けのエンタメとライフスタイル。恋愛、美容、グルメ、ファッション、海外セレブ",
        "smax": "スマートフォンや携帯電話の新機種、Android、通信キャリアのサービスや料金",
        "sports-watch": "スポーツ全般。プロ野球、サッカー、格闘技などの選手や試合、スポーツ界の話題",
        "topic-news": "社会、芸能、ネットで話題になっている時事ニュースやゴシップ"
      }
    }
  }
}

レスポンスはこんな形で返ってきます(実際のレスポンスから抜粋)。

{
  "answers": {
    "category": {
      "type": "choice",
      "choice": "it-life-hack",
      "confidence": 0.49,
      "probabilities": {
        "it-life-hack": 0.55, "smax": 0.41, "kaden-channel": 0.04,
        "dokujo-tsushin": 0, "livedoor-homme": 0, "movie-enter": 0,
        "peachy": 0, "sports-watch": 0, "topic-news": 0
      }
    }
  }
}

選ばれたカテゴリだけでなく、全カテゴリの確率と、確率分布の尖り具合から求めた confidence が返ってきます。

4. 実行と集計

Pythonのスクリプトで、1記事ごとに file / label / pred / confidence / probabilities を JSONL に書き出しました。

集計では、正解率に加えて「返ってくる確率がどのくらい当てになるか」も見ています。
最大確率を 0.1 刻みのグループに分け、グループごとの実際の正解率と比べました。たとえば「確率 0.9 台を付けた記事」の正解率が実際に 9 割前後なら、確率は信用できる(校正されている)ことになります。
そのズレを件数で重み付けして平均した値が ECE(Expected Calibration Error)で、0 に近いほど確率が当てになります。

5. Claude Opus 5.5 にも同じことをさせる

比較用に、Claude Code 上で Claude Opus 5.5 に同じ270件を分類させました。

  • 答えが漏れないよう、記事をシャッフルして a001.txt 〜 a270.txt という名前にし、別のディレクトリに置いた
  • そのディレクトリの CLAUDE.md に Jev と同じカテゴリ説明を書き、「各カテゴリの確率を JSONL で出力」と指示した
  • 出てきた確率から、Jev と同じ定義で pred(最大確率のカテゴリ)と confidence を計算し、同じ集計にかけた

結果

Jev Claude Opus 5.5
正解率 72.2%(195/270) 89.6%(242/270)
ECE(最大確率) 0.150 0.121
確率の出方 実際の正解率より高め 実際の正解率より低め

カテゴリ別の正解数(各30件中)は次のとおりです。

カテゴリ Jev Claude Opus 5.5
dokujo-tsushin 20 28
it-life-hack 10 21
kaden-channel 16 29
livedoor-homme 19 27
movie-enter 27 24
peachy 23 27
smax 27 30
sports-watch 28 30
topic-news 25 26
  • 一番多かった取り違えは、どちらも it-life-hack → kaden-channel でした(Jev 16件、Claude Opus 5.5 8件)。kaden-channel の criteria に「ネット上で話題のガジェットやIT業界の出来事」と書いたことで、IT 系の記事が kaden-channel に吸われたと見ています
  • Jev は、最大確率 0.9 以上を付けた記事でも正解率は 85% でした。「0.9 以上なら自動処理」のようなしきい値運用は、そのまま運用するのは危ういかもしれません
  • Claude Opus 5.5 の確率は 0.5、0.6、0.85、0.95 のようなキリのいい値が多く、控えめに出る傾向でした

条件の違いについて

Jev と Claude Opus 5.5 の条件は完全にはそろっていません。

  • Claude Opus 5.5 は、記事を30〜50件ずつまとめて冒頭の数百文字だけを表示し、それを読んで判定していました(こちらで指示したわけではありません)。Jev には全文を渡しています
  • Jev は1記事ずつ独立に判定していますが、Claude Opus 5.5 は1つのセッションで続けて処理しています
  • Jev の確率はモデルの出力そのものですが、Claude Opus 5.5 の確率は文章として自己申告させた値です。ECE の比較はその前提で読んでください
  • livedoorニュースコーパスは有名なデータセットなので、学習時に見ている可能性があります。これは Claude Opus 5.5 だけでなく、学習データが非公開の Jev にも言えます

おわりに

日本語のニュース分類では、Jev の正解率は 72.2%、Claude Opus 5.5 は 89.6% でした。
ただし、criteria の書き方ひとつで精度が変わる可能性もあるため、どこまで改善するかを試してみるのも面白いかもしれません。

参考

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?