「TCPプロトコル」や「VRリアリティ」などの略語に続く単語の意味が重複してる文章を検知するtextlintルールを書いた
「TCPプロトコル」、「DTOオブジェクト」、「VRリアリティ」などの単語の頭文字をとった略語とその後に続く単語の意味がかぶっている文章を検知するtextlintのルールを書きました。 日本語だけではなく”This is TCP protocol.“などの英単語のパターンも対応しています。
元ネタは次のTweetです。
「BGPプロトコル」っていうワードを目にして微笑ましくなってる😊
— ゆやりん (@yuyarin) October 17, 2021
仕組み
略語をまとめたマシーンリーダブルなデータは見つからなかったので、Wikipediaを元に略語と元の単語の対応をまとめた辞書を作りました。 次のSpreadSheetにデータを公開しています。
元となるWikipediaのページは、次のようなページです。
この辞書にマッチする略語がでてきたら、その次の単語が略語の最後の単語と同じなら重複しているというエラーを報告します。
「BGPプロトコル」の「BGP」は「Border Gateway Protocol」なので、「Protocol」と「プロトコル」は同じ意味だとしてエラーにしています。
“BGPプロトコル” has duplicated suffix word. “BGP” stands for “Border Gateway Protocol”.
日本語と英単語間で同じ意味合いかどうかの判定には、Sudachi 同義語辞書を利用しています。
使い方
textlintのルールなので、「textlint ルール 設定」で検索したり次のページを参照してください。
npmなどでルールをインストールします。
npm install --save-dev @textlint-rule/textlint-rule-no-duplicate-abbr textlint
.textlintrc
設定ファイルで有効化します。
{
"rules": {
"@textlint-rule/no-duplicate-abbr": true
}
}
おわりに
略語の辞書が結構手作業で直したりしているので、壊れてるデータがあるかもしれません。 SpreadSheetは誰でも編集できるようになっているので、おかしなところがあったら修正してみてください。 また、足りない略語は勝手に追加してみてください。(辞書もnpmパッケージとして配布したいのでどうにかしたいです)
お知らせ欄
JavaScript Primerの書籍版がAmazonで購入できます。
JavaScriptに関する最新情報は週一でJSer.infoを更新しています。
GitHub Sponsorsでの支援を募集しています。