AI が書いた文章には、特徴的な語彙がある。 そういう分析が Hacker News で 663 ポイントを集めていました。
面白かったので、自分の Qiita 記事30本で同じことをやろうとしました。
3回とも失敗しました。 この記事は、その記録です。
「日本語でも同じ手法が使える」と思って始めた人が、同じ時間を溶かさないように書きます。
検証環境: Windows 10 / 対象は自分の Qiita 記事30本(144,710字)と、
同じタグの他者記事292本(151人、2,062,562字)/ 測定は 2026-08-29 時点
元の分析が何をしたか
Louis Abraham による分析です。
- https://louisabraham.github.io/load-bearing/ — 本体
- https://github.com/louisabraham/load-bearing — コードとデータ
- Hacker News — 663 ポイント / 319 コメント
GitHub のプルリクエスト説明文を 85 週間ぶん集めて、語彙でクラスタリングしています。
| 期間 | 2025-01-06 〜 2026-08-17(85週) |
| 件数 | 461,121 件の説明文 |
| 語数 | 51,079,244 語 |
| 手法 | KL情報量のもとでの k-means(k=10) |
結果として「load-bearing」が Claude の代表的な語として浮かびました。「quietly」「latent」「genuine」が続きます。
そして10の文体のうち1つが 0.7% から 39% に増え、その増加が Opus 4.6 のリリース(2026-02-05)と一致しています。
比率の計算に注意がある
「load-bearing は内側 929 回、外側 82 回で 39 倍」と紹介されています。
割ると 11.33 倍にしかなりません。 39 倍は単純比ではないからです。リポジトリに式が載っていました。
ratio(v) = (x_in_v / N_in) / ((x_out_v + ½MIN_AUTHORS) / N_out)
コーパス全体の語数で正規化し、分母には疑似度数を足しています。929 と 82 をそのまま割ってはいけません。
二次情報だけ読んで「11 倍じゃないか」と書くところでした。
試行1:英語の特徴語を、そのまま数えた
一番素直な方法です。load-bearing / quietly / latent / genuine / shipped / sidecar を、自分の記事30本(144,710字)から探しました。
出現: 1 回
当たり前でした。 日本語の記事に英単語はほぼ出ません。1回出たのも、英語の引用文の中でした。
日本語で対応しそうな語(「静かに」「暗黙」「潜在」「本質的」など)も数えました。
出現: 7 回 / 千字あたり 0.05 回
これでは何も言えません。
試行2:論文と同じ式を、日本語に当てた
元の分析は「内側と外側の頻度比」を取っています。内側を自分の記事、外側を他者の記事にすれば同じことができると考えました。
比較対象を集めました。
自分 : 30 本 / 144,710 字
他者 : 292 本 / 2,062,562 字(151人)
形態素解析器を入れていないので、2〜6文字の日本語連続を語として近似しました。そして同じ式で比率を出しました。
上位がこうなりました。
比率 内 外 語
110.0 20 0 記しています
99.0 18 0 訳は読みやす
99.0 18 0 正確な表現は
99.0 18 0 日本語訳を併
99.0 18 0 引用は原文と
全部、記事末尾の定型文の断片です。
私は全記事に「※ 引用は原文と日本語訳を併記しています」という注記を入れています。それが「私に固有の語彙」として検出されました。
間違ってはいません。 ただし知りたかったのはそこではありません。
定型文を除いても、語にならなかった
定型文を除外して測り直しました。
比率 内 外 語
51.3 7 0 通常のサブエ
33.0 6 1 未設定
33.0 12 5 ネイティブ
11.0 6 9 と書かれてい
10.6 12 22 と思います
6.1 8 26 しかも
「通常のサブエ」「と書かれてい」は語ではありません。 文字を機械的に切っているだけです。
意味のありそうなものも混ざっています。「しかも」が 6.1 倍、「と思います」が 10.6 倍。接続詞と語尾に癖が出ているとは言えそうです。
しかし記事にできる強さではありません。
試行3:AI 臭い言い回しを、内外で比べた
手元に、AI が書いた文章に出やすい言い回しを検出するスクリプトがあります。13 パターン入っています。
することができ / を活用 / についてご紹介 / 非常に / 様々な /
検証を行い / ではないでしょうか / と言えるでしょう / ...
これを自分30本と他者292本の両方に当てました。
| 自分30本 | 他者292本 | |
|---|---|---|
| 総字数 | 144,710 | 2,062,562 |
| 検出合計 | 11 | 212 |
| 千字あたり | 0.08 | 0.10 |
差がありませんでした。
内訳を見ても、他者側で一番多い「最後に」が千字あたり 0.04 回です。そもそも母数が小さすぎます。
なぜ失敗したのか
3回やって、原因が3つに整理できました。
1. 対象が違う。 元の分析は英語の GitHub PR 説明文です。日本語の技術記事とは、書く動機も長さも語彙も違います。同じ語が出るはずがありません。
2. 形態素解析なしでは語が取れない。 日本語は単語が空白で区切られません。文字 N-gram で近似すると、「通常のサブエ」のような断片が上位に来ます。MeCab などを入れれば改善しますが、それでも次の問題が残ります。
3. 対応語を自分で決めることになる。 「load-bearing の日本語版は何か」を決めるのは私です。「支えている」を入れるか、「肝になる」を入れるかで結論が変わります。 後から語を選べば、どんな結論でも作れてしまいます。
3つ目が一番きついです。 元の分析は 5,100 万語から機械的にクラスタを出しています。私が10語ほど手で選ぶのとは、まったく別の作業でした。
それでも分かったことが1つある
自分の記事で最も特徴的な語彙は、定型文でした。
「引用は原文と日本語訳を併記しています」 20 回(他者 0 回)
これはスキルに書いた注記を、毎回そのまま入れているからです。機械的に入れているものは、機械的に検出されます。
AI の口癖を探しに行って、自分が機械的に入れている文が最初に出てきたというのは、皮肉ではありますが正確な結果でした。
まとめ
- 元の分析(HN 663pt)は、GitHub PR 説明文 461,121 件・5,100万語を KL情報量で
クラスタリングし、「load-bearing」が Claude の代表語だと示した -
「929 回 / 82 回 = 39 倍」ではない。 コーパス全体で正規化した比率で、
単純に割ると 11.33 倍。二次情報の数字をそのまま書くと間違える -
日本語の記事30本で追試を3回試して、3回とも失敗した
- 英語の特徴語をそのまま数える → 30本で1回
- 同じ式を日本語に当てる → 定型文の断片が上位を占める
- AI 臭い言い回しを内外で比べる → 千字あたり 0.08 対 0.10 で差がない
- 原因は3つ。対象が違う / 形態素解析なしでは語が取れない / 対応語を自分で決めることになる
- 3つ目が致命的。 語を後から選べば、どんな結論でも作れる
手法が優れているほど、別の言語に持ってくるのは難しいと分かりました。数字を出すこと自体はできましたが、その数字に意味を持たせられませんでした。
無理に書けば「日本語でも AI の口癖が増えている」という記事は作れます。作れてしまうから、やめました。
参考
- The load-bearing vocabulary of Claude — Louis Abraham
- louisabraham/load-bearing — コード、データ、比率の定義
- Show HN のスレッド — 663 ポイント / 319 コメント
- 対象: 自分の Qiita 記事30本(144,710字)/ 同タグの他者記事292本(151人、2,062,562字)
- 測定: 2026-08-29 時点
関連記事
- スキルの採点ツールは、書いてある内容が正しいかを見ていない — 測る仕組みそのものを疑った話
- AIに作らせたコードを、まっさらな環境で動かしてみた — 同じく論文を手元で追試した話
JQITのエンジニアの95%以上は未経験からの採用です。
よければコーポレートサイトにも遊びに来てください。
エンジニア採用も行っています。もしご興味あれば覗いてみてください。
▶ 採用サイト