Skip to content

🖥 CLI Usage

YomiToku-Client をむンストヌルするず、専甚の CLI コマンド yomitoku-client が䜿甚できたす。 SageMaker 䞊の YomiToku ゚ンドポむントにアクセスし、ドキュメントの解析や結果倉換を行いたす。


Document Analyzer

文曞解析APIを利甚する堎合は、--apiを省略するか、--api document-analyzerを指定したす。 JSONに加えお、CSV、HTML、Markdown、Searchable PDFぞの倉換ず、OCR・レむアりトの可芖化を利甚できたす。

🚀 ファむル単䜓の凊理

指定したファむルを解析するためのコマンドです。 ファむルを凊理し、解析結果を指定のフォヌマットで出力したす。

クむックスタヌト

yomitoku-client single ${path_file} -e ${endpoint_name} -r ${region} -f md -o demo
匕数 説明
${path_file} 解析察象のファむルパスを指定したす。 (必須)
-e SageMaker の゚ンドポむント名を指定したす。 (必須)
-r AWS のリヌゞョン名を指定したす。
-a ゚ンドポむントが提䟛する API を指定したす。
document-analyzer既定 / table-semantic-parser
-f 出力フォヌマットを指定したす。
察応圢匏json, csv, html, md, pdf
-o 解析結果を保存する出力先ディレクトリを指定したす。

䟋

yomitoku-client single samples/demo.pdf \
  -e yomitoku-endpoint \
  -r ap-northeast-1 \
  -f md \
  -o output/

🆘 ヘルプの参照

CLI の利甚可胜なオプションは、--help で確認できたす。

yomitoku-client single --help

⚙ オプション詳现

オプション 型 / 倀 説明
-e, --endpoint TEXT SageMaker の゚ンドポむント名必須
-r, --region TEXT AWS リヌゞョン名䟋ap-northeast-1
-a, --api [document-analyzer / table-semantic-parser] ゚ンドポむントが提䟛する API既定document-analyzer
table-semantic-parser の出力は json のみ
-f, --file_format TEXTカンマ区切りで耇数指定可
䟋json,csv,pdf
解析結果の出力フォヌマットjson / csv / html / md / pdfを耇数指定可胜
-o, --output_dir PATH 解析結果を保存するディレクトリパス
--dpi INTEGER 画像解析時の解像床DPI
-p, --profile TEXT 䜿甚する AWS CLI プロファむル名
--request_timeout FLOAT 各リク゚スト単䜍のタむムアりト秒
--total_timeout FLOAT 党䜓凊理のタむムアりト秒
-v, --vis_mode [both / ocr / layout / none] 出力画像の可芖化モヌド
OCR結果 / レむアりト / 䞡方 / なし
table-semantic-parser では未察応のためスキップ
-s, --split_mode [combine / separate] 出力ファむルの分割モヌド
1぀にたずめる / ペヌゞごずに分割
--ignore_line_break (flag) テキスト抜出時に改行を無芖する
--pages TEXT 解析察象ペヌゞを指定䟋0,1,3-5
--intermediate_save (flag) 䞭間生成物RAW JSONを保存する
--workers INTEGER 䞊列凊理に䜿甚するワヌカヌ数デフォルト: 4
--threthold_circuit INTEGER サヌキットブレヌカヌの倱敗閟倀䟋5
--cooldown_time INTEGER サヌキットブレヌカヌのクヌルダりン時間秒
--read_timeout INTEGER HTTPリク゚ストの読み取りタむムアりト秒
--connect_timeout INTEGER HTTPリク゚ストの接続タむムアりト秒
--max_retries INTEGER HTTPリク゚ストの最倧再詊行回数
--help (flag) ヘルプを衚瀺しお終了する

💡 Tips

よく䜿う組み合わせ

  • Markdown 圢匏ずCSVで解析結果を保存する yomitoku-client single invoice.pdf -e yomitoku-endpoint -f md,csv
  • OCR 結果を PDF に埋め蟌み可芖化する yomitoku-client single report.pdf -e yomitoku-endpoint -f pdf -v both
  • 侭間JSONも同時に保存する yomitoku-client single form.png -e yomitoku-endpoint -f csv --intermediate_save
  • 特定ペヌゞのみを解析 yomitoku-client single book.pdf -e yomitoku-endpoint --pages "1,2-5"

🧟 補足

  • AWS CLI の蚭定枈み環境で実行するこずを掚奚したす。
  • 出力ディレクトリ-oが存圚しない堎合、自動で䜜成されたす。
  • CLI の戻り倀は解析結果ファむルのパスを返したす。
  • --intermediate_save を指定するず、内郚凊理のRAW JSONを同ディレクトリ内に保存したす。
  • 高解像床凊理を行う堎合は、--dpi 300 などを指定するこずでOCR粟床が向䞊したす。

🚀 バッチ凊理ディレクトリ䞀括解析

耇数ファむルを䞀括解析するための バッチ凊理コマンドです。 指定したディレクトリ内のファむルを順次凊理し、解析結果を指定のフォヌマットで出力したす。

クむックスタヌト

yomitoku-client batch -i ${input_dir} -o ${output_dir} -e ${endpoint_name} -r ${region} -f md
匕数 説明
-i, --input_dir 解析察象のファむルを含むディレクトリのパスを指定したす。 (必須)
-o, --output_dir 解析結果を保存するディレクトリを指定したす。 (必須)
-e, --endpoint SageMaker の゚ンドポむント名を指定したす。 (必須)
-r, --region AWS のリヌゞョン名を指定したす。
-a, --api ゚ンドポむントが提䟛する API を指定したす。
document-analyzer既定 / table-semantic-parser
-f, --file_format 出力フォヌマットを指定したす。
察応圢匏json, csv, html, md, pdf

䟋

yomitoku-client batch \
  -i ./samples \
  -o ./results \
  -e yomitoku-endpoint \
  -r ap-northeast-1 \
  -f md

🆘 ヘルプの参照

CLI の利甚可胜なオプションは、--help で確認できたす。

yomitoku-client batch --help

⚙ オプション詳现

オプション 型 / 倀 説明
-i, --input_dir PATH 解析察象ファむルを含む入力ディレクトリのパス必須
-o, --output_dir PATH 解析結果を保存する出力先ディレクトリのパス必須
-e, --endpoint TEXT SageMaker の゚ンドポむント名必須
-r, --region TEXT AWS リヌゞョン名䟋ap-northeast-1
-a, --api [document-analyzer / table-semantic-parser] ゚ンドポむントが提䟛する API既定document-analyzer
table-semantic-parser の出力は json のみ
-f, --file_format TEXTカンマ区切りで耇数指定可
䟋json,csv,pdf
出力フォヌマットjson / csv / html / md / pdfを耇数指定可胜
--dpi INTEGER 画像解析時の DPI解像床
-p, --profile TEXT 䜿甚する AWS CLI プロファむル名
--request_timeout FLOAT 各リク゚スト単䜍のタむムアりト秒
--total_timeout FLOAT 党䜓凊理のタむムアりト秒
-v, --vis_mode [both / ocr / layout / none] OCR 結果やレむアりト構造の可芖化モヌド
table-semantic-parser では未察応のためスキップ
-s, --split_mode [combine / separate] 出力ファむルの分割モヌド1぀にたずめる / ペヌゞごずに分割
--ignore_line_break (flag) テキスト抜出時に改行を無芖する
--pages TEXT 解析察象ペヌゞを指定䟋0,1,3-5
--workers INTEGER 䞊列凊理に䜿甚するワヌカヌ数デフォルト: 4
--threthold_circuit INTEGER サヌキットブレヌカヌの倱敗閟倀䟋5
--cooldown_time INTEGER サヌキットブレヌカヌのクヌルダりン時間秒
--read_timeout INTEGER HTTP リク゚ストの読み取りタむムアりト秒
--connect_timeout INTEGER HTTP リク゚ストの接続タむムアりト秒
--max_retries INTEGER HTTP リク゚ストの最倧再詊行回数
--help (flag) ヘルプを衚瀺しお終了する

💡 Tips

よく䜿う組み合わせ

  • Markdown 圢匏ずSearchable-PDFで党ファむルを䞀括解析する yomitoku-client batch -i ./docs -o ./out -e yomitoku-endpoint -f md,pdf
  • OCR 結果を PDF に可芖化しお出力する yomitoku-client batch -i ./input -o ./vis -e yomitoku-endpoint -f pdf -v both
  • CSV 出力で構造化デヌタずしお保存する yomitoku-client batch -i ./forms -o ./csv -e yomitoku-endpoint -f csv
  • 特定ペヌゞのみを察象に解析 yomitoku-client batch -i ./pdfs -o ./out -e yomitoku-endpoint --pages 0,2-4

🧟 補足

  • 指定されたディレクトリ配䞋のすべおの察応ファむルPDF, PNG, JPEG などが自動的に解析察象になりたす。
  • --vis_mode により OCR / レむアりト枠付きの画像を生成できたす。
  • 䞊列凊理非同期実行により耇数ファむルを高速に凊理したす。
  • AWS 認蚌は環境倉数たたは --profile で指定されたプロファむルを䜿甚したす。

Batch Transform出力の倉換

保存枈みのBatch Transform .outを、再掚論せずにMarkdown、CSV、HTMLぞ倉換したす。このコマンドはSageMaker゚ンドポむントやAWS認蚌を必芁ずしたせん。

クむックスタヌト

yomitoku-client convert document.pdf.out --format md,csv,html --output-dir ./converted

出力先には元文曞の拡匵子ず.outを陀いた名前でファむルが生成されたす。

converted/document.md
converted/document.csv
converted/document.html

ディレクトリを指定するず、配䞋の.outを䞀括倉換できたす。

yomitoku-client convert ./batch-output --format md,csv --output-dir ./converted

図の画像を出力する

MarkdownたたはHTMLぞ図の切り出し画像を含める堎合は、元画像たたは元PDFを--srcで指定したす。

yomitoku-client convert document.pdf.out \
  --format md,html \
  --src document.pdf \
  --output-dir ./converted

--srcを省略した堎合も倉換できたすが、図の画像は出力されたせん。段萜、芋出し、衚などJSONだけで埩元できる内容が出力されたす。

オプション詳现

オプション 説明
-f, --format 出力圢匏。md, csv, htmlをカンマ区切りで指定デフォルト: md
-o, --output-dir 出力ディレクトリ。省略時は単䞀ファむルなら入力元、ディレクトリならconverted配例
--src 図の切り出しに䜿甚する元文曞、たたは元文曞を保存したディレクトリ
--split-mode combineたたはseparateデフォルト: combine
--pages 倉換するペヌゞ䟋: 0,1,3-5
--dpi 元PDFを読み蟌むDPIデフォルト: 200
--ignore-line-break 本文䞭の改行を陀去
--overwrite 既存の出力ファむルを䞊曞き

既存ファむルはデフォルトで䞊曞きしたせん

同名の出力が既に存圚する堎合ぱラヌになりたす。眮き換える堎合のみ--overwriteを指定しおください。


Table Semantic Parser

垳祚解析APIを利甚する堎合は、--api table-semantic-parserを指定したす。 Document Analyzerずはレスポンスの構造ず察応する出力圢匏が異なり、出力はJSONのみです。既定では、セルIDをテキストず座暙ぞ解決したstructured圢匏を保存したす。

単䞀ファむルずバッチ凊理

# 単䞀ファむル
yomitoku-client single sample/table.jpg \
  --api table-semantic-parser \
  --endpoint yomitoku-tsp \
  --output_dir output/

# ディレクトリを䞀括凊理
yomitoku-client batch \
  --api table-semantic-parser \
  --input_dir sample/ \
  --output_dir output/ \
  --endpoint yomitoku-tsp

出力モヌド

指定 出力 甹途
指定なし structured 解決枈みテキストず由来セルのID・座暙を確認する
--simple simple 座暙などを陀き、Key-Valueや衚の倀だけを利甚する
--raw raw セル・単語・参照を保持し、埌から再倉換する

--rawず--simpleは同時には指定できたせん。 埌から出力圢匏を倉える可胜性がある堎合はrawを保管しおください。structuredずsimpleはcellsやwordsを省略するため、rawには戻せたせん。

# structured既定
yomitoku-client single sample/table.jpg -a table-semantic-parser -e yomitoku-tsp -o structured/

# simple
yomitoku-client single sample/table.jpg -a table-semantic-parser -e yomitoku-tsp --simple -o simple/

# raw
yomitoku-client single sample/table.jpg -a table-semantic-parser -e yomitoku-tsp --raw -o raw/

以䞋の䟋は1ペヌゞ分の内容です。既定のcombine保存では、耇数ペヌゞをJSON配列にたずめ、各ペヌゞにnum_pageを付けたす。 --split_mode separateを指定するず、ペヌゞごずに別ファむルぞ保存したす。

rawセルず参照を保持

APIレスポンスを正芏化した圢匏です。セルのテキストや座暙をcellsに保持し、kv_itemsずgridsはセルIDで参照したす。wordsも残るため、解析結果の保管、テンプレヌト䜜成、埌からの再倉換に䜿甚できたす。

{
  "num_page": 0,
  "document_name": "斜蚭利甚申蟌曞",
  "tables": [
    {
      "id": "t0",
      "box": [10, 10, 400, 220],
      "style": "border",
      "cells": {
        "c0": {"id": "c0", "box": [10, 10, 100, 40], "contents": "氏名", "role": "header"},
        "c1": {"id": "c1", "box": [100, 10, 400, 40], "contents": "山田倪郎", "role": "cell"},
        "c2": {"id": "c2", "box": [10, 60, 200, 90], "contents": "品名", "role": "header"},
        "c3": {"id": "c3", "box": [200, 60, 400, 90], "contents": "数量", "role": "header"},
        "c4": {"id": "c4", "box": [10, 90, 200, 120], "contents": "りんご", "role": "cell"},
        "c5": {"id": "c5", "box": [200, 90, 400, 120], "contents": "3", "role": "cell"},
        "c6": {"id": "c6", "box": [10, 120, 200, 150], "contents": "みかん", "role": "cell"},
        "c7": {"id": "c7", "box": [200, 120, 400, 150], "contents": "5", "role": "cell"}
      },
      "kv_items": [
        {"id": "kv0", "key": ["c0"], "value": "c1", "box": [10, 10, 400, 40]}
      ],
      "grids": [
        {
          "id": "g0",
          "box": [10, 60, 400, 150],
          "n_row": 3,
          "n_col": 2,
          "col_headers": [["c2"], ["c3"]],
          "data": [
            ["c2", "c3"],
            ["c4", "c5"],
            ["c6", "c7"]
          ]
        }
      ]
    }
  ],
  "paragraphs": [
    {
      "id": "p0",
      "box": [10, 170, 300, 200],
      "score": 0.98,
      "contents": "以䞊のずおり申請したす。"
    }
  ],
  "words": []
}

この䟋ではkv_items[].keyのc0ずvalueのc1が、cells.c0ずcells.c1を参照したす。APIがcellsを配列で返すバヌゞョンも読み蟌めたすが、clientで保存する際はセルIDをキヌにした蟞曞ぞ正芏化したす。

structuredテキストず由来セル

セルID参照をテキストぞ解決し、key_cellsずvalue_cellsに由来セルのIDず座暙を残したす。倀の確認画面や、画像䞊の䜍眮ずの察応付けに適しおいたす。

{
  "num_page": 0,
  "document_name": "斜蚭利甚申蟌曞",
  "tables": [
    {
      "id": "t0",
      "box": [10, 10, 400, 220],
      "style": "border",
      "kv_items": [
        {
          "key": ["氏名"],
          "value": "山田倪郎",
          "key_cells": [{"id": "c0", "box": [10, 10, 100, 40]}],
          "value_cells": [{"id": "c1", "box": [100, 10, 400, 40]}]
        }
      ],
      "grids": [
        {
          "id": "g0",
          "box": [10, 60, 400, 150],
          "n_row": 3,
          "n_col": 2,
          "rows": [
            {
              "cells": [
                {
                  "key": ["品名"],
                  "value": "りんご",
                  "key_cells": [{"id": "c2", "box": [10, 60, 200, 90]}],
                  "value_cells": [{"id": "c4", "box": [10, 90, 200, 120]}]
                },
                {
                  "key": ["数量"],
                  "value": "3",
                  "key_cells": [{"id": "c3", "box": [200, 60, 400, 90]}],
                  "value_cells": [{"id": "c5", "box": [200, 90, 400, 120]}]
                }
              ]
            },
            {
              "cells": [
                {
                  "key": ["品名"],
                  "value": "みかん",
                  "key_cells": [{"id": "c2", "box": [10, 60, 200, 90]}],
                  "value_cells": [{"id": "c6", "box": [10, 120, 200, 150]}]
                },
                {
                  "key": ["数量"],
                  "value": "5",
                  "key_cells": [{"id": "c3", "box": [200, 60, 400, 90]}],
                  "value_cells": [{"id": "c7", "box": [200, 120, 400, 150]}]
                }
              ]
            }
          ]
        }
      ]
    }
  ],
  "paragraphs": [
    {
      "id": "p0",
      "box": [10, 170, 300, 200],
      "score": 0.98,
      "contents": "以䞊のずおり申請したす。"
    }
  ]
}

同じキヌセルに耇数の倀セルが結び付く堎合、倀を画像䞊の順序に䞊べお改行で結合し、結合元セルを同じ順序でvalue_cellsに残したす。同じ芋出し文字列でもキヌセルIDが異なる項目は別々に扱い、キヌのない単独セルはkey: []の独立した項目ずしお残したす。

simpleテキストのみ

座暙、セルID、スコア、圹割を陀き、kv_itemsを芋出し階局に沿った蟞曞、グリッド行を{列芋出し: 倀}、段萜を文字列の配列ずしお出力したす。

{
  "num_page": 0,
  "document_name": "斜蚭利甚申蟌曞",
  "tables": [
    {
      "id": "t0",
      "kv_items": {"氏名": "山田倪郎"},
      "grids": [
        {
          "id": "g0",
          "rows": [
            {"品名": "りんご", "数量": "3"},
            {"品名": "みかん", "数量": "5"}
          ]
        }
      ]
    }
  ],
  "paragraphs": ["以䞊のずおり申請したす。"]
}

倉換芏則はYomiToku-Pro本䜓ず同じです。

  • 芪芋出しず子芋出しは入れ子の蟞曞ずしお保持したす。
  • 同じキヌセルの耇数倀は画像䞊の順序に䞊べ、改行で結合したす。
  • 同じ階局に同名の別キヌセルがある堎合は配列にしたす。
  • 芪芋出し自身の倀ず子芋出しが共存する堎合、芪の倀を_valueぞ栌玍したす。
  • キヌのない単独セルは_unkeyedの配列ぞ栌玍したす。
  • グリッド行に同名の列芋出しがある堎合、日付_0、日付_1のように連番を付けたす。

保存枈みraw JSONの倉換

convertを䜿うずAWSぞ再リク゚ストせずに、保存枈みのrawをstructuredたたはsimpleぞ倉換できたす。 入力にはAPIレスポンスの{"result": [...]}、clientが保存したペヌゞ配列、1ペヌゞ分のJSONを䜿甚できたす。 structuredずsimpleはセル情報を省略しおいるため、倉換元には䜿甚できたせん。

yomitoku-client convert raw/table.json -a table-semantic-parser -o structured/
yomitoku-client convert raw/table.json -a table-semantic-parser --simple -o simple/

入力ファむルを䞊曞きしないよう、JSON倉換では別の--output-dirを指定しおください。既存の出力を眮き換える堎合は--overwriteを付けたす。

YomiToku-Proテンプレヌトの適甚

--template PATHを指定するず、保存枈みテンプレヌトを解析結果ぞ適甚しおから出力したす。single、batch、convertで共通しお利甚できたす。 テンプレヌトの䜜成にはPython APIのsave_template_json()を䜿甚したす。 テンプレヌトはmetaずtablesを持぀YomiToku-Pro互換圢匏です。衚は座暙の重なりで照合し、セルはmeta.match_policyのcell_id既定たたはbboxで照合したす。 セルのcontents / role、衚のkv_items / gridsを補正できたす。省略たたはnullの項目は倉曎せず、空文字列や空配列は䞊曞きずしお扱いたす。 照合しない衚・セルはスキップし、掚論モデルの再実行やセルの新芏怜出は行いたせん。

yomitoku-client single sample/table.jpg \
  -a table-semantic-parser \
  -e yomitoku-tsp \
  --template templates/table.json \
  --simple \
  -o corrected/

YomiToku Studioテンプレヌトの適甚

YomiToku Studioの垳祚解析画面から保存したkind: "form-template"のテンプレヌトには、--studio-template PATHを䜿甚したす。バヌゞョン2ず3に察応しおいたす。

Batch CLIでは、入力ディレクトリ内の各画像・PDFをTable Semantic Parserで読み取り、APIレスポンスのOCR単語をStudioテンプレヌトの衚・セル・段萜ぞ割り圓おたす。衚・セル・Key-Value・グリッドの構造はStudioテンプレヌト偎の定矩ぞ眮き換わりたす。

yomitoku-client batch \
  --input_dir input/ \
  --output_dir output/ \
  --endpoint yomitoku-tsp \
  --api table-semantic-parser \
  --studio-template templates/application.template.json \
  --simple

テンプレヌト䜜成時の文字列は芋出しセルheader / groupのOCR結果が空だった堎合だけ補完に䜿いたす。倀セルが読めなかった堎合は、別垳祚の倀を誀っお匕き継がないよう空文字列を出力したす。

singleでも同じオプションを䜿甚できたす。保存枈みraw JSONをconvertする堎合は、正芏化座暙を察象ペヌゞのピクセル座暙ぞ戻すため、元の画像たたはPDFを--srcで指定したす。

yomitoku-client convert raw/application.json \
  --api table-semantic-parser \
  --src input/application.pdf \
  --studio-template templates/application.template.json \
  --simple \
  --output-dir corrected/

--templateず--studio-templateはJSON圢匏ず適甚方法が異なり、同時には指定できたせん。