textlint-ja/textlint-rule-preset-ai-writing

【機能追加】コロン(:)と箇条書きの機械的な組み合わせパターンの検出

Closed this issue · 0 comments

azu commented

概要

AIが生成しがちな機械的な「コロン(:)+ 箇条書き」パターンを検出し、より自然な日本語表現への改善を提案する機能を追加したい。

背景

AIが生成する技術文書では、以下のような機械的なパターンが頻繁に見られます:

検出したいパターン(機械的):

Vueのリアクティビティシステムは確かに便利ですが、その仕組みの見えにくさが気になります。例えば:

- `ref``reactive`の使い分けが最初は分からない。
- Proxy を使った内部実装により、時として予期しない動作をする。

推奨される表現(自然):

Vueのリアクティビティシステムは確かに便利ですが、その仕組みの見えにくさが気になります。
たとえば、次のような点が見えにくいと感じます。

- `ref``reactive`の使い分けが最初は分からない。
- Proxy を使った内部実装により、時として予期しない動作をする。

実装内容

1. 検出ロジック

  • ai-tech-writing-guidelineルールに新しい検出パターンを追加
  • Document レベルでParagraph → List の連続パターンを解析
  • 段落末尾がまたは:で終わり、直後にリストが続く場合を検出

2. メッセージング

プロジェクトの方針に従い、建設的で中立的なメッセージを提供:

【構造化】コロン(:)で終わる文の直後の箇条書きは機械的な印象を与える可能性があります。「たとえば、次のような点があります。」のような導入文を使った自然な表現を検討してください。

3. コード品質向上

  • 既存の巨大な処理を関数に分割してモジュール化
  • 将来的な機能追加を容易にする構造に改善
  • テストケースの充実

期待される効果

  • AIが生成する技術文書の自然さ向上
  • 読み手により親しみやすい文章の促進
  • 機械的な印象の軽減

技術的詳細

  • 対象ルール: ai-tech-writing-guideline
  • 検出レベル: Document(段落とリストの構造解析)
  • カテゴリ: 構造化ガイダンス
  • 無効化オプション: disableStructureGuidanceで無効化可能

テストケース

Valid(検出されない例)

  • 自然な導入文を使った箇条書き
  • コロンのない箇条書き

Invalid(検出される例)

  • 全角コロンで終わる段落 + 箇条書き
  • 半角コロン:で終わる段落 + 箇条書き

関連

  • プロジェクトの基本方針:表現を縛るのではなく、構造を縛ることで自然な表現を促進
  • 建設的で中立的なメッセージング原則に準拠