「AIっぽさ消しエディタ」の着想を、Geminiと壁打ちして尖らせた話

今回は、テキストから「AIっぽさ(手垢表現)」を検知して直す推敲エディタ「Ningenize」について、 着想をGeminiと壁打ちしながら尖らせていった過程を残しておきます。

面白かったのは、最初にAIが出してきた案を「それ、ちょっと古くないですか」と突き返すところから、 企画がまともになっていったことでした。

前半は作る前の設計対話、後半は組み上がってから公開までに変わった部分。 だいたいGeminiの提案通りに実装して、触りながら気になったところを直していく、の繰り返しでした。

(※この記事の企画段階の情報は、大部分がGeminiとのやり取りから得たものです。フェアに先に書いておきます)

そもそめの相談

「広告表示で収入を得るモデルで、ブラウザ単独で完結するWebアプリを作りたい。勝ち筋のある候補を出してほしい」

というざっくりした相談から始めました。 バックエンドなし・広告収益、という制約での勝ち筋を、Geminiはこう整理してくれました。

  • 滞在時間が長いツール(=広告のインプレッション時間を稼ぐ)
  • 反復・継続して使われるツール(=リピート率を上げる)

このどちらかを満たすこと。ここは納得感があったので、軸として採用。

AIの案を突き返す

最初に出てきた候補は、画像リサイズツール、OGP画像生成、ポモドーロ+環境音タイマー、あたり。 どれも普通に強い競合がいたり、少し前に流行ったネタで一足遅い感じだったりで、正直あまり刺さらず。

そのあたりを率率に伝えると、Geminiも「痛いところを突かれました」と認めて、案を組み直してくれました。 AIの提案をそのまま受け取らず、一回疑ってみる往復が、企画を現実に寄せるのに効いた気がします。

着地:「AIっぽさ消し」エディタ

組み直した中でGeminiが挙げてきたのが、「AI特有の手垢を消して、人間らしい文章に直す推敲エディタ」。 これを採用して、実際に作ることにしました。

方向性の整理もGeminiが出してくれたものでした。 テキストがAI生成かを100%見抜くのは大手でも不可能とされているので、 狙いは「AIと判定されないこと」ではなく、「“AIのコピペっぽい”と読まれる手垢表現をなくすこと」に置く、という切り分け。 この方針に乗る形で進めています。

方向性を決めたのは、AIっぽい言い回しは自分でも前から気になっていて、ネットでネタにされているのもよく見ていたので、 今ならちょうど需要があるかも、と思ったから。 ただそれ以上に、単純に作ってみたら面白そうだったのが大きいです。

初期案として決めたこと

作り始める前に固めたのは、だいたいこのあたり。

  • 辞書 × 正規表現でパターンマッチ。AI判定みたいな賢いことはせず、バックエンドもAPIも持たない
  • エディタ部分は CodeMirror 6(LiteMDでも使ったので流用)
  • 手垢表現を見つけたら背景色でハイライトして、カーソルを合わせると説明が出る
  • 「人間らしさスコア」を100点満点の減点方式で出して、緑・黄・赤で色分け
  • 入力内容は localStorage にオートセーブ、ユーザーが独自のNGワードを足せる

推敲は地味で終わりが見えない作業なので、スコアで進捗を数字にするのは気に入っていました。 厳密さより「直すと数字が上がる」手応えで手を止めさせないほうが大事だろう、という判断です。

状態を全部localStorageに寄せているのは、最初の相談の時点で「ブラウザ単独で完結するもの」と条件を切っていたから。 サーバを持つと運用も費用も発生するので、そこは崩したくない一線でした。

採らなかった提案:言い換えのワンクリック置換

Geminiからは、ハイライトした箇所にカーソルを合わせると言い換え候補が出て、クリックでそのまま置換できる形も提案されました。 ただこれは、実装に入る前に落としています。

そもそも自然な言い換えを用意できる語がそんなに多くない。 それに「AIっぽい」と言われる表現は、記事によって推奨とNGが割れるものがけっこうあるので、 機械的に置き換えると文章のほうが変になる。

なので、指摘と説明を出すところまでをツールの仕事にして、どう直すかは書き手が決める形にしました。 言い換え候補自体は辞書側にデータとして持っているので、出し方は今後また考えるつもりです。

辞書の初期データと、LLMごとの傾向

辞書の初期データを作るにあたって、ChatGPT / Claude / Gemini がそれぞれ出しがちなクセを、Geminiに分類してもらいました。 (※あくまでGeminiの主観的な分類です。自分で定量検証したものではないので、真偽は各自の体感と突き合わせてもらうのが良さそう)

ChatGPT:大げさな比喩と、無難な結論 英語の delve into(掘り下げる)、realm(領域)、crucial(極めて重要)を直訳したような、少しドラマチックな言い回しを好む。 そして記事の最後を「〜と言えるでしょう」「期待が高まります」と、当たり障りのない展望で締めがち。

Claude:過剰な漢語と、両論併記 「促進・醸成・推進・構築」あたりの硬い漢語が連続して、プレスリリースみたいになりがち。 「〜という課題はあるものの、〜が期待されます」「It’s important to note that(〜に留意することが重要です)」と、リスクを避けて両論併記する構文が多い。

Gemini:過剰な整理と、丁寧な丸投げ 「第一に…第二に…」と、とにかく箇条書きで整理整頓しようとする。 そして「文脈によりますが、一般的には〜」「最適なものをお選びください」と、最後は断定を避けてユーザーに委ねてくる。

……自分で聞いておいてなんですが、Geminiが自分のクセまで正直に挙げてきたのは面白かったところ。 辞書はこの傾向をカテゴリに落として、「使い古された比喩」「無難なまとめ」「過度なヘッジ」「お役所漢語」「説明的な前振り」あたりから組み始めました。


ここからリリース版:出す前に変わったところ

ここまでが作る前の話。 組み上がったものに実際の文章を流し込んで、公開できる状態か見ていくと、 思っていたのと違う部分がぼちぼち出てきました。

辞書を膨らませた

このツールは辞書が本体みたいなものなので、リリースまでの間で一番手をかけたのがここです。 初期案では5カテゴリくらいで始めて、今は26カテゴリ。 収録数は日本語326語・英語237語(英語はデータとして持っているだけで、今のところツール本体は日本語のみ読み込み)。

増やしたのは語数だけではなく、持たせる情報のほうも。 書き出しの定型、結びの定型といった大枠に加えて、 メール・ES・小説・SNSみたいに文章の種類ごとの定型を分けて持たせています。 「ですね!」みたいなチャット表現をブログの校正時に拾ってしまうと邪魔になるので、種類ごとに出し分けたかった。

語ごとの「強さ」も3段階(単体で即アウト/注意/多用時のみ)で持たせました。 これが次のスコア計算にそのまま効いてきます。

辞書は今も定期的に足していて、たぶんこの作業はずっと続きます。

スコアの計算式が細かくなった

設計段階の案は「文字数に対する手垢ワードの割合で減点する」というくらいの粗さでした。 ただしこれだと、短い文章に1個混ざっただけで真っ赤になってしまう。

実装されたものはもう少し細かくて、語ごとの強さで重み付けしたペナルティを、1000字あたりに正規化して引く形。 短い文章が不利になりすぎないよう、文字数に下限も設けてあります。

色分けは初期案のまま、80点以上が緑、50点以上が黄、それ未満が赤。 ここは触ってみても違和感がなかったので、そのまま残っています。

「この語は無視」を足した

指摘は出るけど自分は無視したい、という語は必ず出てきます。 文体としてわざと使っている表現もあるので、指摘対象から外せる無視リストを入れました。

ユーザー辞書で足す方向は初期案からありましたが、引く方向も要るよな、というだけの話です。

検出の感度を選べるようにした

これも触りながら足したもので、拾う強さのしきい値を切り替えられます。 全部拾う/注意以上だけ/強いものだけ、の3段階。 ハイライト自体をオフにして、素のエディタとしても使えるようにしてあります。

オートセーブも、初期案では「数秒おき」としか決めていませんでしたが、 手動・3秒・10秒から選べる形にしました。

モデル推定は、おまけとして残した

辞書に「この表現はこのモデルに多い」という情報を持たせたので、 検出結果を集計して「たぶんこのモデルっぽい」を帯グラフで出す機能も一応入っています。

ただし、モデル固有の表現は共通表現よりずっと少ないので、精度は推して知るべしという感じ。 地味なおまけくらいの位置づけです。

あとは細かいところ

ダークモード、文字数カウントの細かい設定(空白や改行を数えるかどうか)あたりも、 触っているうちに欲しくなって足しました。

まとめ

企画段階でいちばん効いたのは、AIの提案を一回「それ古くない?」と疑ってみる往復でした。 最初の案そのままだと、たぶん一足遅いツールを作って終わっていた。

実装のほうは、ほぼGeminiの提案通りに作って、そこから公開できる状態になるまで詰めていく形でした。 設計対話で決まるのは骨格までなので、実際の文章を流し込んでみて出てくる粗さは、その工程で潰していくことになります。

そしてリリース後も継続して手を入れているのは、コードではなく辞書のほうです。 機能としては一通り出来上がっていて、あとは「AIが好んで使う言い回し」を見つけては足していく作業が続いている。 キリがないので、しばらく付き合うことになりそうです。

Ningenize は https://ningenize.uekibachidan.com/ で公開しています(2026年7月リリース)。