![見出し画像](https://assets.st-note.com/production/uploads/images/159264209/rectangle_large_type_2_0e9bf4ba494ba76e94ebdd1eec757306.png?width=1200)
[#28] 手書きPDFから文字おこし
始めに
地味な技術検証情報
紙文書は業務の効率化を阻害する要因の1つです。データになっていないので業務効率化には、紙文書の内容をデータにすることが欠かせない。ここで注目されるデジタル技術が、AI(人工知能)で紙文書の文字(手書き含む)を認識し、データにするAI技術
そこで今回はChatGPTとGeminiを使って「手書文字」を認識してデータにする検証を
1.手書きで書いた納品書とか請求書をJPGにしてAIに読ませる、出来たJson(Gemini)現時点での認識はGeminiに軍配(2024/2/21)
![](https://assets.st-note.com/img/1729741456-g8j21VrmQtsJzvCD6Ed9cX4y.jpg)
{ "請求書": {
"日付": "2024年2月20日",
"宛先": "藤井商店様",
"請求内容": [
{
"品名": "USBメモリ",
"数量": 1,
"単価": 1050,
"金額": 1050
},
{
"品名": "ノート PC",
"数量": 1,
"単価": 10000,
"金額": 10000
}
],
"合計金額": 11050
}
}
2.JsonファイルをPythonプログラムでCSV化する===========================================
import pandas as pd
import json
# target.jsonからJSONデータを読み込む
with open('target.json', 'r', encoding='utf-8') as f:
data = json.load(f)
# '請求書'キーの下にあるデータを取得
invoice_data = data['請求書']
# ネストされた'請求内容'データを平坦化
df_items = pd.json_normalize(invoice_data, record_path=['請求内容'])
# '請求書'レベルのデータを取得して各行に繰り返し適用
df_items['請求書_日付'] = invoice_data['日付']
df_items['請求書_宛先'] = invoice_data['宛先']
df_items['請求書_合計金額'] = invoice_data['合計金額']
# 列名を変更
df_items.rename(columns={'品名': '請求書_請求内容_品名', '数量': '請求書_請求内容_数量',
'単価': '請求書_請求内容_単価', '金額': '請求書_請求内容_金額'}, inplace=True)
# 列の順番を調整
df_final = df_items[['請求書_日付', '請求書_宛先', '請求書_請求内容_品名', '請求書_請求内容_数量',
'請求書_請求内容_単価', '請求書_請求内容_金額', '請求書_合計金額']]
# CSVファイルに出力
df_final.to_csv("out.csv", encoding='utf-8', index=False)
===========================================
取り出したCSV をデータベースへ取り込むなり、ノーコード・ローコード(プリザンター)へ取り込む、応用範囲は無限大