ミドリコ雑記帖

ミドリコが思いついたことをなんでも書く場所。Amazonアソシエイト参加、楽天アフィリエイト利用しています

【#01】プログラム完全初心者がPythonを触ってみた(買った本、やりたいこと、はじめの一歩)

 前の話はこちら。
midoliko-tsuki.hatenablog.com

1

 Pythonを勉強してみると決めて、まず本を買いました。

 たぶんネット上の情報だけでも基本は勉強できるんだろうとは思ったのですが、流れるようにTwitterを開く様が想像できたので本にしました。

 本に言われるままAnacondaをインストール。ダウンロードしようとして、英語を読もうともせず適当にクリックしたところ、登録画面が出てきて(有償版のところをクリックしたのではないかと思われる)、本にはこんなのなかったんですけど?? えっえっどうしたらいいの??? と半泣きになったりしましたが、どうにかこうにか完了しました。私は英語が出てきた途端に理解を放棄する癖をどうにかしたほうがいい。

 で、テキストを読み進めていたのですが、PCと本を同時に開くのが面倒などの怠惰な理由により、だんだんテキストだけ見るようになり、そのうち何を言ってるんだか分からなくなってきました。後から気がついたのですが、この本はある程度プログラムの基礎的なことが分かっている人向けでした。本は悪くない。

 そのうち本を見るのも億劫になってきました。これはよくない傾向です。どこかで挫折するのはいいとしても、作りたいものに手もかかっていないうちに挫折するというのは、精神的に堪えそうなので避けたい。

 Pythonの本にも書いてあったのですが、基礎を学んでいなくても、インターネットで検索したものをつなぎ合わせるだけでそれなりに動くものができてしまうとのこと。方針を変えて、とりあえずなにかを作ってみることにしました。

2

 ところで、私がやりたいのはどんなことか、ですが、例えていうなら、50冊くらいの冊子があって、それぞれの冊子のタイトルやら著者名やら発行年月日やら出版社やらを、作成済みのwebページににアップしたい、という感じの作業です。

 最初に「Pythonでやってみたら?」と言われたときは、htmlのコードを書く作業をPythonでやって、そのための材料(タイトルやら著者名やら発行年月日やら出版社やら)は手動で入力するつもりでした。
 ところが、夫に話してみたところ、「それもPythonでやればいいじゃない」と、またもや軽い返事が返ってきました。

 想像してみたのですが、冊子の形式は一定ではなく、欲しい情報がどこにあるのか分からない上に、長さや形式が一定なわけでもないので、タイトルや著者名のような情報を自動的に集めてくるのは難しいかなと思いました。できるのかもしれませんが、私がどういう命令を出せばいいのかを思いつくほうが無理です。
 ただ、私が持っているのは冊子そのものではなく、冊子をスキャンしたPDFなので、これをテキストデータに変換して、そこからコピー&ペーストで一覧にするのはありだなと思いました。自分で打つより楽かどうかは微妙ですが、思い込みによる誤入力は避けられそうです。

 ということで、まずはPDFからテキストを抽出する方法を調べてみることにしました。

 参考にしたのはこちらです。
dev.classmethod.jp

 まずはやってみようとしたのですが、さっそく行き詰まりました。なんか書いてあるとおりにいかない。いっぱい英語の文章が出てきて、うまくいっていない感じだけは伝わる。
 ずらずら出てくる英文を読む努力を放棄して夫に泣きついたところ、なにやら調べた後、ソフトをインストールしはじめました。

 これはあとから聞いてなんとなく理解したのですが、どうやら私はPythonをダウンロードしたものの、インストールできていなかったらしいです。そしてMacにはもともとPython2が入っているので、本を読みながらやっていた簡単な例はできていたのではないかとのこと。
 そういえばPythonのバージョンを確認するという練習問題はやったけど、バージョンいくつかは見ていなかった気がする(テキストと同じではないだろうと思って数字はちゃんと見てなかった)。

 で、XcodeとHomebrewをインストールして、再度トライ。今度は文字化けしたテキストが出てきました。

 また失敗したの〜? と涙目になりましたが、夫いわくプログラム自体はちゃんと動いているけれど、PDF内の文字をテキストとして認識できていないのだろうとのこと。
「直接読むのは無理みたいだから、OCRでやったらいいじゃない」とのことなので、今度はOCRを使ってみることにしました。ううん全然進まない。



 続きはこちら。
midoliko-tsuki.hatenablog.com