hayashier Tech Blogs
  • hayashier Tech Blogs
  • Author's Books
    • 実践Redis入門 (日本語版)
    • 実践Redis入門 (한국어판)
  • Top Contents
    • Dive Deep Redis
    • Dive Deep Memcached
    • Kubernetes 入門
    • TCP 入門
    • TLS 入門
    • GPG 入門
    • サービス障害が発生した場合の対応方法
    • よく使うトラブルシューティング コマンド実行例 まとめ
    • コピペで使えるELBのアクセスログ解析による事象分析 (ShellScript, Athena)
  • Containers
    • Docker 入門
    • Nomad 導入
    • Dockerを利用してさっと検証環境構築
  • Kubernetes
    • Kubernetes 入門
    • Kubernetes 導入 with Amazon Linux 2
    • EKSを利用してKubernetesでSpring MVCをデプロイ (NLB + Auto Scaling)
  • Load Balancer
    • ALB 認証 導入
    • TLS extensions support with ALB
    • ELB(CLB,ALB,NLB)の種類ごとのHTTPレスポンスの違い
    • ELB(CLB) で WebSocket 通信
  • RDBMS
    • PostgreSQL DBA 入門
    • RDBMS Benchmark Get Started
    • RDBMS サンプルデータ生成 Get Started
    • RDS PostgreSQL Extensions Get Started
    • RDBMS Engine Inspection for Troubleshooting
  • Redis
    • Dive Deep Redis ~ 入門から実装の確認まで
    • Dive Deep Redis Internals ~ GETコマンド実行時の動作 ~
    • RedisのString型は今でも本当に512MBが上限か?
    • Redis 公式ドキュメント まとめ
    • Redis / Memcached Source Code Reading - Overview -
  • Memcached
    • Dive Deep Memcached ~ 入門から実装の確認まで ~
    • Dive Deep Memcached ~ SETコマンド実行時の動作 ~
    • Memcached 公式ドキュメント まとめ
    • memtier_benchmark + memcached-tool の導入
    • Redis / Memcached Source Code Reading - Overview -
  • Hadoop
    • Hadoop Get Started
  • Networking
    • TCP 入門
    • TLS 入門
    • ksnctf: HTTPS is secure, Writeup (TLS 通信解読)
    • オンプレ側ルーター(Cisco 1812J, Juniper SRX210, YAMAHA RTX 1210)から Direct Connect へ BGP 設定
  • Software
    • アルゴリズムとデータ構造 入門
    • デザインパターン 入門
    • ソフトウェアテスト 入門
  • System Admin
    • Shell Script 入門
    • サービス障害が発生した場合の対応方法
    • よく使うトラブルシューティング コマンド実行例 まとめ
    • コピペで使えるELBのアクセスログ解析による事象分析 (ShellScript, Athena)
    • GPG 入門
    • Operation Misc
  • Development
    • ローカル環境のプログラミング言語のバージョンを切り替え macOS
    • /usr/local/Cellar/pyenv/1.2.21/libexec/pyenv: No such file or directoryのエラーの対処方法
  • AWS
    • AWS Misc
    • AWS CLI, AWS SDKのリトライ処理の実装について
    • AWS CLI バージョンアップでエラー発生を解消
    • Elastic Beanstalkで稼働しているアプリケーション(Ruby, Sinatra)をAmazon Linux AMIからAmazon Linux2へ移行
    • Elastic Beanstalkでインスタンス入れ替え後にnginxのデフォルトの画面が表示されてしまう問題の対応
    • Amazon Lightsail に SSL 証明書設置 with Let's Encrypt (自動更新)
    • Amazon Lightsailで10分で作るお手軽Markdownで書く独自ドメインのブログサイト構築
    • Lambdaをローカルでテスト(with Docker)
    • ECS + ALB でダウンタイムなしでデプロイ
    • `Repository packages-microsoft-com-prod is listed more than once in the configuration`のメッセージの解消方法
  • Others
    • Pandoc 導入
    • textlint + prh による文章校正
    • 紙書籍をPDFに変換
    • Sphinx 導入
    • さくっとPocketのブックマークをはてなブックマークに移行
    • Macが突然起動しなくなった話
    • Macでターミナルが開かない (zsh編)
    • ホスト型 IDS Tripwire とネットワーク型 IDS Snort の導入 with CentOS 6
    • JMeter 導入
    • Squid 導入 with Amazon Linux AMI
    • Spring MVCを導入 (+ MySQL, Redis)
    • 外資系企業で働いている場合の確定申告方法 (RSU考慮)
Powered by GitBook
On this page
  • textlint + prh による文章校正
  • textlint + prh
  • スクリプト
  1. Others

textlint + prh による文章校正

textlint + prh による文章校正

textlint + prh

  • textlintは自然言語の文章校正ツール

  • prhは表記ゆれの修正のための文章校正ツール

package.jsonを作成した上で、以下のコマンドを実行。必要に応じて、生成されるpackage-lock.jsonもGit管理下にしておく。

$ npm install

実行。前者は指摘のみ。後者は自動修正可能な箇所は修正まで行う。

$ npm run lint
$ npm run fix

package.json

{
  "name": "redis-book",
  "version": "0.0.0",
  "description": "Redis book",
  "main": "index.js",
  "directories": {
    "doc": "doc"
  },
  "scripts": {
    "lint": "textlint --cache --experimental --parallel ./ch*.md",
    "fix": "textlint --cache --experimental --parallel ./ch*.md --fix"
  },
  "repository": {},
  "keywords": [],
  "author": "Syogo Hayashi",
  "license": "proprietary",
  "private": "true",
  "bugs": {},
  "homepage": "",
  "devDependencies": {
    "textlint": "^12.1.0",
    "textlint-rule-preset-ja-spacing": "^2.2.0",
    "textlint-rule-preset-ja-technical-writing": "^7.0.0",
    "textlint-rule-preset-jtf-style": "^2.3.12",
    "textlint-rule-prh": "^5.3.0",
    "textlint-rule-spellcheck-tech-word": "^5.0.0"
  },
  "dependencies": {
    "textlint-filter-rule-allowlist": "^4.0.0",
    "textlint-filter-rule-comments": "^1.2.2"
  }
}

.textlintrc.json

{                                                                                                                                                        
    "filters": {
        "comments": true,
        "allowlist":{
            "allow": [
                "/<!--\\sstrip\\sBEGIN\\s-->[\\s\\S]*?<!--\\sstrip\\sEND\\s-->/m",
                "/\\s?{#[^}]*}/",
                "/\\[@[^\\]]*\\]/",
                "/Table:.*/",
                "/\\[\\^[^\\]]*\\]/",
                "/\\s{-}/",
                "/\\s{#.*/",
                "redis-cli",
                "疑似乱数生成器",
                "REdis Serialization Protocol",
                "/倍精度浮動小数点数型?/",
                "Moduleセクション",
                "redis-benchmark",
                "redis-rb",
                "php-redis",
                "go-redis",
                "redis-py",
                "redis-rs",
                "scala-redis",
                "redis.conf",
                "module.c",
                "redis-ver",
                "redis-bits",
                "一つ一つ",
                "redis-server",
                "/<span\\stitle>[^<]*<\\/title>/"
             ]
                }
    },
    "rules": {
        "preset-ja-technical-writing": {
            "arabic-kanji-numbers": false, // false positiveが多すぎる、warnでは使いたいがerrorでは厳しい
            "no-exclamation-question-mark": false,
            "no-doubled-joshi": {
                "allow": ["も","や","が", "か"],
                "separatorCharacters": [ ".", ".", "。", "?", "!", "?", "!", "→" ]
            },
            "max-kanji-continuous-len": {
                "max": 8,
                "allow": ["中華人民共和国工業情報化部"]
            },
            "sentence-length":{
                "max": 108
            },
            "ja-no-successive-word": {
                "allow": ["…"]
            }
        },
        "preset-jtf-style": {
            "4.2.9.ダッシュ(-)": false
        },
        "prh": {
            "rulePaths": [
                ".prh.yaml"
            ]
        }
    }
}

.prh.yaml

# vim:foldmethod=marker:
version: 1

# Some Rules for WEB+DB PRESS from https://github.com/prh/rules/blob/master/media/WEB%2BDB_PRESS.yml {{{
meta:
  reviewer:
    - vvakame
    - mhidaka
  related: http://gihyo.jp/magazine/wdpress
  rules:   https://github.com/prh/rules

# 非公開リポジトリだけど入手元はこのあたりから。公開許可はもらってある。現時点最新版ぽい。
# https://github.com/vvakame/webdb-frontend2016/pull/59
# > ただし、カタカナ語やアルファベットなどについてはそのまま使えなさそうだったため外してあります。
# > また、うまくprhのルールとできなかったものも外しています。
# とのこと。
# 本家webdbrules.rel から @murashitas さんセンスで微妙そうなのが抜いてあるようだ。

# 他のファイルとpattern expectedの順序が逆なのに注意
# 株式会社 のあたりから正常に戻ってるので更に注意

rules:
  - pattern: /作([らりるれろっ])/
    expected: つく$1
  - pattern:
      - 結びつ
      - むすびつ
    expected: 結び付
  - pattern:
      - 受けつ
      - うけつ
    expected: 受け付
  - pattern:
      - 受けと
      - うけと
    expected: 受け取
  - pattern: 日付け
    expected: 日付
  - pattern: つきあ
    expected: 付き合
  - pattern:
      - つけ加
      - つけくわ
    expected: 付け加
  - pattern: つけた
    expected: 付け足
  - pattern: 関連づけ
    expected: 関連付け
  - pattern: 受付
    expected: 受け付け
  - pattern: 位置づけ
    expected: 位置付け
  - pattern: 意味づけ
    expected: 意味付け
  - pattern: 気をつ
    expected: 気を付
  - pattern: 気づ
    expected: 気付
  - pattern: 近づ
    expected: 近付
  - pattern:
      - 検討がつ
      - 検討がつ
    expected: 見当が付
  - pattern: 思いつく
    expected: 思い付く
  - pattern:
      - 1つ1つ
      - 一つひとつ
      - ひとつひとつ
    expected: 一つ一つ
  - pattern:
      - 一人ひとり
      - ひとりひとり
      - 1人1人
    expected: 一人一人
  - pattern:
      - 一つめ
      - ひとつめ
      - 一つ目
      - ひとつ目
    expected: 1つ目
  - pattern:
      - 二つめ
      - ふたつめ
      - 二つ目
      - ふたつ目
    expected: 2つ目
  - pattern:
      - 三つめ
      - みっつめ
      - 三つ目
      - みっつ目
    expected: 3つ目
  - pattern:
      - 四つめ
      - よっつめ
      - 四つ目
      - よっつ目
    expected: 4つ目
  - pattern:
      - 五つめ
      - いつつめ
      - 五つ目
      - いつつ目
    expected: 5つ目
  - pattern:
      - 六つめ
      - むっつめ
      - 六つ目
      - むっつ目
    expected: 6つ目
  - pattern:
      - 七つめ
      - ななつめ
      - 七つ目
      - ななつ目
    expected: 7つ目
  - pattern:
      - 八つめ
      - やっつめ
      - 八つ目
      - やっつ目
    expected: 8つ目
  - pattern:
      - 九つめ
      - ここのつめ
      - 九つ目
      - ここのつ目
    expected: 9つ目
  - pattern:
      - 一番目
      - 一番め
    expected: 1番目
  - pattern:
      - 二番目
      - 二番め
    expected: 2番目
  - pattern:
      - 三番目
      - 三番め
    expected: 3番目
  - pattern:
      - 四番目
      - 四番め
    expected: 4番目
  - pattern:
      - 五番目
      - 五番め
    expected: 5番目
  - pattern:
      - 六番目
      - 六番め
    expected: 6番目
  - pattern:
      - 七番目
      - 七番め
    expected: 7番目
  - pattern:
      - 八番目
      - 八番め
    expected: 8番目
  - pattern:
      - 九番目
      - 九番め
    expected: 9番目
  - pattern:
      - 十番目
      - 十番め
    expected: 10番目
  - pattern:
      - ふたつ
      - 二つ
    expected: 2つ
  - pattern:
      - みっつ
      - 三つ
    expected: 3つ
  - pattern:
      - よっつ
      - 四つ
    expected: 4つ
  - pattern: 五つ
    expected: 5つ
  - pattern: /([^行])いつつ/
    expected: $15つ
  - pattern:
      - むっつ
      - 六つ
    expected: 6つ
  - pattern:
      - ななつ
      - 七つ
    expected: 7つ
  - pattern:
      - やっつ
      - 八つ
    expected: 8つ
  - pattern:
      - ここのつ
      - 九つ
    expected: 9つ
  - pattern: /([\d]+)つめ
    expected: $1つ目
  - pattern: /([\d]+)番め/
    expected: $1番目
  - pattern: /いちばん([^め目])|1番([^め目])/
    expected: 一番$1
  - pattern:
      - ただ1つ
      - 唯1つ
      - 唯一つ
    expected: ただ一つ
  - pattern: もう1度
    expected: もう一度
  - pattern: もう1つ
    expected: もう一つ
  - pattern: 1つは
    expected: 一つは
  - pattern: 一目了然
    expected: 一目瞭然
  - pattern: いちがいに
    expected: 一概に
  - pattern: 一種類
    expected: 1種類
  - pattern: 1種
    expected: 一種
  - pattern: いっしょ
    expected: 一緒
  - pattern:
      - ひととおり
      - ひと通り
      - 一とおり
    expected: 一通り
  - pattern: 1度
    expected: 一度
  - pattern: 1部
    expected: 一部
  - pattern: /1文([^字])/
    expected: 一文$1
  - pattern: 1例
    expected: 一例
  - pattern: 2重
    expected: 二重
  - pattern: 3重
    expected: 三重
  - pattern: /([何数\\d一二三四五六七八九十0-9])箇所/
    expected: $1ヵ所
  - pattern: /([何数\\d一二三四五六七八九十0-9])個所/
    expected: $1ヵ所
  - pattern: ヶ
    expected: ヵ
  - pattern:
      - 箇月
      - か月
      - 個月
      - ケ月
      - カ月
    expected: ヵ月
  - pattern:
      - 箇国
      - か国
      - 個国
      - ケ国
      - カ国
    expected: ヵ国
  - pattern:
      - か所
      - ケ所
      - カ所
    expected: ヵ所
  - pattern: 個所
    expected: 箇所
  - pattern: 曖昧
    expected: あいまい
  - pattern: 敢えて
    expected: あえて
  - pattern: /煽([らりるれろっ])/
    expected: あお$1
  - pattern: 飽くまで
    expected: あくまで
  - pattern: 憧れ
    expected: あこがれ
  - pattern: 辺り
    expected: あたり
  - pattern: 後々
    expected: あとあと
  - pattern:
      - 貴方
      - 貴女
    expected: あなた
  - pattern: 予め
    expected: あらかじめ
  - pattern: 改めて
    expected: あらためて
  - pattern:
      - 有り難
      - 有難
    expected: ありがた
  - pattern: 有りま
    expected: ありま
  - pattern: 或いは
    expected: あるいは
  - pattern:
      - 有る
      - 在る
    expected: ある
  - pattern: /一体([^に化感])/
    expected: いったい$1
  - pattern: 一向に
    expected: いっこうに
  - pattern: 一旦
    expected: いったん
  - pattern: 如何
    expected: いかが
  - pattern: 如何に
    expected: いかに
  - pattern:
      - ゆきま
      - 行きま
    expected: いきま
  - pattern: 幾つ
    expected: いくつ
  - pattern: 幾ら
    expected: いくら
  - pattern: 幾分
    expected: いくぶん
  - pattern: 些か
    expected: いささか
  - pattern:
      - 何れ
      - いづれ
    expected: いずれ
  - pattern: /頂([いかきくけこ])|戴([いかきくけこ])/
    expected: いただ$1
  - pattern: 至って
    expected: いたって
  - pattern: 一々
    expected: いちいち
  - pattern: /何時([^間])/
    expected: いつ$1
  - pattern: 一杯
    expected: いっぱい
  - pattern: /厭([わいうえおっ])/
    expected: いと$1
  - pattern: おります
    expected: います
  - pattern: 今や
    expected: いまや
  - pattern: 色々
    expected: いろいろ
  - pattern: 色んな
    expected: いろんな
  - pattern: 所謂
    expected: いわゆる
  - pattern: ゆう
    expected: いう
  - pattern: /云([いうわっ])/
    expected: い$1
  - pattern: /要([らりるれろっ])/
    expected: い$1
  - pattern: /居([るた])/
    expected: い$1
  - pattern: /穿([たちつてとっ])/
    expected: うが$1
  - pattern:
      - 憂っとおし
      - 憂っとうし
      - うっとおし
      - 鬱陶し
    expected: うっとうし
  - pattern:
      - うなづ
      - 頷
    expected: うなず
  - pattern: /上手([いく])|美味([いく])|ウマ([いく])/
    expected: うま$1
  - pattern: 嬉し
    expected: うれし
  - pattern: 美味し
    expected: おいし
  - pattern: 於いて
    expected: おいて
  - pattern: 大掛かり
    expected: おおがかり
  - pattern: 概ね
    expected: おおむね
  - pattern:
      - お陰
      - 御陰
    expected: おかげ
  - pattern:
      - 押し並べて
      - 押しなべて
    expected: おしなべて
  - pattern: 自ずと
    expected: おのずと
  - pattern: 恐らく
    expected: おそらく
  - pattern: お疲れ様
    expected: お疲れさま
  - pattern: 面白
    expected: おもしろ
  - pattern: 却って
    expected: かえって
  - pattern: 片仮名
    expected: カタカナ
  - pattern: 且つ
    expected: かつ
  - pattern: /叶([わいうえおっ])/
    expected: かな$1
  - pattern: 仮名
    expected: かな
  - pattern: /構([いうわっ])/
    expected: かま$1
  - pattern: /痒([いかくさみ])/
    expected: かゆ$1
  - pattern:
      - 綺麗
      - 奇麗
    expected: きれい
  - pattern: /括([らりるれろっ])/
    expected: くく$1
  - pattern: 下さい
    expected: ください
  - pattern: /([^解])決して|([^解])けして/
    expected: $1けっして
  - pattern: /拘([らりるれろっ])/
    expected: こだわ$1
  - pattern: 諺
    expected: ことわざ
  - pattern: 零れ
    expected: こぼれ
  - pattern: この章
    expected: 本章
  - pattern: /この様([なに])/
    expected: このよう$1
  - pattern: 年頃
    expected: 年ごろ
  - pattern: 歳頃
    expected: 歳ごろ
  - pattern: 日頃
    expected: 日ごろ
  - pattern: 頃
    expected: ころ
  - pattern: /遡([らりるれろっ])/
    expected: さかのぼ$1
  - pattern: さしづめ
    expected: さしずめ
  - pattern: 流石
    expected: さすが
  - pattern: 早速
    expected: さっそく
  - pattern: /捌([いかきくけこ])/
    expected: さば$1
  - pattern: 様々
    expected: さまざま
  - pattern: /晒([さしすせそ])/
    expected: さら$1
  - pattern: 仕掛け
    expected: しかけ
  - pattern: 仕方
    expected: しかた
  - pattern: /([^正率垂安素愚])直に/
    expected: $1じかに
  - pattern: /仕組([^み])/
    expected: しくみ$1
  - pattern: 仕組み
    expected: しくみ
  - pattern: しし
    expected: し
  - pattern: しだい
    expected: 次第
  - pattern:
      - 暫く
      - 暫らく
    expected: しばらく
  - pattern: いたします
    expected: します
  - pattern: 所詮
    expected: しょせん
  - pattern:
      - しようがない
      - 仕様がない
    expected: しょうがない
  - pattern: 知れない
    expected: しれない
  - pattern: 知れません
    expected: しれません
  - pattern: 随分
    expected: ずいぶん
  - pattern: 直ぐ
    expected: すぐ
  - pattern: づくめ
    expected: ずくめ
  - pattern: /凄([いかくけ])/
    expected: すご$1
  - pattern: づつ
    expected: ずつ
  - pattern: 既に
    expected: すでに
  - pattern:
      - すなはち
      - 即ち
    expected: すなわち
  - pattern:
      - 素晴らし
      - 素晴し
    expected: すばらし
  - pattern: 素早
    expected: すばや
  - pattern: 須らく
    expected: すべからく
  - pattern: 折角
    expected: せっかく
  - pattern: 是非
    expected: ぜひ
  - pattern: そうゆう
    expected: そういう
  - pattern: 其々
    expected: それぞれ
  - pattern: 其れ
    expected: それ
  - pattern: /揃([わいうえおっ])/
    expected: そろ$1
  - pattern: 大体
    expected: だいたい
  - pattern: 大抵
    expected: たいてい
  - pattern: 大変
    expected: たいへん
  - pattern: 沢山
    expected: たくさん
  - pattern:
      - 高々
      - 高高
      - 高だか
    expected: たかだか
  - pattern: /叩([かきくけこ])/
    expected: たた$1
  - pattern: 但し
    expected: ただし
  - pattern: 直ち
    expected: ただち
  - pattern: 著者|私
    expected: 筆者
  - pattern: /辿([らりるれろっ])/
    expected: たど$1
  - pattern: 例えば
    expected: たとえば
  - pattern:
      - 譬え
      - 喩え
      - 例え
    expected: たとえ
  - pattern: たのし
    expected: 楽し
  - pattern: 度々
    expected: たびたび
  - pattern: /溜ま([らりるれろっ])/
    expected: たま$1
  - pattern: 因みに
    expected: ちなみに
  - pattern: 丁度
    expected: ちょうど
  - pattern: 遂に
    expected: ついに
  - pattern: /掴([まみむめもん])/
    expected: つか$1
  - pattern: /繋([らりるれろっ])/
    expected: つなが$1
  - pattern: /繋([いがぎぐげご])/
    expected: つな$1
  - pattern: つねに
    expected: 常に
  - pattern: /つまづ([いかきくけこ])|躓([いかきくけこ])/
    expected: つまず$1
  - pattern: /辛([いかくけ])/
    expected: つら$1
  - pattern: /ずら([いかくけ])/
    expected: づら$1
  - pattern: んで([たなるろよ])
    expected: んでい$1
  - pattern: /ってな(?!く)/
    expected: っていな
    specs:
      - from: わかってない
        to:   わかっていない
      - from: 言ってない
        to:   言っていない
      - from: 走ってない
        to:   走っていない
      - from: 持てない
        to:   持てない
      - from: 消えてなくなる
        to:   消えてなくなる
  - pattern: /([^捨当立])てる/
    expected: $1ている
  - pattern: /出来([かがのをは過す損ずなまるたれてそ])/
    expected: でき$1
  - pattern:
      - 出来上
      - 出来あ
      - でき上
    expected: できあ
  - pattern:
      - することが可能です
      - することが可能になります
    expected: できます
  - pattern:
      - することができ
      - することが可能で
    expected: でき
  - pattern: するようになります
    expected: します
  - pattern: るようになります
    expected: ます
  - pattern: て欲し
    expected: てほし
  - pattern: で欲し
    expected: でほし
  - pattern: とうり
    expected: とおり
  - pattern: ときより
    expected: ときおり
  - pattern: 時々
    expected: ときどき
  - pattern: とくに
    expected: 特に
  - pattern:
      - 何処
      - 何所
    expected: どこ
  - pattern: 途端
    expected: とたん
  - pattern: /(ピン)?留([まめ])/
    regexpMustEmpty: $1
    expected: とど$2
    specs:
      - from: ピン留め
        to:   ピン留め
      - from: 踏み留まる
        to:   踏みとどまる
  - pattern: /とは言え([^なまる])/
    expected: とはいえ$1
  - pattern: 共に
    expected: ともに
  - pattern: /捉え([ずなにぬまよらたてるろっ方中])/
    expected: とらえ$1
  - pattern: 囚わ
    expected: とらわ
  - pattern:
      - 取りあえず
      - 取り合えず
      - 取り敢えず
    expected: とりあえず
  - pattern: /([^有])無([かくいけし])/
    expected: $1な$2
  - pattern: /尚([^早徳])/
    expected: なお$1
  - pattern:
      - 名残
      - 名残り
    expected: なごり
  - pattern: 何故
    expected: なぜ
  - pattern:
      - 何某か
      - 某か
    expected: なにがしか
  - pattern: /成り?済ま?([さしすせそ])|成り?すま([さしすせそ])/
    expected: なりすま$1
  - pattern: ですので、
    expected: なので、
  - pattern: 何となく
    expected: なんとなく
  - pattern: /に当た([っらりるれろ])/
    expected: にあた$1
  - pattern: /難([いく])/
    expected: にく$1
  - pattern: /の様([なにだで])/
    expected: のよう$1
  - pattern: /育([まみむめもん])/
    expected: はぐく$1
  - pattern: /([^手])筈/
    expected: $1はず
  - pattern: 甚だ
    expected: はなはだ
  - pattern: /孕([まみむめもんっ])/
    expected: はら$1
  - pattern:
      - 遥か
      - 遙か
    expected: はるか
  - pattern: 贔屓
    expected: ひいき
  - pattern: しいては
    expected: ひいては
  - pattern:
      - 独り善がり
      - 独りよがり
    expected: ひとりよがり
  - pattern: 一塊
    expected: ひとかたまり
  - pattern:
      - 雛型
      - 雛形
      - ひな形
      - ひながた
    expected: ひな型
  - pattern: /閃([かきくけこい])/
    expected: ひらめ$1
  - pattern: ふだん
    expected: 普段
  - pattern: 相応し
    expected: ふさわし
  - pattern:
      - 付箋
      - 付せん
    expected: ふせん
  - pattern: 殆ど
    expected: ほとんど
  - pattern: 正に
    expected: まさに
  - pattern:
      - 益々
      - 増々
    expected: ますます
  - pattern: 先ず
    expected: まず
  - pattern: /瞬([いかきくけこ])/
    expected: またた$1
  - pattern: 又は
    expected: または
  - pattern:
      - 真っ新
      - 真っさら
    expected: まっさら
  - pattern: 迄
    expected: まで
  - pattern: 纏ま
    expected: まとま
  - pattern: 纏め
    expected: まとめ
  - pattern: 稀
    expected: まれ
  - pattern: /剥([いかきくけこ])/
    expected: む$1
  - pattern: 寧ろ
    expected: むしろ
  - pattern: 滅多
    expected: めった
  - pattern:
      - めんどくさ
      - めんどうくさ
      - 面倒臭
      - めんど臭
      - めんどう臭
    expected: 面倒くさ
  - pattern: めんどう
    expected: 面倒
  - pattern: 目論見
    expected: もくろみ
  - pattern: 勿論
    expected: もちろん
  - pattern: 勿体な
    expected: もったいな
  - pattern: もっとも
    expected: 最も
  - pattern: 尤も
    expected: もっとも
  - pattern: /貰([わいうえおっ])/
    expected: もら$1
  - pattern: 易し
    expected: やさし
  - pattern: 易々
    expected: やすやす
  - pattern: 厄介
    expected: やっかい
  - pattern: やっぱり
    expected: やはり
  - pattern: 闇雲
    expected: やみくも
  - pattern: 止め
    expected: やめ
  - pattern: やり取り
    expected: やりとり
  - pattern: 他所
    expected: よそ
  - pattern: /(?:因|依)([らりるれろっ])/
    expected: よ$1
  - pattern: 僅か
    expected: わずか
  - pattern: 心地よ
    expected: 心地良
  - pattern: /判([らりるれろっ])/
    expected: わか$1
  - pattern: /解([らりるれろっ])/
    expected: わか$1
  - pattern:
      - 気をつか
      - 気を使
    expected: 気を遣
  - pattern: 小さ目
    expected: 小さめ
  - pattern: 大き目
    expected: 大きめ
  - pattern: 少な目
    expected: 少なめ
  - pattern: /多目([^的])/
    expected: 多め$1
  - pattern: 低目
    expected: 低め
  - pattern: 高目
    expected: 高め
  - pattern: /([のる])かわり/
    expected: $1代わり
  - pattern: /代([らりるれろっ])/
    expected: 代わ$1
  - pattern: 全て
    expected: すべて
  - pattern: 全く
    expected: まったく
  - pattern: /([にも])関わらず|([にも])関らず|([にも])拘わらず|([にも])拘らず/
    expected: $1かかわらず
  - pattern: /埋めこ([まむめもん])|うめこ([まむめもん])/
    expected: 埋め込$1
  - pattern: /置き変([わえ])|置き代([わえ])|置き替([わえ])|置きか([わえ])/
    expected: 置き換$1
  - pattern: /書きこ([まみむめもん])|かきこ([まみむめもん])/
    expected: 書き込$1
  - pattern: /書き替([えわ])|書きか([えわ])|かきか([えわ])|書換([えわ])|書き変([えわ])/
    expected: 書き換$1
  - pattern: /読みこ([まみむめもん])|よみこ([まみむめもん])|読込([まみむめもん])/
    expected: 読み込$1
  - pattern: /読みか([えわ])|よみか([えわ])|読替([えわ])|読換([えわ])|読み換([えわ])/
    expected: 読み替$1
  - pattern: /きりか([えわ])|切り換([えわ])|切換([えわ])|切替([えわ])/
    expected: 切り替$1
  - pattern: /くみこ([まむめもん])|組込([まむめもん])|組みこ([まむめもん])/
    expected: 組み込$1
  - pattern: /組合([わいうえおっ])|くみあ([わいうえおっ])/
    expected: 組み合$1
  - pattern: /組合([さしすせそっ])|くみあわ([さしすせそっ])/
    expected: 組み合わ$1
  - pattern: /くみか([わいうえおっ])|組替([わいうえおっ])/
    expected: 組み替$1
  - pattern: /ことな([りるれっ])/
    expected: 異な$1
  - pattern: /立ち合([わいうえおっ])|立ち遭([わいうえおっ])|立ち逢([わいうえおっ])/
    expected: 立ち会$1
  - pattern: /取りく([まみむめもん])|とりく([まみむめもん])|とり組([まみむめもん])/
    expected: 取り組$1
  - pattern: /取り変([わえ])|取り代([わえ])|取り換([わえ])|取りか([わえ])/
    expected: 取り替$1
  - pattern: /話し会([わいうえおっ])|話し遭([わいうえおっ])|話し逢([わいうえおっ])|話しあ([わいうえおっ])/
    expected: 話し合$1
  - pattern: /ひきつ([がぎぐげご])|引きつ([がぎぐげご])/
    expected: 引き継$1
  - pattern: /引き替([えわ])|引きか([えわ])|ひきか([えわ])|引換([えわ])|引き変([えわ])/
    expected: 引き換$1
  - pattern: /目が会([わいうえおっ])|目が遭([わいうえおっ])|目が逢([わいうえおっ])|目があ([わいうえおっ])/
    expected: 目が合$1
  - pattern:
      - よびだ
      - 呼びだ
      - 呼出
    expected: 呼び出
  - pattern: 作りだ
    expected: 作り出
  - pattern: 読みだ
    expected: 読み出
  - pattern: 貼りだ
    expected: 貼り出
  - pattern: 取りだ
    expected: 取り出
  - pattern:
      - とりあげ
      - 取りあげ
    expected: 取り上げ
  - pattern: /とりこ([まみむめもん])|取りこ([まみむめもん])|とり込([まみむめもん])/
    expected: 取り込$1
  - pattern: 作りあ
    expected: 作り上
  - pattern:
      - からみあ
      - からみ合
      - 絡みあ
    expected: 絡み合
  - pattern: からっぽ
    expected: 空っぽ
  - pattern: 売上げ
    expected: 売り上げ
  - pattern:
      - 巡り会
      - 巡り遭
      - 巡り逢
    expected: 巡り合
  - pattern: 割込み
    expected: 割り込み
  - pattern: 割当
    expected: 割り当て
  - pattern: 割切り
    expected: 割り切り
  - pattern:
      - しめくく
      - 締め括
    expected: 締めくく
  - pattern: 使いなれ
    expected: 使い慣れ
  - pattern:
      - 使いわけ
      - つかいわけ
    expected: 使い分け
  - pattern: 落としこ
    expected: 落とし込
  - pattern: 切りわけ
    expected: 切り分け
  - pattern:
      - 間に会
      - 間に遭
      - 間に逢
    expected: 間に合
  - pattern:
      - 災難に合
      - 災難に会
      - 災難に逢
    expected: 災難に遭
  - pattern:
      - 事故に合
      - 事故に会
      - 事故に逢
    expected: 事故に遭
  - pattern:
      - 気が会
      - 気が遭
      - 気が逢
    expected: 気が合$1
  - pattern:
      - 落ち会
      - 落ち遭
      - 落ち逢
    expected: 落ち合
  - pattern: /ふるま([わいうえおっ])|振舞([わいうえおっ])|振るま([わいうえおっ])/
    expected: 振る舞$1
  - pattern: /みはから([いうえっ])/
    expected: 見計ら$1
  - pattern: みえ
    expected: 見え
  - pattern: みあた
    expected: 見当た
  - pattern:
      - いいわけ
      - 言訳
      - 言いわけ
    expected: 言い訳
  - pattern: いえない
    expected: 言えない
  - pattern: いえなく
    expected: 言えなく
  - pattern: いえる
    expected: 言える
  - pattern: いわれる
    expected: 言われる
  - pattern:
      - 未だ
      - 今だ
    expected: いまだ
  - pattern:
      - 今ひとつ
      - 今一つ
      - いま一つ
    expected: いまひとつ
  - pattern:
      - 今更
      - 今さら
    expected: いまさら
  - pattern: 今頃
    expected: 今ごろ
  - pattern: /([^な])いままで/
    expected: $1今まで
  - pattern: 今時
    expected: 今どき
  - pattern: 今更
    expected: 今さら
  - pattern: 尚更
    expected: なおさら
  - pattern: 更なる
    expected: さらなる
  - pattern: /([^変])更に/
    expected: $1さらに
  - pattern: やむをえ|止むを得
    expected: やむを得
  - pattern: すこし
    expected: 少し
  - pattern: /すくな(?!り|る)/
    expected: 少な
    specs:
      - from: すくなく
        to:   少なく
      - from: わかりやすくなり
        to:   わかりやすくなり
  - pattern: 少い
    expected: 少ない
  - pattern: おこし
    expected: 起こし
  - pattern: おこす
    expected: 起こす
  - pattern: 何げな
    expected: 何気な
  - pattern: なにか
    expected: 何か
  - pattern: なにしろ
    expected: 何しろ
  - pattern:
      - なにとそ
      - なにとぞ
      - 何卒
    expected: 何とぞ
  - pattern: なんど
    expected: 何度
  - pattern: なんら
    expected: 何ら
  - pattern: なんの
    expected: 何の
  - pattern: 生れ
    expected: 生まれ
  - pattern: それ故
    expected: それゆえ
  - pattern: /([^事])故に/
    expected: $1ゆえに
  - pattern: 程々
    expected: ほどほど
  - pattern: これ程
    expected: これほど
  - pattern: それ程
    expected: それほど
  - pattern: あれ程
    expected: あれほど
  - pattern: どれ程
    expected: どれほど
  - pattern: なる程
    expected: なるほど
  - pattern: さきほど|先程
    expected: 先ほど
  - pattern: 本紙
    expected: 本誌
  - pattern: /(?:基|基づ|基ず|もとず)([いかきくけこ])/
    expected: もとづ$1
  - pattern:
      - 元々
      - 本々
    expected: もともと
  - pattern: /基([^数準盤板底礎本])/
    expected: もと$1
  - pattern: /([^追])及び/
    expected: $1および
  - pattern: した上
    expected: したうえ
  - pattern: その上
    expected: そのうえ
  - pattern: かたまり
    expected: 塊
  - pattern: やりかた
    expected: やり方
  - pattern: ありかた
    expected: あり方
      #  - pattern: かた
      #    expected: 方
  - pattern: 済まな
    expected: すまな
  - pattern: 済みません
    expected: すみません
  - pattern: あたりまえ
    expected: 当たり前
  - pattern: /汚な([かくいけ])/
    expected: 汚$1
  - pattern: /果([さしすせそ])/
    expected: 果た$1
  - pattern: /([^排人])他([^ァ-ヶ社者人方])/
    expected: $1ほか$2
  - pattern: 後ほど
    expected: のちほど
  - pattern: うしろ
    expected: 後ろ
  - pattern: 同士
    expected: どうし
  - pattern:
      - 頭が堅
      - 頭が硬
    expected: 頭が固
  - pattern: あつめ
    expected: 集め
  - pattern: /あては([まめ])/
    expected: 当ては$1
  - pattern: 意志決定
    expected: 意思決定
  - pattern: 威大
    expected: 偉大
  - pattern: いっそう
    expected: 一層
  - pattern: おおまか
    expected: 大まか
  - pattern: あふれ
    expected: 溢れ
  - pattern: 窺え
    expected: うかがえ
  - pattern:
      - 窺い知
      - 伺い知
    expected: うかがい知
  - pattern: /失な([わいうえおっ])/
    expected: 失$1
  - pattern: /おお([かいくけこ])/
    expected: 多$1
  - pattern: そって
    expected: 沿って
  - pattern: /押え([なたまれる])/
    expected: 押さえ$1
  - pattern: 押し進め
    expected: 推し進め
  - pattern: /折返([さしすせそ])/
    expected: 折り返$1
  - pattern: /加([らりるれろっ])/
    expected: 加わ$1
  - pattern: 静的型付け言語
    expected: 静的型付き言語
  - pattern: 動的型付け言語
    expected: 動的型付き言語
  - pattern: 変わり映え
    expected: 代わり映え
  - pattern: 狗肉の策
    expected: 苦肉の策
  - pattern: /こわれ([たちつてとらりるれろっ])/
    expected: 壊れ$1
  - pattern: 混み入っ
    expected: 込み入っ
  - pattern: /怪([いまみむめも])/
    expected: 怪し$1
  - pattern: おのおの
    expected: 各々
  - pattern: 最新の注意
    expected: 細心の注意
  - pattern: 列志向
    expected: 列指向
  - pattern: 行志向
    expected: 行指向
  - pattern: オブジェクト志向
    expected: オブジェクト指向
  - pattern: ドキュメント志向
    expected: ドキュメント指向
  - pattern: アスペクト志向
    expected: アスペクト指向
  - pattern: 粗結合
    expected: 疎結合
  - pattern: 確かに
    expected: たしかに
  - pattern: /たしか([^に])/
    expected: 確か
  - pattern: /確め([たなまれる])/
    expected: 確かめ$1
  - pattern: /かっこ([^良悪いイ])|カッコ([^良悪いイ])/
    expected: 括弧$1
  - pattern: かんたん
    expected: 簡単
  - pattern: 業社
    expected: 業者
  - pattern: /陥([たなま])/
    expected: 陥れ$1
  - pattern: 危い
    expected: 危ない
  - pattern: /喜し([かくいけ])/
    expected: 喜ばし$1
  - pattern: /起([さしすせそらりるれろっ])/
    expected: 起こ$1
  - pattern: /輝し([かくいけ])/
    expected: 輝かし$1
  - pattern: /恐し([かくいけ])/
    expected: 恐ろし$1
  - pattern: 近頃
    expected: 近ごろ
  - pattern: /隣合([わいうえおっ])/
    expected: 隣り合$1
  - pattern:
      - 決っ
      - きまっ
    expected: 決まっ
  - pattern:
      - 現われ
      - あらわれ
    expected: 現れ
  - pattern: /かぎ([らりるれろっ])/
    expected: 限$1
  - pattern: /語([わいうえお])/
    expected: 語ら$1
  - pattern: /交([らりるれろっ])/
    expected: 交わ$1
  - pattern: /行な([わいうえおっ])|おこな([わいうえおっ])/
    expected: 行$1
  - pattern: あわて
    expected: 慌
  - pattern: あわ
    expected: 合わ
  - pattern: /混([らりるれろっ])/
    expected: 混ざ$1
  - pattern: おも([いうわ])
    expected: 思$1
  - pattern: 差違
    expected: 差異
  - pattern:
      - プレフィックス
      - プレフィクス
      - プリフィックス
    expected: プレフィックス
  - pattern:
      - サフィックス
      - サフィックス
      - サフィクス
    expected: サフィックス
  - pattern: 事前準備
    expected: 下準備
  - pattern: 前準備
    expected: 下準備
  - pattern: 誌幅
    expected: 紙幅
  - pattern: 紙面
    expected: 誌面
  - pattern: /賜わ([らりるれろっ])/
    expected: 賜$1
  - pattern: しだいに
    expected: 次第に
  - pattern: /すて([たちつてとらりるれろっ])/
    expected: 捨て$1
  - pattern: 成功を納め
    expected: 成功を収め
  - pattern: /おわ([らりるれろっ][^か])/
    expected: 終わ$1
  - pattern: /終([らりるれろっ])/
    expected: 終わ$1
  - pattern: /集([らりるれろっ])/
    expected: 集ま$1
  - pattern: 充分
    expected: 十分
  - pattern: したがう
    expected: 従う
  - pattern: とりま
    expected: 取り巻
  - pattern: とうてい
    expected: 到底
  - pattern: /柔か([だない])/
    expected: 柔らか$1
  - pattern: /重([ずじ])/
    expected: 重ん$1
  - pattern: /畳込([まみむめも])/
    expected: 畳み込$1
  - pattern: 定形的
    expected: 定型的
  - pattern:
      - 出合
      - 出遭
      - 出逢
    expected: 出会
  - pattern:
      - できごと
      - でき事
      - 出来ごと
    expected: できごと
  - pattern: 適正
    expected: 適性
  - pattern: /助([たなまれる])/
    expected: 助け$1
  - pattern:
      - 問合せ
      - 問い合せ
      - 問合わせ
      - 問いあわせ
      - といあわせ
    expected: 問い合わせ
  - pattern: /承わ([らりるれろっ])/
    expected: 承$1
  - pattern: ご紹介
    expected: 紹介
  - pattern: 晴やか
    expected: 晴れやか
  - pattern: /清か([だな])/
    expected: 清らか$1
  - pattern: おいたち
    expected: 生い立ち
  - pattern: /積([らりるれろっ])/
    expected: 積も$1
  - pattern: ご説明
    expected: 説明
  - pattern: 憎しい
    expected: 憎らしい
  - pattern: /つづ([^つ])/
    expected: 続$1
  - pattern:
      - 取って変
      - 取って換
      - 取って替
    expected: 取って代
  - pattern:
      - 存知
      - ぞんじ
    expected: 存じ
  - pattern: だれ
    expected: 誰
  - pattern: /断わ([らりるれろっ])/
    expected: 断$1
  - pattern: 内臓
    expected: 内蔵
  - pattern: /なか([かでに])/
    expected: 中$1
  - pattern: /なら(ば(?!、)|[びぶべぼん])/
    expected: 並$1
    specs:
      - from: ならびに
        to:   並びに
      - from: ならば、
        to:   ならば、
  - pattern: /著わ([さしすせそ])/
    expected: 著$1
  - pattern: 著い
    expected: 著しい
  - pattern:
      - 手に追えな
      - てに追えな
      - てに負えな
      - てにおえな
      - 手におえな
    expected: 手に負えな
  - pattern: /定([らりるれろっ])/
    expected: 定ま$1
  - pattern: /当([らりるれろっ])/
    expected: 当た$1
  - pattern:
      - 踏え
      - ふまえ
    expected: 踏まえ
  - pattern: /おなじ([^み])/
    expected: 同じ$1
  - pattern: なじみ
    expected: 馴染み
  - pattern:
      - 引きづ
      - ひきづ
    expected: 引きず
  - pattern: むずかしい
    expected: 難しい
  - pattern: /まか([さしすせそ])/
    expected: 任$1
  - pattern: /悲([まみむめも])/
    expected: 悲し$1
  - pattern:
      - 較べ
      - くらべ
    expected: 比べ
  - pattern:
      - かならず
      - 必らず
    expected: 必ず
  - pattern: /表わ([さしすせそ])|あらわ([さしすせそ])/
    expected: 表$1
  - pattern: /浮([ばびぶべぼん])/
    expected: 浮か$1
  - pattern: /わかれ([^ば])/
    expected: 分かれ$1
  - pattern: /わけ([らるれろてよ、])/
    expected: 分け$1
  - pattern: /聞え([なたまれる])/
    expected: 聞こえ$1
  - pattern: /変([らりるれろっ])/
    expected: 変わ$1
  - pattern: /捕え([なたまれる])/
    expected: 捕らえ$1
  - pattern: /暮([さしすせそ])/
    expected: 暮ら$1
  - pattern: /([^鮮])明か/
    expected: $1明らか
  - pattern: もどって
    expected: 戻って
  - pattern:
      - 返り値
      - 返値
    expected: 戻り値
  - pattern: /勇し([かくい])/
    expected: 勇まし$1
  - pattern: /揺([がぎぐげご])/
    expected: 揺ら$1
  - pattern: /頼し([かくい])/
    expected: 頼もし$1
  - pattern: /冷([さしすせそ])/
    expected: 冷や$1
  - pattern: /はさ([みむめもん])/
    expected: 挟$1
  - pattern: /はさま([^ざ])/
    expected: 挟ま$1
  - pattern: おそれ
    expected: 恐れ
  - pattern: /([^っ])さきに/
    expected: $1先に
  - pattern: 自分自信
    expected: 自分自身
  - pattern: /満([さしすせそっ])|みた([さしすせそっ])/
    expected: 満た$1
  - pattern: /([をがに])生か/
    expected: $1活か
  - pattern: /いとな([まみむめも])/
    expected: 営$1
  - pattern: /かかげ([たてらる])/
    expected: 掲げ$1
  - pattern: /がた([ちつっ])/
    expected: が経$1
  - pattern: /うめ([たつて])/
    expected: 埋め$1
  - pattern:
      - おすすめ
      - お薦め
      - お奨め
      - オススメ
      - お勧め
    expected: おすすめ
  - pattern:
      - てがけ
      - 手掛け
    expected: 手がけ
  - pattern: みずから
    expected: 自ら
  - pattern: /いた([るれろ])/
    expected: 至$1
  - pattern: そなえ
    expected: 備え
  - pattern: /まね([いかきくけこ])/
    expected: 招$1
  - pattern: 子供
    expected: 子ども
  - pattern: 塔載
    expected: 搭載
  - pattern: 一番最初
    expected: 一番初め
  - pattern: 貼付け
    expected: 貼り付け
  - pattern: 必用
    expected: 必要
  - pattern: /あたえ([たつてらりるれろっ])/
    expected: 与え$1
  - pattern: /([^お])すす([まみむめもん])/
    expected: $1進$2
  - pattern: 焦点をあて
    expected: 焦点を当て
  - pattern: /おも([いうえおわっ])/
    expected: 思$1
  - pattern: /おも([なにとだで])/
    expected: 主$1
  - pattern: 高値の花
    expected: 高嶺の花
  - pattern: たいする
    expected: 対する
  - pattern: たいし
    expected: 対し
  - pattern:
      - たずさわ
      - たづさわ
    expected: 携わ
  - pattern: 訪ず
    expected: 訪
  - pattern: 短か
    expected: 短
  - pattern: わたし
    expected: 私
  - pattern: /くわし([いく])/
    expected: 詳し$1
  - pattern: 陽の目
    expected: 日の目
  - pattern: 保障
    expected: 保証
  - pattern: 移譲
    expected: 委譲
  - pattern: 稼動
    expected: 稼働
  - pattern: 芋蔓
    expected: 芋づる
  - pattern: あいだ
    expected: 間
  - pattern: /しめ([さしすせそ])/
    expected: 示$1
  - pattern: /あつま([らりるれろ])/
    expected: 集ま$1
  - pattern: /あきらめ([たてなるまよ、])/
    expected: 諦め$1
  - pattern: 成立ち
    expected: 成り立ち
  - pattern:
      - たどりつ
      - 辿り着
      - 辿りつ
    expected: たどり着
  - pattern: 安定板
    expected: 安定版
  - pattern: /かえ([さしすせそっ])/
    expected: 返$1
  - pattern: /さが([さしすせそっ])/
    expected: 探$1
  - pattern: 見様見真似
    expected: 見よう見まね
  - pattern: 買物
    expected: 買い物
  - pattern: /ほどこ([さしすせそ])/
    expected: 施$1
  - pattern: /使いき([らりるれろっ])/
    expected: 使い切$1
  - pattern: /逃が([さしすせそれ])/
    expected: 逃$1
  - pattern: /濡れ手[でに][泡粟]/
    expected: 濡れ手で粟
  - pattern: /もど([^ち])/
    expected: 戻$1
  - pattern: 携帯キャリア
    expected: 携帯電話キャリア
  - pattern:
      - 代金引き換え
      - 代引
      - 代引き
    expected: 代金引換
  - pattern: /割引(?:き)?/
    expected: 割り引き
  - pattern:
      - ひとめ
      - ひと目
    expected: 一目
  - pattern: 復号化
    expected: 復号
  - pattern: 手間取
    expected: 手間ど
  - pattern: 中味
    expected: 中身
  - pattern: /則([らりるれろっ])/
    expected: のっと$1
  - pattern: 洗錬
    expected: 洗練
  - pattern: 基板
    expected: 基盤
  - pattern: ふれ
    expected: 触れ
  - pattern: /あお([がぎぐげごっ])/
    expected: 仰$1
  - pattern:
      - 独り事
      - ひとり事
      - ひとりごと
    expected: 独り言
  - pattern: 本校
    expected: 本稿
  - pattern: /つぎ([にの])/
    expected: 次$1
  - pattern: 見きれ
    expected: 見切れ
  - pattern: /見做([さしすせそ])/
    expected: みな$1
  - pattern: 無駄使い
    expected: 無駄遣い
  - pattern: 肩をなでおろ
    expected: 胸をなでおろ
  - pattern: /陥い([らりるれろっ])|おちい([らりるれろっ])/
    expected: 陥$1
  - pattern: /かさ([なね])/
    expected: 重$1
  - pattern: 情報原
    expected: 情報源
  - pattern: 過度期
    expected: 過渡期
  - pattern: 流れを組
    expected: 流れをく
  - pattern:
      - 無駄使い
      - ムダ遣い
      - ムダ使い
      - 無駄づかい
      - 無駄ずかいい
      - ムダづかい
      - ムダずかい
    expected: 無駄遣い
  - pattern: 発火
    expected: 発行
  - pattern:
      - 至難のわざ
      - 至難の技
    expected: 至難の業
  - pattern: /こわ([さしすせそれ])/
    expected: 壊$1
  - pattern: /かか([え])/
    expected: 抱$1
  - pattern: こころ
    expected: 心
  - pattern: じゃま
    expected: 邪魔
  - pattern: ひんぱん
    expected: 頻繁
  - expected: (株)
    pattern:  /株式会社/
  - expected: (有)
    pattern:  /有限会社/
  - expected: (社)
    pattern:  /社団法人/
  - expected: (合)
    pattern:  /合名会社/
  - expected: (特)
    pattern:  /特殊法人/
  - expected: (財)
    pattern:  /財団法人/
  - expected: (学)
    pattern:  /学校法人/
  - expected: (監)
    pattern:  /監査法人/
  - expected: (資)
    pattern:  /合資会社/
  - expected: (協)
    pattern:  /協力会社/
  - expected: (同)
    pattern:  /合同会社/
  - expected: (独)
    pattern:  /独立行政法人/
  - expected: (医)
    pattern:  /医療法人/
  - expected: (宗)
    pattern:  /宗教法人/
  - expected: Cookie
    pattern:  クッキー
  - expected: Cookie
  - expected: WebSocket
    pattern:  /\bWeb Socket\b/
  - expected: $1Web$2
    pattern:  /(?:([^/])ウェブ)|(?:ウェブ([^/\+]))/
  - expected: $1Web$2
    pattern:  /(?:([^/])ウェッブ)|(?:ウェッブ([^/\+]))/
  - expected: アイデア
    pattern:  /アィディア|アイディア|アィディア|アィデア/
  - expected: アスタリスク
    pattern:  /アステリスク/
  - expected: アクティビティ
    pattern:  /\bActivity\b|アクティビティー/
  - expected: アドバイス
    pattern:  /アドヴァイス/
  - expected: アノテーション
    pattern:  /アノーテーション/
  - expected: アプレット
    pattern:  /\bApplet\b/
  - expected: アプリケーション
    pattern: /アプリ(?!ケ)/
    specs:
      - from: アプリケーション
        to:   アプリケーション
      - from: アプリ
        to:   アプリケーション
  - expected: アンダースコア
    pattern:  /アンダーバー/
  - expected: イシュア
    pattern:  /イシュアー/
  - expected: イディオム
    pattern:  /イデオム/
  - expected: インスタンス
    pattern:  /インスンタンス/
  - expected: インスパイア
    pattern:  /インスパイヤ/
  - expected: インタフェース
    pattern:  /インタフェイス|インターフェイス|インターフェース|インターフェィス/
  - expected: インデックス
    pattern:  /インデクス/
  - expected: インテント
    pattern:  /\bIntent\b/
  - expected: ウィジェット
    pattern:  /\bWidget\b|\bwidget\b/
  - expected: ウィルス
    pattern:  /ウイルス/
  - expected: ウィンドウ
    pattern:  /ウインドウ/
  - expected: ウェア
    pattern:  ウエア
    spec:
      - from: ハードウエア
        to:   ハードウェア
  - expected: エンティティ
    pattern:
      - Entity
      - entity
      - エンティティー
  - expected: オプション
    pattern:  /オブション/
  - expected: オン/オフ
    pattern:  /ON\/OFF|ON/OFF|オン・オフ|オン\/オフ/
  - expected: カバレッジ
    pattern:  /カバリッジ|カバレージ/
  - expected: ガベージ
    pattern:  /ガベージ・|ガーベジ|ガーベジ・|ガーベージ|ガーベージ・|ガーベッジ|ガーベッジ・|ガベッジ/
  - expected: カンマ
    pattern:  /コンマ/
      #  - expected: キャッシュ
      #    pattern:
      #      - /\bcache\b/
      #      - /\bCache\b/
  - expected: クエリ文字列
    pattern:
      - QueryString
      - Query String
      - クエリストリング
      - クエリーストリング
  - expected: クオート
    pattern:  /クォート|クオーテーション|クォーテーション/
  - expected: グラウンド
    pattern:  /グランド/
  - expected: グリッド
    pattern:  /\bGrid\b/
  - expected: コピー&ペースト
    pattern:
      - コピー&ペースト
      - コピペ
      - コピーアンドペースト
      - コピーペースト
  - expected: コミュニ
    pattern:  /コミニュ/
  - expected: アンコメント
    pattern:  /コメントイン/
  - expected: コンテキスト
    pattern:  /コンテクスト/
  - expected: コンテントプロバイダ
    pattern:  /\bContent provider\b/
  - expected: コンポーネント
    pattern:  /コンポネント/
  - expected: サーブレット
    pattern:
      - Servlet
      - SERVLET
  - expected: サーブレット/JSP
    pattern:
      - サーブレット/JSP
      - サーブレット&JSP
      - サーブレット&JSP
  - expected: サンフランシスコ
    pattern:  /\bSan Francisco\b/
  - expected: シェア
    pattern:  /シェア率/
  - expected: ジェネレーティブ
    pattern:  /ジェネレイティブ/
  - expected: ジョブズ
    pattern:  /ジョブス/
  - expected: ジオタグ
    pattern:  /\bGeotag\b|\bgeotag\b/
  - expected: シミュレー
    pattern:  /シュミレー/
  - expected: スクラム
    pattern:  /\bScrum\b/
  - expected: スタンドアローン
    pattern:  /スタンドアロン/
  - expected: ストアド
    pattern:  /ストアード/
  - expected: ストレージ
    pattern:  /ストレッジ|ストレジ/
  - expected: スマートフォン
    pattern:  /スマフォ|スマホ/
  - expected: スムーズ
    pattern:  /スムース/
  - expected: セッション
    pattern:  /\bsession\b|\bSession\b/
  - expected: ソフトウェア
    pattern: /(日経)?ソフトウエア/
    regexpMustEmpty: $1
    specs:
      - from: 広義のソフトウエア
        to:   広義のソフトウェア
      - from: 日経ソフトウエア
        to:   日経ソフトウエア
  - expected: ソフトバンク
    pattern:  /\bSoftBank\b/
  - expected: ダイアグラム
    pattern:  /ダイヤグラム/
  - expected: タイムスタンプ
    pattern:
      - timestamp
      - Timestamp
  - expected: ツイート
    pattern:
      - tweet
      - Tweet
      - ツィート
  - expected: ツリーオブジェクト
    pattern:  /ツリー・オブジェクト/
  - expected: ツリーエントリ
    pattern:  /ツリー・エントリ/
  - expected: データサービス
    pattern:  /\bData Services\b/
  - expected: データ同期
    pattern:  /\bData Sync\b/
  - expected: チェイン
    pattern:  /チェーン/
  - expected: ディザスタリカバリ
    pattern:  /ディザスタ・リカバリ/
  - expected: ディスク
    pattern:  /\bDisk\b/
  - expected: ディスプレイ
    pattern:  /ディスプレー/
  - expected: デジタルカメラ
    pattern:  /デジカメ/
  - expected: デバッグ
    pattern:  /デバック/
  - expected: デフォルト
    pattern:  /既定|ディフォルト|デフォールト/
  - expected: デプロイ
    pattern:  /デプロイメント/
  - expected: ドキュメント
    pattern:  /ドキュメンテーション/
  - expected: ドコモ
    pattern:  /\bdocomo\b|\bDocomo\b|\bDoCoMo\b/
  - expected: ドラッグ&ドロップ
    pattern:  /ドラッグ・アンド・ドロップ|ドラッグアンドドロップ|ドラッグ&ドロップ|ドラッグ & ドロップ/
  - expected: ニューヨーク
    pattern:  /\bNew York\b/
  - expected: ハイパーリンク
    pattern:  /ハイパー・リンク/
  - expected: パーサ
    pattern:  /パーサー|パーザー|パーザ/
  - expected: パーマリンク
    pattern:  /\bPermalink\b|\bpermalink\b|\bpermanent link\b|パーマネントリンク/
  - expected: パス
    pattern:  /\bpath\b|\bPath\b/
  - expected: パターン
    pattern:  /パタン/
  - expected: バラ
    pattern:  /薔薇/
  - expected: バラエティ
    pattern:  /バラエティー/
  - expected: ビューア
    pattern:  /ビューアー|ビューワー|ビューワ/
  - expected: ビルトイン
    pattern:  /ビルドイン/
  - expected: ヒット率
    pattern:  /hit率/
  - expected: フィーチャーフォン
    pattern:  /フィーチャフォン/
  - expected: プラットフォーム
    pattern:  /プラットホーム/
  - expected: ブレーク
    pattern:  /ブレイク/
  - expected: プレーン
    pattern:  プレイン(?!グ)
    specs:
      - from: プレイング
        to:   プレイング
  - expected: ヘビー
    pattern:  /ヘヴィ/
  - expected: ファイアウォール
    pattern:  /ファイアーウォール|ファイヤーウォール|ファイヤウォール|ファイヤーウオール/
  - expected: ファイバチャネル
    pattern:  /ファイバチャンネル|ファイバチャネル|ファイバーチャンネル/
  - expected: フェイルオーバー
    pattern:  /フェイルオーバ(?!ー)|フェールオーバー|フェールオーバ(?!ー)/
  - expected: フェーズ
    pattern:  /フェイズ/
  - expected: フッタ
    pattern:  /フッター|フッダ/
  - expected: ブログ
    pattern: /(?![^/])(?:blog|Blog)(?![^/])/
    specs:
      - from: http://blog.example.com/
        to:   http://blog.example.com/
      - from: http://example.com/foo-blog/
        to:   http://example.com/foo-blog/
  - expected: ブロードキャストレシーバ
    pattern:  /\bBroadcast receiver\b/
  - expected: ペアプログラミング$1
    pattern:  /ペアプロ([^グ])/
  - expected: ベンダー
    pattern:  /ベンダ(?!ー)/
  - expected: ポッドキャスト
    pattern:  /\bPodCast\b|\bpodcast\b|\bPodcast\b/
  - expected: $1マイクロ秒
    pattern:  /([0-9])μs/
  - expected: $1ミリ秒
    pattern:  /([0-9])\bms\b/
  - expected: マイナビ
    pattern:  /毎日コミュニケーションズ/
  - expected: マトリックス
    pattern:  /マトリクス/
  - expected: マネジメント
    pattern:  /マネージメント/
  - expected: メーカー
    pattern:  /メーカ(?!ー)/
  - expected: メーリングリスト
    pattern:  /\bML\b(?!系)/
    specs:
      - from: SML#
        to:   SML#
      - from: ML系言語
        to:   ML系言語
      - from: MLなど
        to:   メーリングリストなど
  - expected: メンテナンス
    pattern:  /メインテナンス/
  - expected: $1メンテナンス$2
    pattern:  /([^グ])メンテ([^ナ])/
  - expected: モジュール
    pattern:  /\bmodule\b|\bModule\b/
  - expected: レジューム
    pattern:  /リジューム/
  - expected: レスポンシブWebデザイン
    pattern:  /\bResponsive Web Design\b/
  - expected: ユニットテスト
    pattern:
      - Unitテスト
      # 単体テストはケースバイケース
      - 単体テスト
  - expected: リガチャ
    pattern:  /リガチャー/
  - expected: リグレッション
    pattern:
      - デグレード
      # デグレは英語圏では使わない by Jenkins川口さん
      - デグレ
  - expected: リポジトリ
    pattern:  /リポジトリー|レポジトリ|レポジトリー/
  - expected: レコメンド
    pattern:  /リコメンド/
  - expected: ロングテール
    pattern:  /ロングテイル/
  - expected: ワンタイムURL
    pattern:  /\bOnetime URL\b/
  - expected: クアッドコアCPU
    pattern:  /\bQuad Core CPU\b/
  - expected: クアッドコア
    pattern:  /クァッドコア|\bQuad Core\b|クァッドCore|Quadコア/
  - expected: デュアルコアCPU
    pattern:  /\bDual Core CPU\b/
  - expected: デュアルコア
    pattern:  /\bDual Core\b|デュアルCore|Dualコア/
  - expected: バックアップ$1
    pattern:  /\bBackup\b([^.])/
  - expected: スレーブ$1
    pattern:  /スレイブ([^.])|\bSlave\b([^.])/
  - expected: 属性
    pattern:  /アトリビュート/
  - expected: 要素
    pattern:  /エレメント/
  - expected: ユーザビリティ
    pattern:  /ユーザービリティ/
  - expected: プレイヤー
    pattern:  /プレーヤー/
  - expected: プログラマブル
    pattern:  /プログラマーブル/
  - expected: Action Cable
    pattern:  /\bActionCable\b/
  - expected: Action Controller
    pattern:  /\bActionController\b/
  - expected: Action Mailer
    pattern:  /\bActionMailer\b/
  - expected: Action Pack
    pattern:  /\bActionPack\b/
  - expected: ActionScript
    pattern:  /\bAction Script\b|アクションスクリプト/
  - expected: ActionScript $1
    pattern:  /ActionScript([0-9])/
  - expected: ActionScript Virtual Machine
    pattern:  /\bActionScriptVirtualMachine\b|\bActionScript VirtualMachine\b/
  - expected: Action View
    pattern:  /\bActionView\b/
  - expected: Active Job
    pattern:  /\bActiveJob\b/
  - expected: Active Model
    pattern:  /\bActiveModel\b/
  - expected: Active Record
    pattern:  /\bActiveRecord\b/
  - expected: Active Resource
    pattern:  /\bActiveResource\b/
  - expected: Active Support
    pattern:  /\bActiveSupport\b/
  - expected: ApplicationRecord Application Record
    pattern:  /,,RE,/
  - expected: ApplicationController
    pattern:  /\bApplication Controller\b/
  - expected: ApplicationRecord
    pattern:  /\bApplication Record\b/
  - expected: ApplicationJob
    pattern:  /\bApplication Job\b/
  - expected: Adobe AIR
    pattern:  /\bAdobe AIR\b/i
  - expected: Akamai
    pattern:  /\bAkamai\b/i
  - expected: Alias
    pattern:  /\bAilias\b/
  - expected: Amazon Web Services$1
    pattern:  /\bAmazon Web Service\b([^s])/
  - expected: American Express(Amex)
    pattern:  /アメリカン・エキスプレス|アメックス|アメリカンエクスプレス/
  - expected: Android
    pattern:  /アンドロイド|\bandroid\b/
  - expected: Ant
    pattern:  /\bAnt\b/i
  - expected: Apache
    pattern:  /\bapache\b|\bApatch\b|\bapatch\b/
  - expected: Apache $1$2
    pattern:  /Apache([0-9])|Apatch([0-9])/
  - expected: ApiGen
    pattern:  /\bApiGen\b/i
  - expected: APNs
    pattern:  /\bAPNs\b/i
  - expected: App Store
    pattern:  /\bAppStore\b/
  - expected: Apple Watch
    pattern:  /\bApple Watch\b/i
  - expected: Apple
    pattern:  /アップル/
  - expected: Apple
    pattern:  /\bApple\b/i
  - expected: APT
    pattern:  /\bAPT\b/i
  - expected: ASP.NET
    pattern:  /ASP \.NET/
  - expected: Backbone.js
    pattern:  /\bBackbone.js\b/i
  - expected: Babel
    pattern:  /\bBabel\b/i
  - expected: bash
    pattern:  /\bBash\b/
  - expected: Bean
    pattern:  /ビーン/
  - expected: Bigtable
    pattern:  /\bBigTable\b|\bBig Table\b|\bBig table\b/
  - expected: Bitbucket
    pattern:  /\bBitbucket\b/i
  - expected: Bitcoin
    pattern:  /\bBitcoin\b/i
  - expected: BlackBerry
    pattern:  /\bBlackBerry\b/i
  - expected: Blu-ray
    pattern:  /\bBlu-ray\b/i
  - expected: Bonnie++
    pattern:  /\bBonnie\+\+\b/i
  - expected: $1bot
    pattern:  /([^ロ])ボット/
  - expected: bstract
    pattern:  /\bbsctract\b|\bbscract\b/
  - expected: Bundler
    pattern:  /\bBundler\b/i
  - expected: CakePHP
    pattern:  /\bCakePHP\b/i
  - expected: CakePHP $1
    pattern:  /CakePHP([0-9])/
  - expected: Capistrano
    pattern:  /\bCapistorano\b|\bcapistrano\b/
  - expected: Capybara
    pattern:  /\bCapybara\b/i
  - expected: CarrierWave
    pattern:  /\bCarrierWave\b/i
  - expected: CentOS
    pattern:  /\bCent OS\b/
  - expected: Chef
    pattern:  /\bChef\b/i
  - expected: Chrome Web Store
    pattern:  /Chromeウェブストア|Chrome Webストア/
  - expected: Chromium
    pattern:  /\bChronium\b/
  - expected: CloudFlare
    pattern:  /\bCloudFlare\b/i
  - expected: Cloudinary
    pattern:  /\bCloudinary\b/i
  - expected: Cygwin
    pattern:  /\bCygwin\b/i
  - expected: Cobbler
    pattern:  /\bCobbler\b/i
  - expected: CocoaPods
    pattern:  /\bCocoaPods\b/i
  - expected: Coca-Cola
    pattern:  /\bCoca Cola\b/
  - expected: Composer
    pattern:  /\bComposer\b/i
  - expected: Coveralls
    pattern:  /\bCoveralls\b/i
  - expected: CSSスプライト
    pattern:  /CSS-Sprite|\bCSS Sprite\b/
  - expected: DBFlute
    pattern:  /\bDBFlute\b/i
  - expected: Debian GNU/Linux
    pattern:  /\bDebian\b|Debian\/GNU Linux/
  - expected: $1DeNA$2
    pattern:  /(?:([^/.])ディー・エヌ・エー)|(?:ディー・エヌ・エー([^/.]))/
  - expected: $1DeNA$2
    pattern:  /(?:([^/.])ディーエヌエー)|(?:ディーエヌエー([^/.]))/
  - expected: $1DeNA$2
    pattern:  /(?:([^/.])\bDENA)|(?:DENA\b([^/.]))/
  - expected: Diners Club
    pattern:  /ダイナースクラブ|ダイナース/
  - expected: Docker Hub
    pattern:  /\bDockerHub\b/
  - expected: Dreamweaver
    pattern:  /\bDreamWeaver\b/
  - expected: easy_install
    pattern:  /\beasy_install\b/i
  - expected: Eclipse
    pattern:  /\bEclipse\b/i
  - expected: ECMAScript
    pattern:  /\bECMA Script\b/
  - expected: EJB-JARファイル
    pattern:  /\bEJB-JARファイル\b/i
  - expected: Elisp
    pattern:  /\bElisp\b/i
  - expected: Lisp
    pattern:  /\bLisp\b/i
  - expected: Elixir
    pattern:  /\bElixr\b|\belixr\b/
  - expected: Emacs
    pattern:  /\bEmacs\b/i
  - expected: Emacs $1
    pattern:  /Emacs([0-9])/
  - expected: Emacs Lisp
    pattern:  /\bEmacs Lisp\b/i
  - expected: ERB
    pattern:  /\bERB\b/i
  - expected: Ethernet
    pattern:  /イーサネット/
  - expected: EventMachine
    pattern:  /\bEventMachine\b/i
  - expected: Excel
    pattern:  /エクセル/
  - expected: Express
    pattern:  /\bexpress\b/
  - expected: Fabric
    pattern:  /\bFablic\b/
  - expected: $1Facebook$2
    pattern:  /(?:([^/.])\bfacebook)|(?:facebook\b([^/.]))/
  - expected: Firebug
    pattern:  /\bFirebug\b/i
  - expected: Firefox
    pattern:  /\bFireFox\b|\bFire Fox\b|ファイアーフォックス|ファイヤーフォックス/
  - expected: Fitbit
    pattern:  /\bFitbit\b/i
  - expected: Flex Builder
    pattern:  /\bFlexBuilder\b/
  - expected: Fluentd
    pattern:  /\bFluentd\b/i
  - expected: FORTRAN
    pattern:  /\bFORTRAN\b/i
  - expected: Gears
    pattern:  /\bGoogleGears\b|\bGoogle Gears\b/
  - expected: Gemnasium
    pattern:  /\bGemnasium\b/i
  - expected: GHCi
    pattern:  /\bGHCi\b/i
  - expected: GitHub Pages
    pattern:  /\bGitHub Pages\b/i
  - expected: GitHub Enterprise
    pattern:  /GH:E|\bGHE\b|GitHub:E/
  - expected: $1GitHub$2
    pattern:  /(?:([^/.])\bgithub)|(?:github\b([^/.]))/
  - expected: $1GitHub$2
    pattern:  /(?:([^/.])\bGithub)|(?:Github\b([^/.]))/
  - expected: Git
    pattern:  /\bGit\b/i
  - expected: Gmail
    pattern:  /\bGmail\b/i
  - expected: Google Gadget
    pattern:  /Googleガジェット/
  - expected: Google Maps
    pattern:  /\bGoogle Map\b|\bGoogleMaps\b|\bGoogleMap\b|Googleマップ/
  - expected: Gradle Wrapper
    pattern:  /\bGradleWrapper\b/
  - expected: Greasemonkey
    pattern:  /\bGreaseMonkey\b|\bGrease monkey\b|\bGrease Monkey\b/
  - expected: Grunt
    pattern:  /\bGrunt\b/i
  - expected: gulp
    pattern:  /\bgulp\b/i
  - expected: gzip
    pattern:  /\bgzip\b/i
  - expected: hdparm
    pattern:  /\bhdparm\b/i
  - expected: HDD
    pattern:  /ハードディスク/
  - expected: Heartbeat
    pattern:  /\bHeartbeat\b/i
  - expected: Heroku
    pattern:  /\bHeroku\b/i
  - expected: Homebrew
    pattern:  /\bHomebrew\b/i
  - expected: HTML5
    pattern:  /HTML 5/
  - expected: HTML $1
    pattern:  /HTML([0-4])/
  - expected: HTTP/$1
    pattern:  /HTTP([0-9])/
  - expected: HTTP/$1
    pattern:  /HTTP ([0-9])/
  - expected: Hubot
    pattern:  /\bHubot\b/i
  - expected: I/O
    pattern:  /\bIO\b/
  - expected: ImageMagick
    pattern:  /\bImageMagick\b/i
  - expected: ImageProcessing
    pattern:  /\bImageProcessing\b/i
  - expected: Internet Explorer $1$2
    pattern:  /Internet Explorer([0-9])|IE([0-9])/
  - expected: Internet Explorer
    pattern:  /\bIE\b/
  - expected: inode
    pattern:  /iノード/
  - expected: iOS SDK
    pattern:  /\biOS SDK\b/i
  - expected: iOS $1
    pattern:  /iOS([0-9])/
  - expected: Iperf
    pattern:  /\bIperf\b/i
  - expected: iPhone
    pattern:  /アイフォン|\biphone\b|\bIPHONE\b/
  - expected: iPhone 5s
    pattern:  /\biPhone 5s\b/i
  - expected: iPhone 4S
    pattern:  /\biPhone 4S\b/i
  - expected: IRKit
    pattern:  /\bIRKit\b/i
  - expected: ISO
    pattern:  /ISO-/
  - expected: ISO $1
    pattern:  /ISO([0-9])/
  - expected: iTunes Card
    pattern:  /\biTunes Card\b/i
  - expected: iPad
    pattern:  /\biPad\b/i
  - expected: iPhone
    pattern:  /\biPhone\b/i
  - expected: Jade
    pattern:  /\bJade\b/i
  - expected: JARファイル
    pattern:  /\bJARファイル\b/i
  - expected: Java $1
    pattern:  /Java([0-9])/
  - expected: Java 3D
    pattern:  /Java3D/
  - expected: Java EE
    pattern:  /\bJavaEE\b/
  - expected: Java EE $1
    pattern:  /JavaEE([0-9])/
  - expected: Java EE $1
    pattern:  /Java EE([0-9])/
  - expected: Java SE
    pattern:  /\bJavaSE\b/
  - expected: Java SE $1
    pattern:  /JavaSE([0-9])/
  - expected: Java SE $1
    pattern:  /Java SE([0-9])/
  - expected: JavaBeans
    pattern:  /\bJavaBean\b|\bJava Bean\b|\bJava Beans\b/
  - expected: Javadoc
    pattern:  /\bJavadoc\b/i
  - expected: JavaScript
    pattern:  /\bJava Script\b|\bJavascript\b|\bjavascript\b/
  - expected: JavaScript $1
    pattern:  /JavaScript([0-9])/
  - expected: JavaServer Faces
    pattern:  /\bJava Server Faces\b/
  - expected: JavaServer Pages
    pattern:  /\bJava Server Pages\b/
  - expected: Jenkins
    pattern:  /\bJenkins\b/i
  - expected: JDBC-Redis
    pattern:  /\bJDBC-Redis\b/i
  - expected: JDK $1
    pattern:  /JDK([0-9])/
  - expected: Jedis
    pattern:  /\bJedis\b/i
  - expected: JPEG
    pattern:  /\bJPEG\b/i
  - expected: JSF $1
    pattern:  /JSF([0-9])/
  - expected: JSP $1
    pattern:  /JSP([0-9])/
  - expected: JVM
    pattern:  /\bJava VM\b|\bJavaVM\b/
  - expected: Keepalived
    pattern:  /\bKeepalived\b/i
  - expected: key-Value
    pattern:  /Key-value|Key\/Value|キーバリュー|キー・バリュー|キー/バリュー/
  - expected: Kickstarter
    pattern:  /\bKickstarter\b/i
  - expected: Kickstart
    pattern:  /\bKickstart\b/i
  - expected: KitchenSink
    pattern:  /\bKitchenSink\b/i
  - expected: knockout.js
    pattern:  /\bknockout.js\b/i
  - expected: Kotlin $1
    pattern:  /Kotlin([0-9])/
  - expected: Kotlin
    pattern:  /\bKoltin\b/
  - expected: Kyoto Cabinet
    pattern:  /\bKyotoCabinet\b/
  - expected: Kyoto Tycoon
    pattern:  /\bKyotoTycoon\b|Tokyo *Tycoon/
  - expected: LESS
    pattern:  /\bLESS\b/i
  - expected: LinkedIn
    pattern:  /\bLinked In\b/
  - expected: LL
    pattern:  /LL言語/
  - expected: macOS
    pattern:  /\bMacOS\b|\bMac OS\b|\bmac OS\b|\bOS X\b|\bOSX\b|\bMac OS X\b|\bMacOSX\b/
  - expected: OSS
    pattern:  /オープンソースソフトウェア/
  - expected: MacBook
    pattern:  /\bMac Book\b/
  - expected: MacPorts
    pattern:  /\bMacPorts\b/i
  - expected: Maglica
    pattern:  /\bMaglica\b/i
  - expected: Markdown
    pattern:  /\bMarkdown\b/i
  - expected: MasterCard
    pattern:  /マスターカード/
  - expected: Maven
    pattern:  /\bMaven\b/i
  - expected: MeCab
    pattern:  /\bMeCab\b/i
  - expected: Mechanize
    pattern:  /\bMechanize\b/i
  - expected: Memcached
    pattern:  /\bmemcached\b/i
  - expected: $1Microsoft$2
    pattern:  /(?:([^/.])マイクロソフト)|(?:マイクロソフト([^/.]))/
  - expected: $1Microsoft$2
    pattern:  /(?:([^/.])\bmicrosoft)|(?:microsoft\b([^/.]))/
  - expected: Migemo
    pattern:  /\bMigemo\b/i
  - expected: MiniMagick
    pattern:  /\bMiniMagick\b/i
  - expected: mixi
    pattern:  /\bmixi\b/i
  - expected: MongoDB
    pattern:  /\bMongo DB\b/
  - expected: msysGit
    pattern:  /\bmsysGit\b/i
  - expected: Munin
    pattern:  /\bMunin\b/i
  - expected: MySQL
    pattern:  /\bMySQL\b/i
  - expected: Nagios $1
    pattern:  /Nagios([0-9])/
  - expected: Nagios
    pattern:  /\bNagios\b/i
  - expected: Nokia
    pattern:  /\bNokia\b/i
  - expected: nginx
    pattern:  /\bnginx\b/i
  - expected: NGINX Plus
    pattern:  /\bNGINX Plus\b/i
  - expected: Node.js
    pattern:  /\bNode.js\b/i
  - expected: NVMe
    pattern:  /\bNVMe\b/i
  - expected: OAuth
    pattern:  /\bOAuth\b/i
  - expected: OmniAuth
    pattern:  /\bOmniAuth\b/i
  - expected: OpenGL
    pattern:  /\bOpen GL\b/
  - expected: Opscode
    pattern:  /\bOpscode\b/i
  - expected: OS
    pattern:  /オペレーティングシステム/
  - expected: Packagist
    pattern:  /\bPackagist\b/i
  - expected: Paperclip
    pattern:  /\bPaperclip\b/i
  - expected: PayPal
    pattern:  /\bPayPal\b/i
  - expected: parallel
    pattern:  /\bpararllel\b/
  - expected: PC
    pattern:  /パソコン/
  - expected: PECL
    pattern:  /\bPECL\b/i
  - expected: Pentium 4
    pattern:  /\bPentium IV\b/
  - expected: Pentium II
    pattern:  /Pentium 2|Pentium2/
  - expected: Pentium III
    pattern:  /Pentium 3|Pentium3/
  - expected: Perl $1
    pattern:  /Perl([0-9])/
  - expected: Perl
    pattern:  /\bPerl\b/i
  - expected: Phan
    pattern:  /\bPhan\b/i
  - expected: PhantomJS
    pattern:  /\bPhantomJS\b/i
  - expected: Photoshop
    pattern:  /\bPhotoShop\b|\bphotoshop\b|フォトショップ/
  - expected: PHP $1
    pattern:  /PHP([0-9])/
  - expected: PHPBrew
    pattern:  /\bPHPBrew\b/i
  - expected: PHPDoc
    pattern:  /\bPHPDoc\b/i
  - expected: PhpMetrics
    pattern:  /\bPhpMetrics\b/i
  - expected: PhpStorm
    pattern:  /\bPhpStorm\b/i
  - expected: PHPUnit
    pattern:  /\bPHPUnit\b/i
  - expected: ping
    pattern:  /\bping\b/i
  - expected: pip
    pattern:  /\bpip\b/i
  - expected: pixiv
    pattern:  /\bpixiv\b/i
  - expected: Playground
    pattern:  /\bPlaygroud\b/
  - expected: Polyfill
    pattern:  /ポリフィル/
  - expected: POPFile
    pattern:  /\bPOPFile\b/i
  - expected: PostScript
    pattern:  /\bPostScript\b/i
  - expected: PostgreSQL $1
    pattern:  /PostgreSQL([0-9])/
  - expected: PowerPoint
    pattern:  /\bPower Point\b/
  - expected: Pull Request
    pattern:  /プルリクエスト|\bpull request\b|\bPull request\b/
  - expected: Python
    pattern:  /\bPython\b/i
  - expected: Qiita:Team
    pattern:  "/Qiita Team|Qiita: Team/"
    specs:
      - from: "Qiita Team"
        to:   "Qiita:Team"
      - from: "Qiita: Team"
        to:   "Qiita:Team"
  - expected: Rack
    pattern:  /\bRack\b/i
  - expected: RADIUS
    pattern:  /\bRADIUS\b/i
  - expected: Rails $1
    pattern:  /Rails([0-9])/
  - expected: Rake
    pattern:  /\bRake\b/i
  - expected: Raspberry Pi
    pattern:  /\bRasbpberry Pi\b|\bRaspiberry Pi\b|\bRaspberryPi\b/
  - expected: Redmine
    pattern:  /\bRedmine\b/i
  - expected: Red Hat
    pattern:  /\bRedHat\b|\bRedhat\b|\bredhat\b|\bRedHad\b|\bRedhad\b|\bredhad\b|レッドハット/
  - expected: Red Hat Enterprise Linux
    pattern:  /\bRHEL\b/
  - expected: Red Hat Linux
    pattern:  /\bRedHatLinux\b|\bRedHat Linux\b/
  - expected: Red Hat Linux $1
    pattern:  /Red Hat Linux([0-9])|RedHatLinux([0-9])|RedHat Linux([0-9])/
  - expected: Redis
    pattern:  /\bRedis\b/i
  - expected: Redshift
    pattern:  /\bRedshift\b/i
  - expected: Refile
    pattern:  /\bRefile\b/i
  - expected: RELAX NG
    pattern:  /\bRELAX NG\b/i
  - expected: RFC $1
    pattern:  /RFC([0-9])/
  - expected: Roda
    pattern:  /\bRoda\b/i
  - expected: RPCサービス
    pattern:  /\bRPC Services\b/
  - expected: RRDtool
    pattern:  /\bRRDtool\b/i
  - expected: RSpec
    pattern:  /\bRSpec\b/i
  - expected: Ruby
    pattern:  /\bRuby\b/i
  - expected: Ruby $1
    pattern:  /Ruby([0-9])/
  - expected: Ruby on Rails
    pattern:  /\bRuby On Rails\b|\bRoR\b/
  - expected: RubyGems
    pattern:  /\bRubyGems\b/i
  - expected: RubyGems
    pattern:  /\bRuby Gems\b/
  - expected: SAML $1
    pattern:  /SAML([0-9])/
  - expected: satis
    pattern:  /\bsatis\b/i
  - expected: SBクリエイティブ
    pattern:  /ソフトバンク クリエイティブ|ソフトバンククリエイティブ/
  - expected: Scheme
    pattern:  /\bScheme\b/i
  - expected: Selenium WebDriver
    pattern:  /\bSelenium WebDriver\b/i
  - expected: Selenium
    pattern:  /\bSelenium\b/i
  - expected: Sequel
    pattern:  /\bSequel\b/i
  - expected: Serverspec
    pattern:  /\bServerspec\b/i
  - expected: Serverspec
    pattern:  /\bserver spec\b/
  - expected: Servlet $1
    pattern:  /Servlet([0-9])/
  - expected: Shift_JIS
    pattern:  /Shift-JIS|SHIFT-JIS|SHIFT_JIS|\bShift JIS\b|Shift_JIS|シフトJIS/
  - expected: Shrine
    pattern:  /\bShrine\b/i
  - expected: Shrpx
    pattern:  /\bShrpx\b/i
  - expected: shebang
    pattern:  /シバン|シェバン|\bShebang\b/
  - expected: Silverlight
    pattern:  /\bSilverLight\b|\bSilver Light\b/
  - expected: SimpleTest
    pattern:  /\bSimpleTest\b/i
  - expected: Sinatra
    pattern:  /\bSinatra\b/i
  - expected: SkeedCast
    pattern:  /\bSkeedCast\b/i
  - expected: $1Smalltalk$2
    pattern:  /(?:([^/.])スモールトーク)|(?:スモールトーク([^/.]))/
  - expected: Smalltalk
    pattern:  /\bSmalltalk\b/i
  - expected: Socket.IO
    pattern:  /\bSocket.IO\b/i
  - expected: $1SourceForge
    pattern:  /([^/.])\bsourceforge\b/
  - expected: Sorryサーバ
    pattern:  /ソーリーサーバ/
  - expected: SPDY indicator
    pattern:  /\bSPDY indicator\b/i
  - expected: Spdycat
    pattern:  /\bSpdycat\b/i
  - expected: Spdyd
    pattern:  /\bSpdyd\b/i
  - expected: Spdylay
    pattern:  /\bSpdylay\b/i
  - expected: StudioPress
    pattern:  /\bStudioPress\b/i
  - expected: SPDY/$1
    pattern:  /SPDY([0-9])/
  - expected: SPDY/$1
    pattern:  /SPDY ([0-9])/
  - expected: SpiderMonkey
    pattern:  /\bSpiderMonkey\b/i
  - expected: SQL $1
    pattern:  /SQL([0-9])/
  - expected: SQLite
    pattern:  /\bSQLite\b/i
  - expected: Squid
    pattern:  /\bSquid\b/i
  - expected: StaticMock
    pattern:  /\bStaticMock\b/i
  - expected: $1Subversion$2
    pattern:  /(?:([^/.])\bSubVersion)|(?:SubVersion\b([^/.]))/
  - expected: $1Subversion$2
    pattern:  /(?:([^/.])\bsubversion)|(?:subversion\b([^/.]))/
  - expected: Sun
    pattern:  /\bSun\b/i
  - expected: SunRPC
    pattern:  /\bSun RPC\b/
  - expected: SUSE
    pattern:  /\bSUSE\b/i
  - expected: SWFファイル
    pattern:  /\bSWFファイル\b/i
  - expected: Swift
    pattern:  /\bSwift\b/i
  - expected: Swift
    pattern:  /\bSwfit\b/
  - expected: Symfony
    pattern:  /\bSymphony\b|\bsymphony\b|\bSynphony\b|\bsynphony\b|\bsynfony\b|\bSynfony\b|\bsymfony\b/
  - expected: Symfony2
    pattern:  /Symfony 2/
  - expected: tDiary
    pattern:  /\btDiary\b/i
  - expected: test-unit
    pattern:  /\btest-unit\b/i
  - expected: Tips
    pattern:  /\bTips\b/i
  - expected: Tomcat $1
    pattern:  /Tomcat([0-9])/
  - expected: Twitter
    pattern:  /\bTwitter\b/i
  - expected: Twitter
    pattern:  /ツイッター/
  - expected: ToDo
    pattern:  /\bToDo\b/i
  - expected: Tokyo Cabinet
    pattern:  /\bTokyoCabinet\b/
  - expected: Tokyo Dystopia
    pattern:  /\bTokyoDystopia\b|Kyoto *Dystopia/
  - expected: Tokyo Promenade
    pattern:  /\bTokyoPromenade\b|Kyoto *Promenade/
  - expected: Tokyo Tyrant
    pattern:  /\bTokyoTyrant\b|Kyoto *Tyrant/
  - expected: Travis CI
    pattern:  /\bTravisCI\b|Travis-CI/
  - expected: Treasure Data
    pattern:  /\bTreasure Data\b/i
  - expected: Triglav
    pattern:  /\bTriglav\b/i
  - expected: Tritonn
    pattern:  /\bTriton\b|\btriton\b|\btritonn\b/
  - expected: TypeScript
    pattern:  /\bTypeScript\b/i
  - expected: Ubuntu
    pattern:  /\bubuntu\b|\bUbuntsu\b|\bubuntsu\b|\bUbuntu Linux\b/
  - expected: Unicode
    pattern:  /\bunicode\b|ユニコード/
  - expected: UnixBench
    pattern:  /\bUnixBench\b/i
  - expected: UNIX
    pattern:  /\bUnix\b/
  - expected: UTF-8
    pattern:  /UTF8|UTF 8|utf8/
  - expected: Veritrans
    pattern:  /ベリトランス/
  - expected: VirtualBox
    pattern:  /\bVirtual Box\b/
  - expected: Vim $1
    pattern:  /vim([0-9])/
  - expected: Vimスクリプト
    pattern:  /\bvim script\b/
  - expected: Visual Basic
    pattern:  /\bVisualBasic\b|\bVB\b/
  - expected: Visual Studio .NET
    pattern:  /Visual Studio\.NET/
  - expected: VMware
    pattern:  /\bVMware\b/i
  - expected: WARファイル
    pattern:  /\bWARファイル\b/i
  - expected: Web
  - expected: Web
    pattern:
      - ウェブ
      - ウェッブ
  - expected: Web API
    pattern:  /\bWebAPI\b|\bWEBAPI\b|\bWEB API\b/
  - expected: Web UI
    pattern:  /\bWebUI\b/
  - expected: Webhook
    pattern:  /Webフック|\bWebHook\b/
  - expected: WebLogic
    pattern:  /\bWeb Logic\b/
  - expected: webpack
    pattern:  /\bwebpack\b/i
    specs:
      - from: Webpack
        to:   webpack
  - expected: WebSphere
    pattern:  /\bWeb Sphere\b/
  - expected: Wi-Fi
    pattern:  /\bWiFi\b|Wi-fi|wi-fi/
  - expected: Windows 2000
    pattern:  /Windows2000/
  - expected: Windows 2000 Server
    pattern:  /Windows Server 2000/
  - expected: Windows 3.
    pattern:  /Windows3\./
  - expected: Windows 7
    pattern:  /Windows7/
  - expected: Windows 95
    pattern:  /Windows95/
  - expected: Windows 98
    pattern:  /Windows98/
  - expected: Windows Me
    pattern:  /\bWindowsMe\b|\bWindowsME\b/
  - expected: Windows NT
    pattern:  /\bWindowsNT\b/
  - expected: Windows Server 2003
    pattern:  /Windows 2003 Server/
  - expected: Windows Server 2008
    pattern:  /Windows 2008 Server/
  - expected: Windows Vista
    pattern:  /\bWindowsVista\b/
  - expected: Windows XP
    pattern:  /\bWindowsXP\b/
  - expected: WordPress
    pattern:  /\bWordPress\b/i
  - expected: $1Word
    pattern:  /([^ースォ])ワード/
  - expected: xAuth
    pattern:  /\bxAuth\b/i
  - expected: Xcode
    pattern:  /\bXcode\b/i
  - expected: Xdebug
    pattern:  /\bXdebug\b/i
  - expected: XML Schema
    pattern:  /\bXML Schema\b/i
  - expected: Yahoo!$1
    pattern:  /YAHOO!([^!.])|\bYahoo\b([^!.])|\bYAHOO\b([^!.])|ヤフー([^!.])/
  - expected: Yahoo!ウィジェット
    pattern:  /\bYahooWidget\b|Yahoo!Widget|Yahoo! Widget|\bYahooGadget\b|Yahoo!Gadget|Yahoo! Gadget/
  - expected: YouTube
    pattern:  /\bYoutube\b|\byoutube\b/
  - expected: YSlow
    pattern:  /\bYSlow\b/i
  - expected: ZIPファイル
    pattern:  /\bZIPファイル\b/i
  - expected: オライリー・ジャパン$1
    pattern:  /オライリージャパン([^・])|オライリー([^・])/
  - expected: ピアソン・エデュケーション$1
    pattern:  /ピアソンエデュケーション([^・])/
  - expected: を
    pattern:  /をを/
  - expected: に
    pattern:  /にに/
  - expected: が
    pattern:  /がが/
  - expected: する
    pattern:  /するする/
  - expected: て
    pattern:  /(当)?てて/
    regexpMustEmpty: $1
  - expected: で
    pattern:  /でで(?!き)/
  - expected: $1の
    pattern:  /([^も])のの/
  - expected: は
    pattern:  /はは/
# }}}

  - expected: なるべく
    pattern: なるだけ
  - expected: $1ご注意ください
    pattern: /([^ご])注意ください/
  - expected: プロバイダー
    pattern: プロバイダ(?!ー)
  - expected: インメモリー
    pattern: インメモリ(?!ー)
  - expected: メモリー
    pattern: メモリ(?!ー)
  - expected: $1ご確認ください
    pattern: /([^ご])確認ください/
  - expected: $1ご参照ください
    pattern: /([^ご])参照ください/
  - expected: $1ご検討ください
    pattern: /([^ご])検討ください/
  - expected: $1お考えください
    pattern: /([^お])考えください/
  - expected: 変更してください
    pattern: 変更ください
  • References

スクリプト

セットアップ

$ brew install mecab mecab-ipadic
$ git clone https://github.com/neologd/mecab-ipadic-neologd.git
$ cd mecab-ipadic-neologd
$ ./bin/install-mecab-ipadic-neologd -n

実装

#!/bin/bash

# Variables
## chapter_no variable: When you want to specify the chapter, you may want to set the number. Otherwise, you should set the negative number.
## word variable: When you want to specify the word, you may want to set the word. Otherwise, you should set to blank.


chapter_no=-1
word=$1

chapters="chapter$(printf "%02d" $chapter_no).md"

if [ $chapter_no -lt 0 ]; then
  number=(chapter*)
  chapters=$(ls ${number[@]}.md)
fi
remove_type="記号|助詞|助動詞"
for f in $(ls $chapters | sort); do
  echo "------- File: $f -------"
  for line in $(cat $f | tr "。" "\n"); do
    result=$(echo $line | mecab -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd | sort | uniq -c | sort -r | awk '$1 >= 2' | egrep -v $remove_type)

    if [ -z "$result" ]; then
      continue
    else
      if [ -n "$word" ]; then
        result=$(echo $result | awk '{print $1, $2}' | grep $word)
        if [ -n "$result" ]; then
          echo "----  $line ----"
          echo $result | awk '{print $1, $2}'      
        fi
      else
        echo "----  $line ----"
        echo $result | awk '{print $1, $2}'
      fi
    fi
  done
  echo ""
done

実行例

$ ./duplicate.sh
$ ./duplicate.sh 場合
$ ./duplicate.sh こと
  • References

PreviousPandoc 導入Next紙書籍をPDFに変換

Last updated 1 month ago

textlint + prhで文章を校正する方法
textlint
proofreading-helper
textlint-rule-prh
textlint を使った快適なドキュメント環境を作った話
MacにMeCabを利用できる環境を整える