OSS · Python CLI

rhythm-lens

文章のリズムは、気づかないうちに単調化する。だから測る。

rhythm-lensは日本語・英語・ポルトガル語Markdownのリズム (文長の揺れ・音節/モーラの振れ幅・段落構造) を計測し、2本の公開論文の実測分布の上であなたの文書がどこに位置するかをパーセンタイルで返すCLIです。言語は自動判定 (--langで明示指定も可)。感覚値ではなく実測です。

GitHubで見る 日本語版の論文 (DOI) → 言語横断版の論文 (DOI) →

ターミナルデモ: rhythm-lensがAI生成の下書きを中核4指標中4つAI方向 (burstiness文字は人間分布の下位1%) と判定し、続いて人間が推敲した記事を中核4指標すべて人間帯域で✓判定している。
実測2連発: AI生成の下書きは中核4指標中4つがAI方向、人間が推敲した記事は4指標すべて人間帯域で✓。どの判定にも根拠行が付きます。

中核4指標

計測した全7モデルがこの4指標で同じ方向に動きます。方向はモデル普遍、程度はモデル依存。効果量は論文の実測値です。

指標 AI方向 Cohen's d
burstiness (文字) 低い = 単調 −0.96
burstiness (モーラ) 低い = 単調 −0.80
段落あたり文数のCV 低い = 均質 −0.67
文長CV (文字) 低い = 単調 −0.56

v0.2.0から言語横断

続編の論文が、同じ設計を英語とポルトガル語で再実行しました。人間側はChatGPT以前のコーパス (Dev.to人気記事853本、TabNews全窓403本) を新たに収集し、各7 LLMと比較しています。単調化の方向は70/70の全セル (中核5指標×7モデル×2言語) で維持されました。そこでrhythm-lensは3言語ぶんの較正済みベースラインを同梱し、それぞれ独立した凍結分布を持ちます。

言語 人間ベースライン pooled burstiness d 中核指標 d < 0
日本語 Qiita/Zenn 696本 −0.96 (モデル別、第3論文)
英語 Dev.to 853本 (2019〜2022) −1.12 7/7モデル
ポルトガル語 TabNews 403本 (2022) −1.03 7/7モデル

リズム指標の「方向」は言語を跨いで流用でき、較正が要るのはしきい値だけです。例外は句読点で、カンマ密度は英語 (+) とポルトガル語 (−) で符号が反転します。これは全モデル共通の「訛り」ではなく、言語ごとの「方言」です。

しきい値の出どころ

手調整のマジックナンバーはありません。全指標のしきい値・分布・効果量は、公開論文の実測データ (Imoto 2026, DOI 10.5281/zenodo.21413035) から凍結生成しています。

  • 人間側: LLM以前 (2020〜2022年) のQiita/Zenn技術記事696本
  • AI側: 7 LLM (Claude 3 Haiku / Sonnet 4 / Opus 4 / GPT-3.5 Turbo / GPT-4o / GPT-OSS 20B / Llama 3.2 1B) の生成350文書
  • ベースラインファイルは論文リポジトリの公開CSVから決定的に再生成でき、計測コードは論文と同一定義 (数値一致を検証済み)
  • 出力は指標ごとに、あなたの文書が人間分布のどこに位置するかをパーセンタイルで示す

インストール

pipx install git+https://github.com/kenimo49/rhythm-lens

依存はMeCab (mecab-python3 + unidic-lite、日本語用) とpyphen (英語・ポルトガル語の音節近似用) のみ。LLM不使用・APIキー不要・ネットワーク不要で、完全ローカルに決定的に動きます。

使い方

ファイルを渡すと判定が返ります。通常の記事長なら一瞬で終わります。

rhythm-lens article.md          # 中核指標+根拠行つきの判定
rhythm-lens article.md --all    # 全12指標を表示
rhythm-lens article.md --json   # CI/エディタ連携向けの機械可読出力

natural-japanese との関係

本ツールの起点は coji/natural-japanese (MIT) です。「AI臭は語彙よりリズムに出る」という同プロジェクトの観察が論文の出発点になり、rhythm-lensのburstiness・モーラ近似・文分割の定義は同プロジェクトの方式に準拠しています。 github.com/coji/natural-japanese

natural-japanese rhythm-lens
形態 Agent Skill (LLMが読んで直す) 決定的CLI (LLM不使用)
主目的 文章を直す 測って根拠を示す
しきい値 実務観察ベース 論文実測分布 (パーセンタイル)

競合ではなく計測層です。natural-japaneseで直す前後にrhythm-lensで測る、という併用を想定しています。

制約

  • ベースラインがあるのは3言語 (ja/en/pt)。スペイン語を含むその他の言語には較正済み分布がまだありません
  • 判定は技術ブログのレジスタで校正済み。小説・詩・チャットログでは分布が異なります
  • 5文未満の文書は判定対象外 (論文と同じ最小文数)
  • YAML frontmatterは計測前に除去します
  • モーラ/音節数は近似 (日本語はUniDic、en/ptはpyphen)。文字ベース指標と併読してください

関連記事

関連する開発ツール

プロダクト一覧 →

← プロダクト一覧へ