同じことを繰り返すことが平気ですか?
「めんどくせ~」と思いませんか?
こう思ったら、あなたはプログラミングをやるべきです。
すでにプログラミングをやっているなら、そのまま続けてください。
もし、プログラマーとして働いているなら、それは天職かもしれません。
それぐらい、面倒くさがり屋はプログラミングに向いています。
本記事の内容
- 面倒くさがり屋こそプログラミングを学ぶべき
- 「めんどくせ~」と感じることが改善の第一歩
- 「めんどくせ~」が効率UPにつながった実例
それでは、上記に沿って説明していきます。
面倒くさがり屋こそプログラミングを学ぶべき
面倒くさがり屋は、プログラミングを学ぶべきです。
プログラミングができるようになれば、面倒なことを解決することが可能になります。
面倒なことが解決すれば、時間や労力を節約することができます。
通常、面倒なこととは、達成不可能なことではありません。
普通にやれば達成できるけど、時間や労力がかかることが面倒なのですよね。
そして、面倒なこととは、大抵は単調な作業であることが多いでしょう。
また、そこには「俺でなくても」「私でなくても」という気持ちが入っているはずです。
つまり、自分以外の他人でも代わりにできるはずだという気持ちですね。
面倒なこととは、まとめると以下になります。
- 単調なこと
- 簡単なこと
- 時間がかかること
これなんて、まさにプログラミングで解決できることです。
現在は、AI(人工知能)を使って、創造的なことさえシステム化しようとしています。
「めんどくせ~」と感じることが改善の第一歩
プログラミングが、面倒なことを解決することはわかりました。
では、なぜ面倒くさがり屋がプログラミングを学ぶべきなのでしょうか?
それは、自分のためです。
まず、自分の身の回りにある面倒なことを解決できます。
そうすると、時間や労力を節約することが可能になります。
そうやってできた余裕を他の困難な作業に割り振れます。
そうしていけば、自ずとできることは増えていきます。
成長すると言うことですね。
そもそも、「めんどくせ~」と感じること自体に価値があります。
「めんどくせ~」は、ある意味センサーです。
では、逆に「めんどくせ~」を感じないなら、どうなるでしょう?
その場合は、何度も同じこと永遠と続けるでしょう。
この場合には、何も改善されません。
つまり、成長がありません。
以上より、「めんどくせ~」は改善の第一歩なのです。
「めんどくせ~」が効率UPにつながった実例
「めんどくせ~」が効率UPになった実例を挙げておきます。
数日前から、オーディオブックの自作に挑戦しています。
そのことは、次の記事でまとめています。
基本的には、面倒なことを避けて、効率良く作業を進めています。
しかし、最後の最後で面倒な作業が残りました。
まさに「めんどくせ~」です。
電子書籍(PDF・画像)から、テキストをページ毎に(OCRで)取り出した後の作業です。
取り出したテキストを音声合成していくことになります。
その際、章ごとに音声にしようと考えました。
そのためには、ページを集約して章分のテキストを用意する必要があります。
また、音声合成では改行が問題になります。
例で問題を説明します。
例えば、「~読んでしまった。しかし、~」というフレーズがあるとします。
~読んでしま った。しかし、~
このように紙面で表示されていることが、普通にあります。
改行を挟むと言うことです。
そして、この場合でもOCRはそのまま読み取ります。
この読み取ったテキストをそのまま音声合成すると、次の問題が起こるのです。
「読んでしま」と発音された後に間を取ります。
そして、その間の後に、「った。」と発音されるのです。
聞きにくいこと、この上ありません。
改行の問題を解消するだけで、かなり聞きやすい音声になります。
ただ、欲を言えば、「。」で間を取って欲しいです。
間がなければ、単調になってしまいがちです。
そこで、意図的に「。」の後に改行を入れれば、間が生まれることになります。
以上をまとめます。
- ページ毎のテキストを章毎に結合する
- 結合したテキストから改行を除去する
- 結合したテキストの「。」の後に改行を追加する
これを手作業でするのは、面倒くさいです。
章のページ数も固定されていません。
改行も除去して、追加も面倒です。
そこで、プログラミングの出番です。
今回は、PHPでコーディングしました。
テストを兼ねて、15分以内で開発できました。
<?php //引数 $start_no = $_GET["start"]; $end_no = $_GET["end"]; if(strcmp($start_no, "")==0){ $start_no = $argv[1]; $end_no = $argv[2]; } $read_str = ""; for($i=$start_no; $i<=$end_no; $i++){ //適当に変更 $target_file_name = $file = "b-" . sprintf('%03d', $i) . ".txt"; $data = file_get_contents($target_file_name); $data = mb_convert_encoding($data, "UTF-8", "SJIS"); $read_str = $read_str . $data; } if(strcmp($read_str, "")!=0){ //すべての改行を除去 $read_str = str_replace(array("\r\n","\r","\n"), '', $read_str); //「。」で改行 $read_str = str_replace("。", "。" . PHP_EOL, $read_str); //「。」で改行 //$read_str = str_replace("?", "?" . PHP_EOL, $read_str); } echo nl2br($read_str); ?>
使い方としては、URLのクエリに以下のモノを付加します。
?start=1&end=3
上記クエリで実行すると、b-001.txt、b-002.txt、b-003.txtを結合します。
そして、その結合した文字列から、改行を除去して、「。」のあとに改行を追加します。
そうやって加工した文字列が、次のように表示されます。
あとは、これを音声合成用のツールで音声にするだけです。
今回の書籍は、284ページあります。
15分の投資だけで、十分にもとが取れると思います。
さらには、今後もこのプログラムは利用できますからね。
以上が、「めんどくせ~」が効率UPにつながった実例です。