自社のHPを作りがてら大昔に作ったアプリを再度ウェブアプリとして実装しようと思い立った。30年も前に作った文書整形系のソフトがあったのを思い出していきなり実装始めた。作ったのは「ですます」TO「だである」で、丁寧語を「だである」に変換するものだ。
大昔の知見ではたしかサ行だけ特別扱いすればよかったような気がしてたのだが、なにせ辞書がない。昔は管理工学研究所というところから出ている松というワープロソフトの漢字変換プログラムに辞書ダンプ機能があり、これを使って実装していたがはてどうしたものか。と探してるとWikitionay Weblioというのが見つかったのでこれ幸いとサ行5段活用を頂いて実装を開始した。お手軽なPHPでpreg_replaceという関数が正規表現サポートしてるようなのでこれで実装。
あまり情報がないようだが、お約束として文字コードは指定しておかないとだめなようだ。
mb_regex_encoding("UTF-8");
あとマッチング回数を無制限にしても1行に付き変換してくれるのは1回みたいなので句点で行に分けるかループにしなければならない。まずはお手軽実装ということでループで許してもらうことにした。
05
が、かるく動かしてみるとまったくだめ。30年後の今考えてみると動詞の活用にそって変換規則が異なるようだ。なのでか行、が行、サ行等辞書をダンプしてデータを作って再施行。なんとかまともに動くものができた。
元文書がこれ。
今日は渋谷に行きましたっちゃ。景色が美しかったのですが、
大変な吹雪でちょっと凹みましたな。
明日は晴れるといいですコロ。
変換後はこれ。
今日は渋谷に行ったっちゃ。景色が美しかったのだが、
大変な吹雪でちょっと凹んだな。
明日は晴れるといいコロ。
まともに動かすとボロがありそうなんだけど、とりあえずはそこそこ動いたのでよしとしよう。
ちなみにワードにも同じ機能があるんだけど、変換結果はこんな感じ。自作の方が性能いいですな。
今日は渋谷に行きましたっちゃ。景色が美しかったのだが、
大変な吹雪でちょっと凹んだな。
明日は晴れるといいコロ。
興味のある方はここでテストできます。
こんなのは動かねぇとかあったら教えて下さい。
ちなみにだ、であるをですますに変える方が簡単だった気がします。
Copyright(c) 2015 Birdland Ltd. All Rights Reserved.