ラーメン屋のレシピはバレる
行きつけのラーメン屋が突然「業務用スープ」に切り替えたら、常連は気づきます。味が均一すぎる。コクの方向が画一的。一口目は悪くないけど、食べ進めるうちに「あれ、前と違う」と感じる。
技術記事も同じです。
ChatGPTやClaudeで記事を書くのが当たり前になった2024年以降、「この記事、AIが書いたんじゃない?」と感じる読者が増えています。でも「何がAIっぽいのか」を具体的に説明できる人はほとんどいません。
そこで7つのAIモデルが生成した350本の記事と、977本の人間が書いた記事を統計的に比較する研究を行いました。結果、「AIっぽさ」の正体は意外なほど明確に数値化できました。
この記事のデータ: すべて筆者の研究(DOI: 10.5281/zenodo.19233934)に基づいています。分析コードはGitHubで公開中。
651語の「AIっぽい日本語」
AIが人間より統計的に有意に多く使う日本語を「excess words(過剰語彙)」と定義し、Bonferroni補正付きカイ二乗検定で抽出しました。
結果: 651語。
AIが使う「特殊な暗号」ではありません。ほとんどは普通の日本語です。ただ、AIは特定の語を不自然なほど繰り返す。業務用スープの味が均一なように、AIの語彙にも「均一さ」があります。
以下は、技術記事で特に「あるある」と感じやすい上位10語です。
| 順位 | 語 | excess score | AI/人間 出現比 |
|---|---|---|---|
| 1 | バージョニング | 56.7 | 57.7倍 |
| 2 | エスケープ | 53.8 | 54.8倍 |
| 3 | スクリプティング | 49.4 | 50.4倍 |
| 4 | 立案 | 46.3 | 47.3倍 |
| 5 | こつ | 41.6 | 42.6倍 |
| 6 | チェックリスト | 32.1 | 33.1倍 |
| 7 | スケジュール | 26.6 | 27.6倍 |
| 8 | 建設(的) | 24.1 | 25.1倍 |
| 9 | 尊重 | 22.6 | 23.6倍 |
| 10 | 醸成 | 16.7 | 17.7倍 |
「バージョニング」が人間の57.7倍。人間のエンジニアは「バージョン管理」と書くことが多いのに、AIは律儀に「バージョニング」を使い続けます。
「こつ」もAIの特徴語です。人間は「コツ」とカタカナで書くことが多いのですが、AIはひらがなの「こつ」を好む。塩ラーメンに必ずバターを乗せるような、「別に間違ってはいないけど妙に一貫している」クセが出ています。
ポイントは、一つひとつの語は普通だということ。「バージョニング」も「チェックリスト」も、人間が使わないわけではありません。ただ、使いすぎる。業務用スープは化学調味料が「入っている」のが問題なのではなく、「入りすぎている」のが問題なのと同じです。
あなたの文章もAIに染まっている
AIのexcess words上位50語について、2023年以前(Pre-LLM期: 700本)と2023年以降(Post-LLM期: 277本)の人間の記事を比較しました。
結果:
- 上位50語のうち 68%(34語) が、Post-LLM期の人間の記事でも使用頻度が増加
- 平均増加率: +195.9%
具体的な数字を見てください。
| 語 | Pre-LLM期 (per 10k) | Post-LLM期 (per 10k) | 増加率 |
|---|---|---|---|
| Tool | 0.035 | 0.588 | +1,586% |
| チェックリスト | 0.122 | 1.219 | +898% |
| Code | 2.250 | 16.264 | +623% |
| エスケープ | 0.087 | 0.462 | +430% |
「Tool」の出現頻度が1,586%増。これは「AIが"Tool"を使いすぎる」のと並行して、人間もいつの間にか"Tool"を多用するようになったことを意味します。
毎日AIの出力を読んでいると、「ツール」ではなく「Tool」、「確認リスト」ではなく「チェックリスト」と書くのが自然に感じるようになる。ラーメン屋の常連が業務用スープの味に慣れてしまうように、AIの語彙が人間の語彙に浸透しています。
これは批判ではなく、観測事実です。そして自覚しているかどうかで、対処の余地が変わります。
モデルもジャンルも「クセ」が違う
「AIっぽさ」はモデルによって異なります。Claudeは世代を重ねるほど excess score が上がり、語彙の多様性は下がっていました。 「お利口さん」になるほど、同じ言い回しを繰り返す ようになっています。スープは滑らかになったけれど、味の複雑さは失われた、という状況です。OSSモデル(Swallowなど)は逆に語彙は豊かなのに文章構造がAIっぽい、という「逆のクセ」を持っていました。
さらに厄介なのが、ジャンルによって「AIっぽさ」がまったく違うことです。技術記事で学習した分類器を日記やビジネス文書に適用すると、分類精度はランダム以下に崩壊しました。「チェックリスト」が多ければ技術記事ではAIっぽいけれど、日記では別にAIっぽくない。 「汎用AI検出器」を謳うツールは構造的に信頼できません 。ラーメンの味を判定するソムリエに、ワインの鑑定を頼んでいるようなものです。
セルフチェック: 自分の文章を確認する方法
「自分の記事はどうなんだろう」と思った方向けに、簡易チェックスクリプトを用意しました。
import MeCab
import sys
# excess wordsリスト(上位語から、技術記事で頻出する語を抜粋)
EXCESS_WORDS = {
"バージョニング", "エスケープ", "スクリプティング", "立案",
"チェックリスト", "スケジュール", "建設", "尊重", "醸成",
"こつ", "デプロイメント", "堅牢", "戦略", "実践",
"最適化", "可視化", "早期", "欠かす", "例外",
"直結", "再発", "頻発", "順守", "底上げ"
}
def check_ai_score(text):
tagger = MeCab.Tagger()
node = tagger.parseToNode(text)
words = []
while node:
if node.surface:
words.append(node.surface)
node = node.next
if not words:
return 0.0, []
# 単純マッチ + 複合語マッチ(「最適」+「化」→「最適化」)
joined = "".join(words)
found_exact = [w for w in words if w in EXCESS_WORDS]
found_compound = [w for w in EXCESS_WORDS if w in joined and w not in found_exact]
found = found_exact + found_compound
return len(found) / len(words) * 100, found
if __name__ == "__main__":
text = sys.stdin.read() if not sys.argv[1:] else open(sys.argv[1]).read()
score, found = check_ai_score(text)
print(f"AI excess語率: {score:.2f}%")
print(f"検出語: {', '.join(set(found))}")
目安:
- 1%未満: 自然な文章
- 1〜3%: やや多め。推敲で減らせる
- 3%以上: 黄色信号。AIの下書きをそのまま使っていないか確認
このスクリプトは簡易版です。より正確な分析には、リポジトリの完全版を参照してください。
まとめ
-
「AIっぽい」には651語の根拠がある。Bonferroni補正付きの統計検定で、AIが人間より有意に多く使う語彙を特定しました。
-
その語彙は人間に浸透し始めている。AIのexcess words上位50語のうち68%が、2023年以降の人間の記事でも使用頻度が増加(平均+195.9%)。
-
モデルごとに「クセ」が違う。Claudeは新しい世代ほど語彙が画一的に。小さいモデルほど偏りが顕著に。
-
ジャンルをまたぐとAI検出は崩壊する。汎用AI検出器を信じてはいけません。
-
自覚して自分の言葉を選ぶ。それがAI時代の文章術です。
AIに記事を書いてもらうこと自体は悪くありません。でも、出てきた文章をそのまま出すのは、業務用スープをそのまま出すラーメン屋と同じです。自分の味を加えてこそ、読者に「この人の記事だ」と思ってもらえます。
研究データ
- 対象モデル: Claude 3 Haiku, Claude Sonnet 4, Claude Opus 4, GPT-3.5-turbo, GPT-4o, GPT-OSS 20B (Swallow), Llama 3.2 1B
- データ: 350 AIサンプル + 977人間記事(Pre-LLM 700 + Post-LLM 277)
- DOI: 10.5281/zenodo.19233934
- コード: github.com/kenimo49/excess-vocabulary-ja
この記事が参考になったら、Xもフォローしていただけると嬉しいです。