あにまるブログ
「あにまるAIらぼ」はDjangoで作成しています
ラボクオリティなので、
コードのご利用などは自己責任でお願いします
選挙ポスター貼り
昨日、手紙を受け取りました。
いい手紙が届くのは嬉しいものですね、感謝。
少し前に、選挙のポスター貼りのお手伝いをさせてもらいました。
何もわからず、足を引っ張っちゃったなと反省したのを覚えています。
そこで、何かの参考になるかもしれないので、
「どうやったら上手くやれたか?」
と反省してみました。
【反省点】
・PDF のエクセル化ができなかった(手入力)
PDF のエクセル化は後述します。
・わかりにくい場所はヤフー地図を使うべきだった(気づくのが遅かった)
番地程度までをヤフー地図で検索するとハイライトしてくれます。
グーグルマイマップはあまりあてにならないです。(番地まで入力ならまずまずの精度)
・脚立を用意すればよかった(途中からでも)
数は少ないものの、けっこう高めの掲示板ありました。
【PDF のエクセル化〜グーグルマイマップ】
(急いで書いたのでミスがあったらごめんなさい)
以下の手順でやれば、手入力よりは手間が少ないと思います。
① Python 環境を整える(今回は Jupyter Lab でやります)
② Tesseract-OCR のインストール(環境に合った bit を選んでください)
https://github.com/UB-Mannheim/tesseract/wiki#tesseract-installer-for-windows)
パスは"C:\Program Files\Tesseract-OCR\tesseract.exe"です。
★ インストール途中の Select components to install: のところの
Addtinal script data (download) と Addtional language data (download)
を展開して、Japanese 関連の項目を5カ所チェックします。
参考にさせてもらったサイト
https://gammasoft.jp/blog/tesseract-ocr-install-on-windows/#download
③ pdf2image と pycor をインストール
!pip install pdf2image pyocr
④ PDF のエクセル化
★のあるところは、変更の必要がある可能性のある箇所です。
「リスト化し不要な文字列を除去」のところは変更しなくていい可能性もありそうです。
import os
import pandas as pd
from pdf2image import convert_from_path
import pyocr
# ★ファイルパスを指定
pdf_path = '掲示板.pdf'
# PDFを読込み
imgs = convert_from_path(pdf_path)
# 保存用の名前を用意
name = pdf_path.split('.')[0]
# ★Tesseract-OCRに一時的にパスを通す
os.environ["PATH"] = "C:/Program Files/Tesseract-OCR"
tools = pyocr.get_available_tools()
# テキストを抽出
text = tools[0].image_to_string(imgs[0], lang='jpn')
# ★リスト化し不要な文字列を除去
l = text.split('\n')[4:]
l.remove('設置 場')
l.remove('所')
# 空の文字列''以外をリストに抽出
l2 = [i for i in l if len(i)>=1 ]
# ★設置番号の追加(1-7までといった感じでdを作る)
d = {1:7, 2:7, 3:7, 4:7, 5:7, 6:5}
nlist = []
for k, v in d.items():
for i in range(v):
nlist.append(str(k) + '-' + str(i+1))
# データフレーム化
df = pd.DataFrame({'設置番号': nlist, '所在地': l2[0::2], '設置場所': l2[1::2]})
# エクセルファイルに保存
df.to_excel(f'{name}.xlsx', sheet_name=name, index=False)
⑤所在地と設置場所が変になってるところを目視で修正
ところどころ入れ替わってしまうところがあるようです。
⑥グーグルマイマップに読み込んで完成
キツかったけど、ホントによい経験になりました。
どうもありがとうございました!
コメント投稿 ホーム