プロジェクトあずき、そしてGitHubを始めた

課題

修士論文の作成において、一番疲れたことは先行研究のまとめでも、研究手法の確立でもなく、データの入力だった。それは恩師のO先生にいつも言われていたことで、データ収集の難しさを痛感した。

当時、私は地道に100年度分以上の有価証券報告書から必要となるデータを手打ちで集計していた。その非効率さにものすごく違和感を覚えたものの、研究の完成を優先させた。

ブルームバーグ端末の限界

データ不足問題について、新たな指導教員のY先生にブルームバーグ端末の活用を薦められた。おかげで、東大でも数台しか配置されていないブルームバーグ端末の利用権をもらった。

あのデータの宝箱とも言えるブルームバーグ端末だが、残念ながら、私の研究にとって一番重要な「役員構成」に関するデータがとても粗末に扱われているようだった。出力の仕方にも不便があって、あまり役に立てそうになかった。

わずか数回の利用で私はブルームバーグ端末を諦めて、ツールの自主開発を決意した。

プロジェクトあずき

「プロジェクトあずき」は上記の課題の解決を目指し、開発されたPythonのモジュールである。本来なら、実証研究パッケージの「プロジェクトみかん」の一機能として開発していたが、やがて規模が大きくなり、1つのプロジェクトとして独立させた。

あずきは企業の有価証券報告書から経営指標および役員構成の情報を集計し、CSVファイルかもしくはExcelファイルに出力することができる。初めから汎用性を重視してきたので、主流の日本会計基準はもちろん、国際基準と米国基準も対応している。EDINETの開示文書(PDFファイル)であればほとんど網羅できるではないかと思う。

あずきの開発はすでに9割が完成しており、実用できるレベルに達している。

改行コード特定システム
(Backslash-N Positioning System)

プロジェクトあずきの機能を支えているのは、この改行コード特定システム(BPS)である。その仕組みは極めてシンプルなのだ。有価証券報告書のPDFファイルをPythonにインプットすれば、普段見えない大量な改行コードが文書の間に現れる。例えば、

私はみかんです。
アニメが好きですが、
オタクではありません。

という文章をインプットしたら、

私はみかんです。\nアニメが好きですが、\nオタクではありません。

というようになる。「\n」はつまり改行コードだ。この改行コードは実に便利である。あずきの汎用性を可能にしてくれた。確かに、Pythonにもともとfindやre.finditerなどの検索方法がある。しかし、それらの方法を特定のために使うと、些細な変動と違いさえあれば、すぐ汎用性が失せる。上記の例を敬語からタメ語にしてみよう。

私はみかんだ。\nアニメが好きだが、\nオタクではない。

ご覧の通り、敬語版と比べて「みかん」以降の文字の位置は全部変わった。そこで、改行コードを利用すれば、この問題を回避できる。なぜなら、改行コードの数も、相対的位置も変わらなかったからだ。

例として、「アニメ」という単語を特定したいとしよう。敬語版とタメ語版に関係なく、「アニメ」はつねに1つ目の改行コードの後ろ、2つ目の改行コードの前にある。文体が変わっても、「アニメ」の位置を特定できるのだ。これはBPSの仕組み、ロジックである。

GitHub

今日からGitHubを始めた。主にバージョン管理のツールとして運用していきたい。今まで独自にバージョン管理に努めようとしたが、だんだん限界感を覚えてきた。特に、最近引っ越し作業のために、1ヶ月間プログラミングを休んで、気づいたら、自分の書いたコードですら読めなくなった。より高度な記録および追跡が欲しい。

そして、全部ではないかもしれないが、一部のコードをGitHubを通して公開したい。せっかく思いついたアイデアだから、ヒントとして必要とする人に共有したい気持ちがある。近々、BPSを標準化してGitHubで公開しようと思う。

あずきちゃん

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です