| name | style-analyzer |
| description | ユーザーの既存文章を複数読み込み、文体特徴(語尾パターン、文の長さ、漢字/ひらがな比率、口調、接続詞傾向)を抽出してスタイルプロファイルを生成する。 「文体を分析して」「書き方を真似て」「文章のスタイルを学習」等のリクエストで発動。 |
| triggers | ["文体を分析","文章のスタイルを学習","書き方を真似て","ライティングスタイルを抽出","トーン分析","style-analyzer","style profile"] |
トリガーワード
「文体分析」「トーン分析」「ライティングスタイル」「文章スタイル」
Style Analyzer - 文体分析・プロファイル生成
ユーザーが書いた複数の文章ファイルを読み込み、文体の特徴を定量的に抽出してスタイルプロファイル(YAML形式)を生成します。生成されたプロファイルは、文体を再現した文章生成や、文体の一貫性チェックに活用できます。
機能
- 語尾パターン分析: です/ます調、だ/である調、混合型を判定
- 文長分析: 一文あたりの平均文字数、最短・最長文字数
- 文字種比率: 漢字・ひらがな・カタカナ・ASCII・記号の出現比率
- 接続詞分析: 使用される接続詞の種類と頻度を集計
- 段落構造: 段落あたりの平均文数を算出
- 体言止め検出: 体言止めの使用頻度を計測
- 句読点パターン: 全角/半角句読点の使い分けを判定
- 修飾語分析: 修飾語・副詞の出現密度を推定
- 口語/文語バランス: 口語的表現と文語的表現の比率を推定
Usage
python scripts/style_analyzer.py --input "article1.md" --input "article2.md"
python scripts/style_analyzer.py --input "article1.md" --input "article2.md" --output style_profile.yaml
python scripts/style_analyzer.py \
--input "blog_post_1.md" \
--input "blog_post_2.md" \
--input "report.txt" \
--output my_style.yaml
python scripts/style_analyzer.py --test
Parameters
| Parameter | Required | Default | Description |
|---|
| --input | Yes* | - | 分析対象のテキスト/Markdownファイルパス(複数指定可) |
| --output | No | output/style_profile.yaml | 出力YAMLファイルのパス |
| --test | No | false | テストモード:サンプルプロファイルを生成して終了 |
* --test 使用時は --input は不要
分析項目
語尾パターン(sentence_endings)
| 分類 | 該当パターン | 例 |
|---|
| desu_masu | です、ます、でした、ました、ません、でしょう | 「AIは便利です」 |
| da_dearu | だ、である、であった、だった、ではない | 「AIは便利である」 |
| other | 疑問形、感嘆、体言止め等 | 「AIは便利?」「便利なAI。」 |
文字種比率(char_ratios)
Unicode範囲に基づいて各文字種の比率を算出:
- 漢字: U+4E00 - U+9FFF, U+3400 - U+4DBF
- ひらがな: U+3040 - U+309F
- カタカナ: U+30A0 - U+30FF
- ASCII: U+0020 - U+007E
- その他: 上記以外(記号・絵文字等)
接続詞(conjunctions)
検出対象の主な接続詞:
| カテゴリ | 接続詞 |
|---|
| 順接 | だから、したがって、そのため、それで、ゆえに |
| 逆接 | しかし、だが、ところが、けれども、にもかかわらず、一方で |
| 並列・累加 | また、さらに、そして、加えて、それに、そのうえ |
| 説明・補足 | つまり、すなわち、要するに、なぜなら、というのも |
| 転換 | さて、ところで、では、それでは、ちなみに |
| 対比 | むしろ、逆に、反対に、それに対して |
| 例示 | たとえば、具体的には、いわば |
体言止め(taigen_dome)
文末が名詞・名詞句で終わるパターンを検出(「。」の直前が漢字・カタカナ・ひらがな名詞で終わる場合)。
句読点パターン(punctuation)
| パターン名 | 句点 | 読点 |
|---|
| standard | 。 | 、 |
| academic | .(全角ピリオド) | ,(全角カンマ) |
| mixed | 混合 | 混合 |
出力形式
YAML形式のスタイルプロファイル:
style_profile:
generated_at: "2026-02-12T10:30:00+09:00"
source_files:
- path: "article1.md"
chars: 2450
- path: "article2.md"
chars: 3120
total_chars: 5570
total_sentences: 142
total_paragraphs: 28
sentence_endings:
desu_masu: 0.72
da_dearu: 0.18
other: 0.10
dominant_style: "desu_masu"
sentence_length:
average: 39.2
median: 35.0
min: 8
max: 98
std_dev: 15.4
char_ratios:
kanji: 0.31
hiragana: 0.48
katakana: 0.08
ascii: 0.06
other: 0.07
conjunctions:
total_count: 34
per_sentence: 0.24
Examples
ブログ記事の文体分析
python scripts/style_analyzer.py \
--input "blog/2026-01-intro.md" \
--input "blog/2026-01-review.md" \
--input "blog/2026-02-tips.md" \
--output output/blog_style.yaml
出力例(stdout):
=== Style Analyzer - 文体分析レポート ===
分析ファイル数: 3
総文字数: 8,420
総文数: 215
--- 語尾パターン ---
です/ます調: 78.1%
だ/である調: 12.6%
その他: 9.3%
→ 主要スタイル: です/ます調
--- 文長 ---
平均: 39.2文字 中央値: 35.0文字
最短: 5文字 最長: 102文字
--- 文字種比率 ---
漢字: 30.5% ひらがな: 48.2% カタカナ: 8.1%
--- 接続詞 TOP5 ---
また(12) しかし(8) そして(7) さらに(5) つまり(4)
--- 体言止め ---
使用率: 6.5% (14回/215文)
プロファイル保存先: output/blog_style.yaml
テストモード
python scripts/style_analyzer.py --test
入力ファイルなしでサンプルプロファイルを生成し、出力形式を確認できます。
Requirements
- Python 3.8+
- 外部ライブラリ不要(標準ライブラリのみで動作)
Related Skills
- article-writer: スタイルプロファイルを読み込んで文体を再現した記事を生成
- copy-editing: 文体の一貫性チェックや校正に活用