ユーザーの既存文章を複数読み込み、文体特徴(語尾パターン、文の長さ、漢字/ひらがな比率、口調、接続詞傾向)を抽出してスタイルプロファイルを生成する。 「文体を分析して」「書き方を真似て」「文章のスタイルを学習」等のリクエストで発動。
Scanned 5/27/2026
Install via CLI
openskills install minicoohei/ai-agent-camp---
name: style-analyzer
description: "ユーザーの既存文章を複数読み込み、文体特徴(語尾パターン、文の長さ、漢字/ひらがな比率、口調、接続詞傾向)を抽出してスタイルプロファイルを生成する。 「文体を分析して」「書き方を真似て」「文章のスタイルを学習」等のリクエストで発動。"
triggers:
- 文体を分析
- 文章のスタイルを学習
- 書き方を真似て
- ライティングスタイルを抽出
- トーン分析
- style-analyzer
- style profile
---
## トリガーワード
「文体分析」「トーン分析」「ライティングスタイル」「文章スタイル」
# Style Analyzer - 文体分析・プロファイル生成
ユーザーが書いた複数の文章ファイルを読み込み、文体の特徴を定量的に抽出してスタイルプロファイル(YAML形式)を生成します。生成されたプロファイルは、文体を再現した文章生成や、文体の一貫性チェックに活用できます。
## 機能
1. **語尾パターン分析**: です/ます調、だ/である調、混合型を判定
2. **文長分析**: 一文あたりの平均文字数、最短・最長文字数
3. **文字種比率**: 漢字・ひらがな・カタカナ・ASCII・記号の出現比率
4. **接続詞分析**: 使用される接続詞の種類と頻度を集計
5. **段落構造**: 段落あたりの平均文数を算出
6. **体言止め検出**: 体言止めの使用頻度を計測
7. **句読点パターン**: 全角/半角句読点の使い分けを判定
8. **修飾語分析**: 修飾語・副詞の出現密度を推定
9. **口語/文語バランス**: 口語的表現と文語的表現の比率を推定
## Usage
```bash
# 基本的な使い方(複数ファイルを指定)
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
# 3つ以上のファイルを分析
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形式のスタイルプロファイル:
```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
top_5:
- word: "また"
count: 8
- word: "しかし"
count: 6
- word: "そして"
count: 5
- word: "さらに"
count: 4
- word: "つまり"
count: 3
paragraph_structure:
avg_sentences_per_paragraph: 5.1
taigen_dome:
frequency: 0.07
count: 10
punctuation:
period_style: "。"
comma_style: "、"
pattern: "standard"
modifiers:
density: 0.12
common_adverbs:
- "非常に"
- "特に"
- "実際に"
colloquial_formal_balance:
colloquial_ratio: 0.25
formal_ratio: 0.75
assessment: "やや文語寄り"
```
## Examples
### ブログ記事の文体分析
```bash
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
```
### テストモード
```bash
python scripts/style_analyzer.py --test
```
入力ファイルなしでサンプルプロファイルを生成し、出力形式を確認できます。
## Requirements
- Python 3.8+
- 外部ライブラリ不要(標準ライブラリのみで動作)
## Related Skills
- **article-writer**: スタイルプロファイルを読み込んで文体を再現した記事を生成
- **copy-editing**: 文体の一貫性チェックや校正に活用
No comments yet. Be the first to comment!