textlintのルール調整
日本語の文章チェックにtextlintを使う場合、プリセットをそのまま使うと過剰に反応することがあります。
プロジェクトの文脈に合わせてルールを調整する必要があります。
問題: プリセットは汎用的すぎる
textlintには、日本語技術文書向けのプリセット(preset-ja-technical-writing)やJTFスタイルガイドに基づくプリセット(preset-jtf-style)があります。
これらは汎用的に設計されているため、特定のプロジェクトには合わない部分があります。
学術論文での例
JTF-styleには「全角のピリオドとカンマは使用しません」というルールがあります。
code:_
jtf-style/1.2.2.ピリオド(.)とカンマ(,): 全角のピリオドとカンマは使用しません。
しかし、数式を含む学術論文などでは慣例的に全角の「.」「,」を使用することがあります。
このルールをそのまま適用すると、正しい文書に対して数百件のエラーが出ます。
解決: 実際に動かして過剰反応を特定する
ルールを調整するには、まず全ルールを有効にして実行し、過剰反応しているルールを特定します。
code: (bash)
./tools/lint_tex.sh 2>&1 | grep -o 'jtf-style/^:*' | sort | uniq -c | sort -rn 出力例:
code:_
543 jtf-style/1.2.2.ピリオド(.)とカンマ(,)
12 jtf-style/2.2.2.算用数字と漢数字の使い分け
1 jtf-style/4.2.9.ダッシュ(-)
1 jtf-style/4.2.6.ハイフン(-)
件数が極端に多いルールは、プロジェクトの文脈に合っていない可能性が高いです。
無効化の判断基準
エラー件数だけで無効化を決めるのではなく、具体例を確認して判断します。
確実に無効化すべきパターン
プロジェクトの慣例と矛盾する場合
学術論文で全角句読点「.」「,」を使用しているなら、半角を要求するルールは無効化します。これは数百件のエラーを一度に解消できます。
code: (json)
"preset-jtf-style": {
"1.2.2.ピリオド(.)とカンマ(,)": false
}
具体例を確認してから判断するパターン
件数が少ないルール
ハイフンやダッシュのルールは1件ずつしか検出されていません。具体的な内容を確認します。
code:_
jtf-style/4.2.6.ハイフン(-): 原則として和文ではハイフン(-)を使用しません。
→ 検出箇所: "$\varepsilon$-貪欲法"
これは「ε-greedy法」という技術用語の日本語訳で、正しい使い方です。このルールも無効化します。
有効なまま残すべきパターン
実際に修正すべき指摘
冗長表現のルールは、実際に修正を検討すべき指摘をします。
code:_
ja-no-redundant-expression: 「学習を行う」は冗長な表現です。「学習する」など簡潔な表現にすると文章が明瞭になります。
これはLLMが文脈を見て判断すべき指摘です。無効化せずに残します。
手法名との組み合わせも言い換え可能
当初は「深層学習を行う」「機械学習を行う」はallowリストで除外していましたが、実際には文脈に応じた言い換えが可能です。
table:table
表現 言い換え例
深層学習を行うためには 深層学習には / 深層学習においては
機械学習を行う際に 機械学習の際に / 機械学習では
学習を行う 学習する(文脈で判断)
評価を行う 評価する(文脈で判断)
「〜する」が不自然な場合でも、「〜には」「〜においては」「〜では」などで言い換えられることが多いです。
設定例: 学術論文向け
学術論文向けに調整した設定例:
code: (json)
{
"rules": {
"preset-jtf-style": {
"1.2.2.ピリオド(.)とカンマ(,)": false,
"2.2.2.算用数字と漢数字の使い分け": true,
"4.2.6.ハイフン(-)": false,
"4.2.9.ダッシュ(-)": false
},
"preset-ja-technical-writing": {
"ja-no-weak-phrase": false,
"ja-no-redundant-expression": true
}
}
}
table:table
プリセット ルール 設定 理由
jtf-style ピリオド(.)とカンマ(,) 無効化 学術論文では全角「.」「,」を使用
jtf-style ハイフン(-) 無効化 技術用語で必要
jtf-style ダッシュ(-) 無効化 関係表現で必要
ja-technical-writing 弱い表現 無効化 学術論文では慎重な表現が適切
調整困難なルール
以下のルールは自動化が困難で、手動判断が必要です。
ja-no-mixed-period(文末句点)
LaTeX数式の前に来る「,」で終わる文が誤検出されます。
code: (text)
行列を$M$とすると, ← 「文末が.で終わっていません」と検出
\begin{equation}
allowEoPに「,」を追加すれば解消しますが、本当に文が途中で切れているケースも見逃すため、手動判断としています。
sentence-length(文長制限)
数式を含む長文は150文字を超えやすいですが、分割すると読みにくくなる場合が多いです。
その他
table:文脈判断が必要なルール(有効化)
プリセット ルール 設定 備考
jtf-style 算用数字と漢数字 有効化 数量表現は算用数字に統一
ja-technical-writing 冗長表現 有効化 手法名も含め言い換え検討