ミドリコ雑記帖

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

【#04】プログラム完全初心者がPythonを触ってみた(はじめての要件定義と基礎設計)

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


1

 やっぱり基礎が大事よね!と、買った本を読んでいたのですが、当面必要のなさそうな感じがすると、途端に集中力がなくなってしまいます。
 これはよろしくないと思ったので、やりたいことについて考えながら、必要に応じて本を見ていくことにしました。

 前にも書きましたが、私のやりたいことは、例えるなら

50冊くらいの冊子のタイトルやら著者名やら発行年月日やら出版社やらを、作成済みのwebページにアップする

という感じの作業です。

 これを自分なりに分解してみると

  1. 冊子をスキャンしたPDFから必要なデータを抜き出す
  2. 抜き出したデータを一定の形(エクセルとかCSVとか?)にまとめる
  3. まとめたデータを元にhtmlを書く←当初はここだけをPythonでやるつもりだった

 の3段階かな、と思います。

 いま取り組んでいるのは最初の「冊子をスキャンしたPDFから必要なデータを抜き出す」部分ですが、この部分についても工程を考えてみました。

  1. 冊子をスキャンしたPDFの入ったフォルダを開く
  2. フォルダ内の任意のPDFファイルを画像に変換する
  3. 画像に変換したファイルをOCRしてテキストデータに変換する
  4. テキストファイルを作成して、変換されたテキストデータを書き込む
  5. 2−4の工程をフォルダ内のPDF全部に対して繰り返す

 こんな感じで考えてるんだけどどうかなあ?と夫に聞いてみたところ、「それが要件定義だから、次は基礎設計を考えてみるといいよ」と言われました。ほう。知らん間に要件定義とかいうことをやっていたらしい。

 基礎設計とはなんぞやというのを説明してもらったのですが、要するに演奏会の進行表とかタイムテーブルとかを作るみたいなものだなと私は理解しました。当日の進め方を外部のスタッフの人に説明するみたいなものかなと。

[目的]
冊子をスキャンしたPDF(以下元PDFと呼ぶ)約50件をテキストデータに変換し、テキストファイルを作成する

[手順]
•冊子をスキャンしたPDFの入ったフォルダを用意する
 ・フォルダ内にあるのは変換するPDFのみ
 ・データ形式はすべてpdf

•フォルダ内の任意のPDFファイルを画像に変換する

•画像に変換したファイルをOCRしてテキストデータに変換する

•テキストファイルを作成して、変換されたテキストデータを書き込む
 ・元PDF一つにつき一つのテキストファイルを作成する
 ・作成するテキストファイルの名前は、元PDFの名前と同じものとする(後で元PDFとテキストデータを照合するときに、名前が同じほうが便利だから)

•画像に変換〜テキストファイル作成の工程を、フォルダ内のPDF全部に対して繰り返す

•新規フォルダを作成し、作成したテキストファイルを収納する
 ・フォルダ名は「ocr_作業した日時(yymmddhhmmss)」とする(秒まで入れておくとファイル名が絶対に重複しなくて便利だと言われたのでそうしました)

 思いついたことはなんでも書いておいたほうがいいよ、と夫に言われたので、思いつく端から書きました。こういう作業、楽しくて好きだなと思いました。あと、こうやって書いてると、実際の作業が想像できるし、分かっていることと分からないことが特定できていくので、もやもやが解消されて気持ちいいです。

 実行ファイルとか結果とかどこに置いたらいいんだろう?というのは、それぞれ置き場を作っておいたほうがいいよ、と夫にアドバイスをもらいました。なるほど、それなら今後他のプログラムを作るときも、いちいちどこに置くか考えなくていいから便利だ。

 作業のイメージが湧いたところで、次は「これを実行するためにはどういうモジュールを使えばいいのか」を調べてみることにしました。

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