青竹雑記帖(6代目)

テキスト処理をメインとしたIT解説をします。

ふりだしにもどっています

連載は年明けまでおやすみ

お久しぶりです。現在進行形で \(^o^)/ やってます。端的に言えば、論文が実質的に振り出しに戻ってしまいました。全部反故になったわけではありませんが、ほぼ書き直し、組み直しなので先行き不透明です。少々連載ネタを思いつけないのもあって、思いきって年明けまで連載を休むことにしました。青竹先生の次回作にご期待ください!

その他の近況

西鉄天神大牟田線で今年も大晦日終夜臨時列車が運転され、正月ダイヤも三が日に施行されるので、論文の息抜きがてらそのデータ整備に勤しんでいます。文章に向かいつつ息抜きに数字に向かい合っており、結局パソコンから離れられないわけですが。……一応、終夜臨時の一覧形式の時刻表を作り、さらに通常ダイヤ分の車両運用関係資料3点セットもPDF原稿が出来上がりました。あとは資金調達をすれば印刷を発注して本ができるという算段です。来月下旬頃の頒布開始を考えています。

文字だけで扱うコンピュータの世界(11):テキストデータの料理準備(素材の形を揃えよ)

承前

ここまで10回 + おまけ1回の記事を読んでくださり、1世紀……いえ、1週間でしたか、それくらいの期間にわたるお試し活用をしたことで、テキストデータを作る方法のひとつである「テキストエディタを活用した文章などの記録」に関する基礎的な技が習得できたと信じています。まだテキストエディタを3分しか開いていない方は、少なくとも30分くらい遊んでみてください。すると明日のご飯が真鯛の刺身になります。高級なものはなかなか食べられませんが、近所のスーパーには養殖真鯛のサクが数百円くらいで並んでいたりします。九州は真鯛が全国よりも安いらしいのですが、詳細を調べたことはないので地域価格差を調べてみたいですね。15年前くらいの統計しか見つからなかったのでそれで比較しますと、10都市(札幌・仙台・東京・横浜・名古屋・京都・大阪・神戸・広島・福岡)の卸売1kgあたり平均価格が1,007円、各都市別には札幌2,009円、東京1,056円、大阪986円のところ、福岡が885円でした。他の項目も見ると、福岡だけで全国平均値を大きく引き下げているような価格水準でした。今もたぶん安めの水準だと思うので、みんな魚を食べに来てください。

www.e-stat.go.jp

食材の調理はここではできないので、テキストデータを調理します

閑話休題。みなさんの手元にテキストデータがたくさん生成されたと期待したいところですが、とにかく先を読んでみたい! という方に、面白そうなデータを探して持ってきてみることにします。最近は「オープンデータ」という取り組みで、たとえば郵便番号と住所の対応表ですとか、地域の災害時避難場所の一覧ですとか、先ほど述べた政府統計などが自由に利用できるようになっています。それらも、かつてはにっくきExcelワークシート形式でしたが、最近では、Excelでも読み込むことができて、それ以外の方法でも読み込んだり、幅広い活用が実現できるCSV(Comma Separated Values・カンマ区切りデータ)という、テキストデータで提供されるようになってきています。ありがたい話し!

ここでは、日本郵便が作成し、自由に利用できると明言している郵便番号データを利用してみます。ひとまず、「住所の郵便番号(CSV形式) > 読み仮名データの促音・拗音を小書きで表記するもの」とリンクをたどり、全国一括データ「ken_all.zip」をダウンロードしてみましょう。ダウンロード後、zipファイルを展開すると、KEN_ALL.CSVというファイルが出てきます。

www.post.japanpost.jp

KEN_ALL.CSVというファイルもテキストデータであり、かつ、テキストファイルによって実現されたシンプルなデータベースのひとつであると言えます。最近のExcelLibreOffice Calcでは、全国一括版のデータも最後まで全部読み込むことができますが、古いバージョンだと「ファイルが大きいので一部だけ読み込みました」のようなメッセージが出てくることがあります。今回は表計算ソフトを使わない方法でアプローチしますので関係はありませんが、このことを覚えておくと役に立つかもしれません。

さて、このファイルをテキストエディタMery」で開くと、次のような感じになります。

郵便番号データ「KEN_ALL.CSV」をテキストエディタ Mery で開いた画面です。
郵便番号データ「KEN_ALL.CSV」をテキストエディタ Mery で開いた画面です。

ちなみに、最終行は124,562行目(12万4562行目)で、沖縄県八重山郡与那国町与那国になります。このファイルは、めちゃくちゃな形式で書かれているわけではなく、一定の形式(フォーマット)に従って情報が書かれています。その説明は次のリンクにあります。

www.post.japanpost.jp

カンマ記号(,)で区切りつつ、15個の情報が記述されています。これをExcelに読み込ませると一覧表として分かりやすくなります……が、普通に開くと郵便番号データとの相性が悪いある種お節介な機能のため、データが正しく読み込まれません。頭のゼロが消えてしまいます。これは、郵便番号の数値を「数字」として変換してしまい、数字は先頭にゼロが来ないことから、それをバッサリ切ってしまいます。これを回避するには別の開き方をする必要があったと思いますが、方法を忘れましたのでプロの情報を探してください。LibreOffice Calcですと読み込む際に「テキストのインポート」という画面が出て、そこで列の種類として「テキスト」を選ぶときちんと頭にゼロがついたまま読み込んでくれます。

Excelですとデフォルトでは頭のゼロが消えてしまいます。
Excelですとデフォルトでは頭のゼロが消えてしまいます。

テキストエディタによっては、CSVをきれいに表示してくれる機能を持っていたり、CSVのデータ区切りを利用して簡単な計算機能を実現しているものもあります。私が知っているCSV専門のテキストエディタは「Cassava Editor」です。お試しください。

www.asukaze.net

何が言いたかったか

データ活用のためには、データを一定の形で整えておくことが大事です。料理の際に基本的に食材の大きさを揃えるのと同じだと覚えていただければ。

次回予告

データの料理をしますが、具体的内容を思いついていません。どうしましょう。考えます。

本日も休業(ワクチン副反応やばし)

本日も休業です。

昨日、今日と新型コロナウイルス感染症(COVID-19)ワクチンの副反応でぶっ倒れていました。熱が最高で38.6℃まで上がり、全身の筋肉痛や頭痛などを数年ぶりに味わいました。昨日夜あたりに時刻表をせっせと作っていましたが半分意識が飛んでおり、こちらの記事ネタを考えるまで頭が回りませんでした。いやはや。

明日はどうですかね。体調は戻りましたが、大学関係の用事が立て込んでいるので書けるかどうかわかりません。次は来週火曜日になるやもしれません。期待せずお待ちください。

本日休業

いつもの講座はお休みです

今日はCOVID-19(新型コロナウイルス感染症)ワクチンを接種してきました。この記事を書いている時点で副反応は特に出ていません。今日の講座が休業なのは、単にネタを整えられていないからです。明日ご期待ください。

今日の活動

今日は、GnuplotLaTeXを組み合わせ、近いうちに出す同人誌(西鉄電車車両運用調査成果資料)を作っていました。年末のコミケの折、委託先 & 自分が留守番をするサークルスペースに分厚いファイルが鎮座しているはずです。こちらもご期待ください。当システムは、まさにテキストファイルを組み合わせてデータベースを作り、そこに自分のプログラムと偉大なる先人が作ったソフトウェア群(Ruby処理系、GnuplotLaTeX)を組み合わせてできたものであり、テキストファイル活用の集大成であるともいえます。将来的には謎の講座で紹介したいと思います。

次回予告

「テキストファイルに書かれたデータの活用法を模索します。」と書いたので、その約束を果たさねばなりません。何にしましょうかね。

文字だけで扱うコンピュータの世界(10):テキストエディタ小技集(矩形選択・指定桁改行)

承前

テキストエディタの小技を探すと、お手軽に紹介できる機能が意外と見つかりませんでした。今回紹介する「矩形選択」と「指定桁改行」で、一旦小技集は終わりにします。

矩形選択

  • 対応エディタ:メモ帳以外ほぼ全部

「くけいせんたく」と呼びます。行の途中から、複数の行を四角形(矩形)のように選択して、切り取り、コピー、貼り付け、編集ができます。最初のうちはうまい使いどころが見つからないかもしれませんが、プログラミングの時や決まった形のデータを処理する際に「おおっ!」と感動すること請け合いです。選択のイメージは下のような感じです。

矩形選択機能により、3行目から7行目までの「かきくけこ」だけを選択しました。
矩形選択機能により、3行目から7行目までの「かきくけこ」だけを選択しました。

マウスを使う場合、たいていのテキストエディタでは、Altキーを押しながら選択したい範囲をドラッグするとうまくいきます。Visual Studio Codeですと少々違うようです。

矩形選択された範囲に対しての編集処理の振る舞いは、テキストエディタによりさまざまです。たとえば、サクラエディタでは、矩形選択した状態で何かを入力すると、その選択範囲の前に、入力した文字が挿入されます。一方、MeryVisual Studio Codeでは選択していたものが消去され、その跡に入力した文字が入ります。通常の選択時の振る舞いを考えると、MeryVisual Studio Codeの方が一貫性のある動作であると評することもできますが、エディタによる振る舞いに注意してご活用ください。

指定桁改行

これは長い行を指定のケタ、たとえば80ケタ(半角80文字・全角だと40文字)で改行していくような機能です。これは古代コンピュータ史において要請されていたことがあるものですが、現代ではあまり使うことはないかもしれません。現代での用法を強いて挙げるならば、横方向に無限に長く表示されてしまうような環境でも困らないように、適度に改行を入れて折り返しておくような感じでしょうか。

どこまでも横に長い文章があります。
どこまでも横に長い文章があります。

折り返し表示があるテキストエディタなら設定すればよいですが、そうでないテキストエディタのために改行を一括して入れる機能を持つテキストエディタもあります。
折り返し表示があるテキストエディタなら設定すればよいですが、そうでないテキストエディタのために改行を一括して入れる機能を持つテキストエディタもあります。

こうすると、どのようなエディタでもいい感じに表示できます。
こうすると、どのようなエディタでもいい感じに表示できます。

次回予告

次からは、テキストファイルに書かれたデータの活用法を模索します。