「ただのテキストに電子透かしを入れるなんて、どんな技術なんだろう」。Claude の出力に「透かし」が混入しているという話を最初に見たとき、正直そう思ってワクワクしました。文字の並びの中に、人間には見えない情報をどうやって埋め込むのか。暗号のような仕掛けを想像していました。

ところが調べてみると、拍子抜けするほど地味な話でした。透かしとは、複数の言い換え可能な単語のうちどれを選ぶかを統計的に偏らせることで、後から機械的に検出可能な痕跡を残す技術です。文字を足しているわけではありません。

とはいえ、AI を使って納品ドキュメントや技術記事を書いている身としては、笑って済ませられる話でもありません。顧客が AI検出ツールを成果物にかける可能性を意識し始めている今、「AI で書いたものは見ればわかる」と言われたときに、自分の書いたものに何が残っているのか、実際には答えられませんでした。

そこで、自社の公開記事を実際にスキャンしてみることにしました。透かしと呼ばれる不可視の仕掛けは、本当に見つかるのか。見つからないなら、代わりに何が残っているのか。

「透かし」の正体は、文字ではなく単語選択の統計パターンだった

Anthropic は 2026年8月14日、Claude のテキスト透かし機能について公式に説明を公開しました1。この機能は、EU AI Act 第50条が2026年8月2日から域内で AI生成コンテンツへのマーキングを義務付けたことを受けたものです2。Anthropic は地域ごとに適用範囲を絞る確実な方法を持たないとして、次のように説明しています。

We’re applying watermarking globally at launch because we don’t yet have a durable way to scope it by region.1

肝心の仕組みは、Google DeepMind が発表した SynthID-Text の応用です34。Anthropic 自身の説明を借りると、次のようになります。

the watermark only changes the source of the randomness used to pick among words1

つまり、複数の単語が同じ意味で同じくらい自然に使える場面で、どちらを選ぶかの「くじ引き」に細工をしているだけです。暗号鍵と直前の文脈から、選ばれやすい単語のパターンが決まります。文字を追加しているわけではないので、見た目には一切現れません。ちなみに、事実関係を正確に書かなければならない箇所では言い換えの余地が少ないため、透かしの効きも弱くなるとされています1

Anthropic のヘルプセンターの説明を読むと、この仕組みは誤解を招きやすい書き方になっています。

it weaves an imperceptible watermark directly into the text itself5

「imperceptible(知覚できない)」という言葉だけを見ると、不可視文字が埋め込まれていると読めてしまいます。実際、この記事のきっかけになった Daring Fireball の John Gruber も、最初はそう考えていました。彼は当初「不可視の非印字 Unicode 文字」が使われているだろうと推測し、後に自分の誤りを認めています6

My error was believing Anthropic that their system wouldn’t adulterate and corrupt the semantics6

透かしの検出そのものも一筋縄ではいきません。Anthropic は「検出できたとしても、それは確定的な証拠ではない」と明記しています5。GPTZero も、Google の透かし技術について「検出方法を開発者に公開していない」と指摘しており、透かしを外部から検証する手段は基本的に提供元の手の内にあります7

整理すると、「AI 生成物に残る痕跡」と一口に言っても、性質がまったく違う3種類があることになります。

種類仕組み文字として現れるか
統計的透かし(SynthID型)単語選択の確率分布を秘密鍵で操作現れない(文字検出の対象外)
Unicode 不可視文字トラッキングゼロ幅文字等の特殊文字を挿入見た目には現れない特殊文字として存在
約物の癖(em dash・罫線等)学習データの文体的癖をそのまま踏襲通常の文字として現れる

「透かし」という言葉から連想する「埋め込まれた不可視の仕掛け」、つまり統計的透かしそのものは、この整理では文字として検出できません。では自社の書いた記事には、不可視の特殊文字も含めて、本当に何も残っていないのでしょうか。

自社公開記事55本(2026年8月21日時点)に不可視文字はゼロだった

まず確かめたのは、Unicode の不可視文字が使われていないかです。ゼロ幅スペース(U+200B)のような文字は、見た目には空白すら表示されない、完全に不可視の文字として定義されています8

a non-printing character used in computerized typesetting to indicate where the word boundaries are, without actually displaying a visible space in the rendered text8

自社の公開記事55本(src/content/blog/ 配下の全記事、2026年8月21日時点)を対象に、以下のコマンドでスキャンしました。

cat src/content/blog/*.md | grep -oP '[\x{200B}-\x{200F}\x{2060}-\x{206F}\x{FEFF}\x{00A0}\x{2009}\x{202F}]' | sort | uniq -c | sort -rn

検出対象は U+200B〜200F・U+2060〜206F・U+FEFF・U+00A0・U+2009・U+202F の各コードポイントです。結果は、マッチ0件でした。

これは「透かしが一切存在しない」ことの証明にはなりません。統計的な透かしは単語選択のパターンとして埋め込まれるものなので、この方法では原理的に検出できないからです。あくまで、不可視の Unicode 文字による素朴なトラッキングは見当たらなかった、というところまでです。

この限定が意味を持つのは、実際に他社モデルで不可視文字の混入が報告された前例があるからです。2025年4月、ChatGPT の o3・o4-mini モデルの長文応答に、Narrow No-Break Space(U+202F)という特殊文字が体系的に混入していたと報告されました9。OpenAI はこれについて、透かしではなく「大規模強化学習の特異性」だと説明しています。ただし4月23日の追記では、最新のテストではこの文字がもはや観測されなくなったとも報告されています9

つまり、不可視文字が混入すること自体は、実際に起こり得る現象です。その上で自社の記事にゼロ件だったという結果には、それなりの意味があると考えています。

実際に残っていたのは、em dashと罫線だった

では、何も残っていなかったのかというと、そうではありません。同じ55本を対象に、今度は約物(記号類)の出現数を数えました。

cat src/content/blog/*.md | perl -CSD -ne 'while(/([\x{2014}\x{2013}\x{00A0}\x{2009}\x{202F}\x{200B}\x{FEFF}\x{2500}\x{2015}])/g){printf "U+%04X\n", ord($1)}' | sort | uniq -c | sort -rn

結果は次の通りです。

  • U+2500(罫線 ──): 202件
  • U+2014(em dash ): 150件
  • U+2015(水平線): 14件
  • U+2013(en dash ): 3件

透かしという言葉から連想される仕掛けは見つからなかったのに、こちらは合計369件という、無視できない数が出てきました。

em dash が多いこと自体は、他の調査でも指摘されています。訓練データに含まれるエッセイや記事のような「洗練された文章」では em dash が頻繁に使われる一方、カジュアルな人間の文章ではほとんど使われません。ある調査では、GPT-4.1 の em dash 使用頻度が人間の3.28倍だったと報告されています10。フロリダ国際大学の専門家は、AI が高品質だと判断する応答パターンに em dash が多く含まれているためだと説明しています。

AI models are trying to give you the highest quality responses, and they think phrases with em dashes in them are high quality.11

この傾向は OpenAI 自身も認めるところで、CEO の Sam Altman は、カスタム指示で em dash の使用禁止を指定すれば ChatGPT がそれに従うようになったと明かしています12

If you tell ChatGPT not to use em-dashes in your custom instructions, it finally does what it’s supposed to do!12

一方の罫線(──)は、本来はテキストユーザーインターフェースで枠線を描くための記号です13。Markdown が普及する前のテキスト端末の時代から、区切り線の代用として使われてきた経緯があり、AI が区切り線として多用する現象と符合しているように見えます(ただしこの対応関係は筆者の見立てであり、実証されたものではありません)。

透かしという派手な仮説を検証してみたら、実際に残っていたのはもっと素朴な、書き手(AI)の文体的な癖でした。

この癖を自分で測る手段を運用に組み込む

不可視文字の有無や約物の出現数は、どちらも数えれば分かる数値です。であれば、顧客に指摘される前に、自分で把握しておく方が理にかなっています。

Git の pre-commit フックは、この用途に向いています。公式ドキュメントによれば、pre-commit フックは引数を受け取らずに実行され、非ゼロの終了ステータスを返すとコミット自体を中止します。

This hook is invoked by git-commit, and can be bypassed with the --no-verify option. It takes no parameters, and is invoked before obtaining the proposed commit log message and making a commit. Exiting with a non-zero status from this script causes the git commit command to abort before creating a commit.14

デフォルトのサンプルフックも、非ASCIIのファイル名や行末の空白を検出する程度のシンプルなシェルスクリプトです14。フレームワークを追加しなくても、この程度の検出であれば十分に実装できます。

当リポジトリには、今回実行したコマンドと似た前処理(frontmatter の除去、コードブロックの除去、文字の正規化)を行うスクリプトが既に存在しています。約物の検出スクリプトを新たに書く場合も、この前処理をそのまま流用できそうです。

ただし、実際に pre-commit へ組み込んだ場合の実行時間や誤検出の頻度は、まだ計測していません。記事1本あたりの約物の分布に偏りがあるのかどうかも未計測です。導入するとしたら、そのあたりを確かめてからになりそうです。

よくある質問

Q. AI生成文章は「透かし」でバレるのか?

直接文字として検出できる透かしは、基本的に存在しません。Claude が導入した透かしは単語選択レベルの統計的パターンであり、発行元の秘密鍵が無いと検出できません。不可視文字が埋め込まれているという理解は誤りです。

Q. 自分の書いた文章がAIっぽいか確認する方法は?

不可視文字の有無を調べても、あまり意味はありません(そもそも埋め込まれていないため)。実用的なのは、em dash(—)や罫線(──)など、特定の約物の使用頻度を数えることです。自社の実測(2026年8月21日時点・55本)では、202件・150件という無視できない出現数でした。

Q. 納品ドキュメントにAI検出ツールを使われたときの対策は?

検出ツールの判定を待つのではなく、自分の成果物を先に数えておくことです。約物の出現数を数える検出スクリプトを pre-commit フックに組み込めば、納品前に外形を自分で把握し、説明できる状態を作れます。

まとめ

「透かしが埋め込まれているのでは」という疑念は、少なくとも自社の記事からは裏付けが取れませんでした。代わりに見つかったのは、em dash や罫線といった、もっと素朴な書き手の癖でした。

受け身で「AIっぽい」と言われるのを待つより、自分の成果物の外形を自分で把握しておく方が、説明もしやすくなります。AI を使った受託開発でも同じで、成果物の中身と外形の両方に責任を持てる状態を作ることが大切だと考えています。ご相談はコンタクトフォームからどうぞ。

Footnotes

  1. How Claude’s text watermark works Anthropic、2026年8月14日。透かし機能の仕組み(単語選択の乱数の源を変更する方式)、世界同時適用の理由、事実関係を書く箇所では透かしが弱くなる旨。 2 3 4

  2. Transparency obligations under Article 50 of the AI Act 欧州委員会公式FAQ。第50条は2026年8月2日から適用され、AI生成コンテンツの機械可読形式でのマーキングを義務付ける。2026年8月2日より前に市場投入されたシステムには2026年12月2日までの猶予期間がある。

  3. Watermarking AI-generated text and video with SynthID Google DeepMind公式ブログ、2024年5月14日。トークンの確率スコア(logits)を調整して透かしを埋め込む仕組み。

  4. Scalable watermarking for identifying large language model outputs Dathathri, S. et al.、Nature、2024年。SynthIDのアルゴリズムを報告した査読済み論文。本文はペイウォールのため書誌情報のみ引用。

  5. How Claude marks AI-generated content Anthropic Help Center。「imperceptible watermark directly into the text itself」という表現、検出は確定的な証拠にならない旨。 2

  6. Anthropic’s ‘Watermark’ Text Adulteration in Claude Is a Perversion of Writing John Gruber、Daring Fireball、2026年8月16日。著者が当初「不可視の非印字Unicode文字」だと推測し、後に誤りを認めたくだり。 2

  7. Google’s New AI Detection Watermarking – Will It Work? Edward Tian・Alex Cui・Alex Adam、GPTZero、2024年10月25日。Googleが独自の透かし検出方法を開発者に公開していない旨。

  8. Zero-width space Wikipedia(英語版)。ゼロ幅スペースが視覚的に不可視な非印字文字であるという基本定義。 2

  9. New ChatGPT Models Seem to Leave Watermarks on Text Rumi Newsroom、2025年4月20日(4月22日・4月23日追記あり)。ChatGPT o3・o4-miniの長文応答にNarrow No-Break Space(U+202F)が混入していた実例、OpenAIの説明、4月23日追記でのその後の解消報告。 2

  10. Why Did LLMs Steal Our Em-Dashes? Lia Erisson、McGill University Office for Science and Society、2026年5月8日。訓練データの性質とem dash多用の関係、GPT-4.1の使用頻度が人間の3.28倍という調査結果。

  11. Why is AI obsessed with the em dash? David Drucker、Florida International University News、2026年6月15日。Ocal教授による、AIが高品質と判断する応答にem dashが多く含まれるという説明。

  12. OpenAI says it’s fixed ChatGPT’s em dash problem Sarah Perez、TechCrunch、2025年11月14日。Sam Altman本人が、カスタム指示でem-dash禁止を指定すれば従うようになったと認めた発言。 2

  13. Box-drawing characters Wikipedia(英語版)。罫線文字が本来テキストユーザーインターフェースの枠線描画用の記号であるという説明、Unix/CP-M/BBS時代のテキスト端末でASCII文字による近似表現が使われてきた経緯。

  14. githooks Documentation Git公式ドキュメント。pre-commitフックの実行仕様(引数なし・非ゼロ終了で中断・--no-verifyでバイパス可能)、デフォルトのサンプルフックの内容(非ASCIIファイル名・行末の空白の検出)。 2