Metadata-Version: 2.4
Name: meisai-checker
Version: 0.184.0
Summary: 特許明細書の自動方式チェックツール
Author: aki0ka
License: MIT
Project-URL: Repository, https://github.com/aki0ka/meisai-checker
Keywords: patent,特許,明細書,方式審査
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Legal Industry
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: fugashi>=1.3
Requires-Dist: unidic-lite>=1.0.8
Requires-Dist: pyperclip>=1.9
Requires-Dist: pywebview>=5.0
Requires-Dist: python-docx>=1.1
Requires-Dist: pdfplumber>=0.11
Provides-Extra: mcp
Requires-Dist: fastmcp>=0.4; extra == "mcp"
Requires-Dist: pytoony>=0.1.2; extra == "mcp"
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Provides-Extra: all
Requires-Dist: fastmcp>=0.4; extra == "all"
Requires-Dist: pytoony>=0.1.2; extra == "all"

# meisai-checker — 特許明細書チェッカー

特許明細書・特許願の方式要件を自動チェックするツールです。特許事務所・企業知財部での出願前確認作業を支援します。

**完全ローカル動作・無料・オープンソース** — 特許明細書は出願前の秘匿情報です。本ツールはすべての処理をお手元のPC上で完結し、入力テキストが外部に送信されることは一切ありません。ソースコードを直接確認できます。

チェック項目のなかには、現行の審査実務では拒絶理由とならないケースも含まれます。本ツールの目的は現行基準をクリアすることにとどまりません——特許請求項の明確性の水準を出願人自身が引き上げるための気付きを、無償で提供することにあります。

## 何をチェックするか

### 方式・記載要件

| チェック項目 | 内容 |
|---|---|
| M2: 従属関係 | 自己引用・引用先より前に記載（特施規24条の3第4号）・マルチマルチクレーム |
| M2b: サブコンビネーション | 親クレームの内部構成要素の一部のみを限定する記載（特許法36条6項2号）※ |
| M3: 前記・当該 | 照応詞の先行詞が正しいスコープに存在するか |
| M4: 符号 | 図面符号・変数記号の要素名との対応 |
| M5: 構造 | JIS Z 8301準拠、段落番号、句読点、見出し番号 |
| M6: サポート要件 | 請求項の用語が発明の詳細な説明に記載されているか |
| M7: 明確性要件 | 係り受け曖昧性・曖昧表現（「約」「適宜」「好ましくは」等）・非技術的事項（企業名・販売地域・価格等）・相対表現（比較基準のない程度副詞・形容詞・変化動詞）⚠️実験中（特許法36条6項2号） |
| M8: 明細書記録項目 | 様式第29に基づく必須項目の有無と順序 |
| M9: 特許願記録項目 | 様式第26に基づく願書の必須記載事項・書式 |

※ M2b は係り受け解析を行わないヒューリスティック検出のため、条件節や関係節を含む請求項で偽陽性が出る場合があります。

### 文章品質（産業日本語）

[特許ライティングマニュアル第2版](https://www.japio.or.jp/00yearbook/files/2017book/17_5_04.pdf)（一般財団法人日本特許情報機構）に基づくチェックです。機械翻訳品質の向上と文章の明瞭化を目的とします。すべて情報（info）レベルで表示されます。

| チェック項目 | 対応ルール | 内容 |
|---|---|---|
| TC1: 括弧 | — | 括弧の対応ミス・入れ子の不整合 |
| TC2: 繰り返し | — | 句読点の連続・照応詞の連続・同一語の直接反復 |
| TC3: 文体 | — | 敬体（です・ます体）の混入 |
| TC4: 文長 | 1-1 | 一文が120文字を超える（産業技術文書の目安：100字） |
| TC5: 冗長表現 | 6-1, 7-5, 7-6 | 「することができる」「ものである」「を図る」「〜を行う」「仕様上の」等 |
| TC6: 意味重複 | 2-3, 6-2 | 「約〜程度」「各〜毎」「まず初めに」・数値範囲の桁揃え（「8〜900℃」） |
| TC7: 読点欠落 | 5-2, 5-3 | 接続語句（しかし・また等）や条件節（ので・ため等）の直後に読点がない |
| TC8: こそあど | 7-3 | 「これ」「それ」等の指示代名詞が何を指すか不明確 |
| TC9: 短文化ヒント | 1-3, 1-4 | 文中に箇条書きが埋め込まれている・かっこ内が長い（25文字超） |

### 文法

| チェック項目 | 内容 |
|---|---|
| G1: 助詞 | 同一助詞の連続・「の」の過剰連鎖 |

### 今後対応予定

**明確性要件（審査基準第II部第2章第3節）:**

| 類型 | 内容 |
|---|---|
| (2c) 数値範囲の不整合 | 同一請求項内で矛盾する数値範囲・合計が100%を超える組成記載等 |
| (3) カテゴリー不明確 | 装置クレームに方法ステップが混在する記載等 |

**産業日本語チェック（深い構文解析が必要なルール）:**

以下は形態素解析のみでは実現が難しく、係り受け解析（GiNZA等）の導入後に対応予定です。

| ルール | 内容 |
|---|---|
| 1-2 | 複数の主語・述語を含む文の分割提案 |
| 2-2, 2-3 | 目的語・比較対象の省略検出 |
| 3-1〜3-4 | 主語と述語の距離・修飾語の配置・主述のねじれ |
| 4-1 | 並列要素の表現の不揃い（〜たり〜たり等） |
| 5-1 | 長い主語句のあとの読点欠落 |
| 7-4 | 「こと」「もの」等の抽象的表現の多用 |

## はじめかた

### 最も簡単な方法（推奨）

**ステップ 1 — uv をインストール（初回のみ・Python 不要）**

**Mac** — ターミナルに貼り付けて Enter:

```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```

**Windows** — PowerShell に貼り付けて Enter:

```powershell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
```

インストール後、ターミナル / PowerShell を **一度閉じて再起動** してください。

**ステップ 2 — 起動**

```bash
uvx meisai-checker
```

初回はライブラリのダウンロードに数分かかります。以降は即座に起動します。

**アップデート**:

```bash
uvx meisai-checker@latest
```

**完全に消す**:

```bash
uv cache clean
```

---

### Mac でアプリとして Dock に固定する

uv がインストール済みであれば、以下のコマンド1つで `~/Applications/meisai-checker.app` が作成されます。

```bash
bash <(curl -fsSL https://raw.githubusercontent.com/aki0ka/meisai-checker/main/install_mac_app.sh)
```

作成後は Finder で **移動 → ホーム → Applications** を開き、`meisai-checker.app` を Dock にドラッグしてください。

起動するたびに `uvx --from meisai-checker@latest` で最新版を自動取得します。アップデート作業は不要です。

---

### ソースから実行する方法

git clone してローカルで動かしたい場合:

**Mac**:

```bash
git clone https://github.com/aki0ka/meisai-checker.git ~/meisai-checker && ~/meisai-checker/start.command
```

**Windows**:

1. [ZIPをダウンロード](https://github.com/aki0ka/meisai-checker/archive/refs/heads/main.zip)
2. 任意のフォルダに展開
3. フォルダ内の `start.bat` をダブルクリック

## 使い方

### GUI（デスクトップアプリ）

```bash
uvx meisai-checker
```

**入力方法**

- ファイルをウィンドウにドラッグ＆ドロップ（`.txt` / `.docx` / `.pdf`）
- テキストエリアに貼り付けて「チェック実行」ボタンを押す

**その他の機能**

- 「📌 前面固定」：常に前面表示のON/OFF（設定は次回起動時も保持）
- 「📋 コピー」：チェック結果をMarkdown形式でクリップボードにコピー
- ☀/🌙：ライト/ダークテーマ切り替え

### コマンドライン

```bash
# テキストファイルを解析
meisai-checker 明細書.txt

# JSON形式で出力
meisai-checker --json 明細書.txt

# HTMLレポートをブラウザで開く
meisai-checker --html 明細書.txt
```

### Claude（MCP）と連携

Claude Desktopの設定ファイルに追加します。

```json
{
  "mcpServers": {
    "meisai-checker": {
      "command": "uvx",
      "args": ["--with", "fastmcp", "--with", "pytoony", "meisai-checker-mcp"]
    }
  }
}
```

Claudeから使えるツール：

| ツール | 用途 |
|---|---|
| `patent_check_summary` | 全チェック（M2〜M9・TC・G1）のエラー・警告サマリー |
| `patent_check_issues` | 全チェックの詳細issueリスト（レベル・マイルストーンでフィルタ可） |
| `patent_check_m3` | M3 照応詞（前記・当該）チェックのみ |
| `patent_check_m4` | M4 符号チェックのみ |
| `patent_check_m7` | M7 係り受け曖昧性チェックのみ |
| `patent_check_m8` | M8 明細書記録項目チェックのみ |
| `patent_check_m9` | M9 特許願記録項目チェックのみ |

MCPサーバーの出力はTOON形式（JSON比で約30%トークン削減）を使用しています。

## 対応フォーマット

- **J-PlatPat形式**: J-PlatPatの公報ページからコピーしたテキスト（自動検出）
- **出願時形式**: 特許庁へ提出する明細書のテキスト（自動検出）
- **Word (.docx)**: GUI/CLIでファイルを直接読み込み（全段落を順に結合）
- **PDF (.pdf)**: テキストレイヤー付きPDFのみ対応（スキャンPDFは非対応）

## トラブルシューティング

### Mac: `You have not agreed to the Xcode and Apple SDKs license` と表示される

macOS のアップデートや Xcode の再インストール後に表示されることがあります。ターミナルで以下を実行して同意してください:

```bash
sudo xcodebuild -license accept
```

パスワードを求められたら Mac のログインパスワードを入力します。完了後、もう一度 `uvx meisai-checker` を実行してください。

### `uv: command not found` と表示される

uv がインストールされていないか、ターミナルを再起動していません。「ステップ 1」のコマンドを実行し、ターミナルを閉じて再起動してから再試行してください。

### MeCab（形態素解析）が動かない

`pip install fugashi unidic-lite` を実行してください。MeCab が動かない場合、M3（前記チェック）・M4（符号チェック）・M6（サポート要件）・M7（曖昧性）が実行されませんが、それ以外のチェックは動作します。

## 関連記事

- [AIにくるみ割り器を作らせた──特許明細書チェッカーをOSS公開](https://note.com/humble_frog2601/n/n56acc1c6fda3)（note）

## フィードバック・改善提案

バグ報告・機能要望・チェックルールの改善提案を歓迎します。[GitHub Issues](https://github.com/aki0ka/meisai-checker/issues) までお気軽にどうぞ。実際の特許実務に基づくご意見は特に歓迎です。

### 特に歓迎する情報

以下のリストはサンプル事例から構築しており、網羅性に限界があります。実案件で誤検知・見逃しが発生した場合は、該当する請求項の文面（公開番号があれば番号も）とともに Issue でご報告ください。

| リスト | 概要 | 報告例 |
|--------|------|--------|
| **従属項引用記法**<br>`anaphora.py` `_CLAIM_REF_PAT` | `に記載の`・`記載の`・`に係る`・`に示した` 等、依存参照の記法一覧 | 「〜に〇〇した〜」という記法で唯一性崩壊の誤警告が出た |
| **量化子接頭辞**<br>`tokenizer.py` `_QUANT_MODS` `_LEADING_QUANT_PREFIXES` | `各`・`複数の`・`それぞれの` 等、先行詞の個数を修飾する語 | 「〇〇個の」「一連の」が量化子として認識されなかった |
| **位置・関係接尾辞**<br>`tokenizer.py` `_LOC_SUFFIXES` `_ITER_SUFFIXES` | `内`・`上`・`側`・`用`・`向け` 等、名詞句末に付く接尾辞 | 「〇〇側」「〇〇用」が別の名詞として扱われた |
| **符号チェック除外語**<br>`fugo.py` `FUGO_EXCLUDE_LIST` | `CDMA2000`・`H.264`・`IPv6` 等、数字を含む規格名・型番 | 「〇〇2.0」「〇〇3GPP」が図面符号として誤検知された |
| **サポート要件ストップワード**<br>`support.py` `STOP_WORDS` | `方法`・`装置`・`システム` 等、汎用すぎてチェック対象外にすべき語 | 汎用名詞がサポート要件の警告に混入した |
| **曖昧表現リスト**<br>`clarity.py` `_VAGUE_KEYWORDS` | `適宜`・`好ましくは`・`必要に応じて` 等、範囲を不確定にする表現 | 「〇〇的に」「〇〇程度に」という表現が見逃された |
| **動詞サポートチェック除外語**<br>`support.py` `_VERB_STOP` | `備える`・`有する`・`含む` 等、クレームの構文骨格をなす動詞（発明の技術内容を表さない） | 「〇〇する」という動詞が誤ってサポート要件警告に含まれた |
| **複合位置語**<br>`anaphora.py` `_LOC_COMPOUND` | `直下`・`近傍`・`直上`・`付近`・`周辺` 等、名詞に直結して名詞境界を侵害する2文字以上の位置表現 | 「前記基板直下」が「前記基板」として解決されず先行詞エラーになった |
| **相対表現リスト** ⚠️ 実験中<br>`clarity.py` `_DEGREE_ADVERBS` `_RELATIVE_ADJECTIVES` `_CHANGE_VERB_STEMS` | 程度副詞（`非常に`・`極めて`等）、比較基準のない相対形容詞（`高い`・`低い`等）、方向性変化動詞（`向上`・`低下`等）を検出。連動表現（「Aが減少するにつれBが増加する」等）は通過 | 比較基準なしとして誤警告が出た表現・見逃された相対表現 |

## 開発

```bash
git clone https://github.com/aki0ka/meisai-checker
cd meisai-checker
uv run main.py        # GUI起動
uv run -m meisai_checker.cli --help  # CLIヘルプ
```

## ライセンスと謝辞

本ツールは MIT ライセンスで配布しています。

依存ライブラリ:
- [fugashi](https://github.com/polm/fugashi) (MIT) — Python 向け MeCab ラッパー
- MeCab (BSD) — Copyright © Taku Kudo, NTT
- [unidic-lite](https://github.com/polm/unidic-lite) (BSD) — Copyright © UniDic Consortium / NINJAL


