mcpField
L
lexaudit

lexaudit

ローカル
github.com/nareyko生産性05 日前に更新

lexaudit について

lexauditは、記事、教材、ドキュメントの語彙を監査するローカルCLIです。他言語からの直訳語、誤用語、新造語を検出して確認するページを順位付けします。文章は変更せず、ネット接続やGPUなしで7言語に対応します。

主な機能

  1. 01直訳語・誤用語・新造語の検出
  2. 02問題スコアによるページ順位付け
  3. 03単語が検出された理由の説明
  4. 047言語への対応
  5. 05文章を変更せずローカルで実行

活用シーン

  1. 01多言語ドキュメントの不自然な語彙の確認
  2. 02問題の多いページの優先的な確認
  3. 03スペルチェッカーが見逃しやすい語の検査

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"nareyko-lexaudit": {
"command": "uvx",
"args": [
"lexaudit"
]
}
}
}
起動コマンドuvx lexaudit

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypilexaudit0.3.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

lexaudit

テキスト内の不自然な語、誤った語、別の言語からコピーされた語を見つけ、最初に修正すべきページを教えてくれます。

簡単に言うと

記事、講座、ドキュメントを書いたり翻訳したりしているとします。一般的なスペルチェッカーは、ブランド名、略語、長いドイツ語の単語まで何でも指摘する一方で、本当に問題になる語は見逃します。たとえば、別の言語からそのまま持ち込まれた語(「カルク」)、実在するものの意味を誤って使った語(「偽同形異義語」)、あるいは誰かが作り出した語です。

lexaudit はファイルを読み込み、問題のないものを無視して、「まずこのページを確認してください」という短い優先順位付きリストを作成します。一般的なノートパソコンで約1秒で実行できます。グラフィックカードも、インターネットも、アカウントも必要ありません。

問題を報告するだけです。テキストを変更することはありません。

不明な用語については、用語集をご覧ください。
0.3.0 の準備および公開手順:docs/p1-INDEX.md。

  • 対応言語:英語(en)、ドイツ語(de)、スペイン語(es)、ポーランド語(pl)、ロシア語(ru)、スウェーデン語(sv)、ウクライナ語(uk)
  • ハードウェア:CPU のみ
  • 作成者:Vadim Nareyko(github.com/nareyko、Arviser Sp. z o.o. の創業者)
  • ライセンス:MIT パッケージと AGPL-3.0-or-later のホスト型 SaaS のデュアルライセンス(詳細)

lexaudit の仕組み


30秒で試す

pipx run lexaudit audit --path . --locale en --check
# or: uvx lexaudit audit --path . --locale en --check

不足しているスペル辞書は、ユーザーのキャッシュに自動でダウンロードされます。GPU は不要です。設定ファイルも必要ありません。終了コード 1 は、確認済みのカルクまたは造語が残っていることを意味します。

任意の補助コマンド:lexaudit doctor、lexaudit fetch-dicts、lexaudit init。

ファイルまたはプロジェクト全体をチェックする
# One file or folder, no settings file needed
uv run lexaudit audit --path ./README.md --locale en

# Or create starter settings first, then check everything
uv run lexaudit init
uv run lexaudit audit --locale en
レポートを開く

レポートは出力フォルダー内にあり、言語ごとにサブフォルダーが分かれています。まず queue.md を開いてください。

| score | unique_suspects | path | top_words |
|---|---|---|---|
| 12.0 | 2 | docs/en/en-04-defect-known-calques.md | orientir surveyness |
| 6.0 | 1 | docs/en/en-05-defect-false-friend.md | denseness |
| 1.6 | 2 | docs/en/en-03-clean-unseen-jargon.md | vinylester haulout |

スコアが高いほど、「まず確認すべき」という意味です。top_words にはスコアの根拠となった単語が表示されます。

単語が指摘された理由を確認する
uv run lexaudit explain orientir --locale en
word: orientir (normalized: orientir, locale: en)
status: calque (tier: confirmed)
reason: loan-calque-orientir | detectors: calque, hunspell
editorial hint: working rule / ballpark / figures - not orientir
テスト結果を再現する
uv run lexaudit audit --config examples/synthetic-demo/lexaudit.config.yaml

次に tmp/synthetic-demo-out/<language>/queue.md を開きます。


精度はどのくらい? 正直にお答えします

7言語すべてで、42ページのテストセットを作成しました。問題のない技術ページが21ページ、意図的に問題を仕込んだページが21ページです。既知のルールで検出できる問題もあれば、ルールがこれまで一度も見たことのない新しい単語もあります。詳細:docs/synthetic-benchmark.md。

ベンチマーク結果

構成上位2件に問題のあるページ上位3件に問題のあるページRecall@2Recall@3MAP(0~1、高いほど良好)既知の問題の検出数新規造語の検出数仕込んだ問題の合計問題のないページでの FP / 1k トークン時間
A. 通常のスペルチェッカー0.0%23.8%0.0%23.8%0.3890.0% (0/26)0.0% (0/7)0.0% (0/33)81.20.48 s
B. 独自の単語リストを追加7.1%23.8%4.8%23.8%0.4210.0% (0/26)0.0% (0/7)0.0% (0/33)47.10.56 s
C. lexaudit の全機能100.0%100.0%66.7%100.0%1.000100.0% (26/26)100.0% (7/7)100.0% (33/33)47.12.97 s

この結果が意味すること:

  • すべての言語で、既知の問題があるページが最初に表示されます。通常のスペルチェッカーでは、問題のないページが先に表示されます。
  • 既知のルールで検出できる問題:100.0%(26/26)。未確認の単独出現の造語(Zipf + char n-gram / affix-glue):100.0%(7/7)。仕込んだ問題の合計(実際の割合):100.0%(33/33)。
  • 各ロケールに不備のあるページがちょうど3ページある場合、上位2枠がどちらも問題のあるページでも、Recall@2 は 66.7% です(Precision@2 = 100.0%)。Precision@3 / Recall@3 は 100.0% です(単独出現の造語は、繰り返し使われる分野の専門用語より上位に表示されます)。
  • 問題のないページでの誤検出:1000トークンあたり 47.1 個の重複しない指摘語(重複しない FP は36語 / 764トークン)。
  • ページ内で繰り返し使われる(または H1 / タイトルに含まれる)専門用語には domain-term-candidate のタグが付き、ランキングへの重みはほぼゼロになり、「用語集への追加候補」に一覧表示されます。

ドキュメント

まずは docs/README.md をご覧ください。

ガイド内容
用語集すべての用語を平易な言葉で解説
ベンチマーク42ページのテストを順を追って解説
アーキテクチャ入力と出力の内容
パイプライン各単語が通過するゲート
CLI リファレンスすべてのコマンド
エージェントのワークフローレポートからページの修正まで
スコアと指標ページのスコア算出方法

単語分類の段階


その他のコマンド

# Re-rank pages, filter by source (docs, academy, model_pack)
uv run lexaudit rank --locale ru --mode weighted --sources=docs

# Add every page that contains a known bad word to your to-do list
uv run lexaudit expand-needle --needle orientir --locale all \
  --write-queue /abs/path/to/rewrite-queue.md

# Optional: ask a language model for a second opinion (your own endpoint)
uv run lexaudit label --locale ru --top-pages 20 --top-words 50 --tiers likely,weak --profile cpu

# Compare two runs
uv run lexaudit diff --baseline .../report.json --current .../report.json --out /tmp/diff.json

コントリビューター向け

セットアップとチェック:

uv sync --extra dev
uv run ruff check . && uv run ruff format --check .
uv run mypy --strict src/
uv run pytest
uv run python scripts/crap_report.py
uv run mutmut run && uv run python scripts/check_mutation_score.py --min-percent 80
uv build

テストレイヤー:ユニットテストと統合テスト(ブランチカバレッジ80%以上)、7言語ベンチマーク、プロパティベースのファジング(Hypothesis)、読み取り専用でファイルをチェックするゴールデン回帰テスト、JSON Schema コントラクト、複雑度ゲート(CRAP)、ミューテーションテスト(キル率80%以上)。

docs/images 内の画像はコードから生成されます。python scripts/render_diagrams.py を実行してください(Inkscape と Pillow が必要です)。JPG ファイルを手作業で編集しないでください。

ライセンス

対象ライセンス
PyPI/このリポジトリのコード(CLI、ライブラリ、YAML ルール、パック)MIT — MIT の条件のもと、製品やプライベート SaaS で使用できます
将来的に予定しているホスト型マルチテナントネットワークサービス(このリポジトリには含まれていません)ポリシー文書:AGPL-3.0-or-later — MIT の wheel に適用される2つ目のライセンスではありません
ベンチマークコーパスと取得したスペル辞書LICENSE-THIRD-PARTY.md と上流の *.license.txt

ライセンスの全文:docs/licensing.md。ルールの追加方法:docs/contributing-rules.md。

開発の経緯と作者

Vadim Nareyko(github.com/nareyko)が作成し、メンテナンスしています。FairHelm で多言語コースや百科事典を監査したことをきっかけに開発が始まりました。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。