Media > AI活用ユースケース > 品質管理 > 修繕の造船所が、船級協会の検査員から届く英文の検査の指摘事項を読み取り、船ごと・区画ごとの是正の一覧と完了の確認表を作る

修繕の造船所が、船級協会の検査員から届く英文の検査の指摘事項を読み取り、船ごと・区画ごとの是正の一覧と完了の確認表を作る

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

入渠中の船について、船級協会の検査員から届く英文の指摘事項の書面を読み取り、指摘を船ごと・区画ごとの是正の一覧にします。工事番号と、後の報告にある完了の記載を突き合わせ、出渠の前に残っている指摘を並べます。

サマリー
生成AI
Azure OpenAI Service/Claude
AIサービス
AWS Textract/Azure AI/Google Document AI
連携・自動化
Python
対象業界
物流/製造
対象部門
品質管理/生産
対象業務
データ入力・転記/台帳・マスタ管理
主な課題
入力作業が多い/引き継ぎができていない/期限・対応漏れが起きる
AIで行う処理
読み取り(OCR)
主な効果
入力漏れ削減/対応スピード向上/工数削減
導入難易度
★★★☆☆
実装レベル
半自動化
費用感
API連携(中)
人間の確認
必須
現在工数
30h/月
AI導入後
8h/月
想定削減
73%
年間削減
264h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. 品質管理の担当者が、検査員から受け取った書面(PDF・写真)を船ごとのフォルダに保存する
  2. 書面を読み、指摘を1件ずつ是正の一覧に写す(区画、フレーム、舷、不具合、処置、区分、期限)
  3. 区画の書き方を、船ごとの区画の表の名前に直す
  4. 工事の管理表を開き、同じ区画の工事番号を探して一覧に書き込む。無ければ工事の担当に依頼する
  5. 後の立会いの書面に完了の記載があれば、一覧の該当の行に写す
  6. 出渠の数日前に、完了の記載が無い行を数え、船主の監督と検査員に確かめる
導入後(After)
  1. 人品質管理の担当者が、検査員から受け取った書面を受付のフォルダに保存する(船の番号をファイル名の先頭に付ける)
  2. 自動保存をきっかけに、形式・サイズ・パスワードの有無を確かめ、写真は向きと大きさを確かめる
  3. 自動AWS Textract の文書分析で、書面の文字・レイアウト・表・キーと値のペアを読む
  4. 自動Amazon Bedrock の Claude が、読み取った文字から指摘を1件ずつに分け、区画・フレーム・舷・不具合・処置・区分・期限の文言を取り出す
  5. 自動区画の書き方を、その船の区画の表の別名と照らして1つの区画に寄せる
  6. 自動工事の管理表から、同じ区画の工事番号の候補を並べる
  7. 自動後の書面にある完了の記載を、項目番号か区画と不具合で前の指摘に結び付ける
  8. 人担当者が `matched` 以外の指摘だけを開き、書面の画像で確かめて一覧に取り込む
  9. 自動出渠の予定日から逆算して、完了の記載の無い指摘を毎日の一覧に出す
  10. 人担当者が残りの指摘について、工事の担当と検査員の立会いの段取りを組む
各工程の詳しい説明を読む
  1. 品質管理の担当者が、検査員から受け取った書面(PDF・写真)を船ごとのフォルダに保存する
  2. 書面を読み、指摘を1件ずつ是正の一覧に写す(区画、フレーム、舷、不具合、処置、区分、期限)
  3. 区画の書き方を、船ごとの区画の表の名前に直す
  4. 工事の管理表を開き、同じ区画の工事番号を探して一覧に書き込む。無ければ工事の担当に依頼する
  5. 後の立会いの書面に完了の記載があれば、一覧の該当の行に写す
  6. 出渠の数日前に、完了の記載が無い行を数え、船主の監督と検査員に確かめる

(a)写すのに時間がかかる。 1通に十数件の指摘があり、1件ごとに区画・フレーム・舷・処置を分けて写します。 手書きの書面は、読むところから時間がかかります。

(b)区画の書き方がそろわない。 「No.3 WBT (P)」「3P W.B.TK」「3 Port Ballast」が同じ区画だと分かるのは、その船の区画の配置を覚えている担当者です。 書き方が違うまま写すと、同じ区画の指摘と工事が結び付きません。

(c)完了の記載を探し直す。 後の書面の「Items 3, 5, 7 of previous report examined and found satisfactory」のような記載は、前の書面のどの指摘かを番号で引き直します。 番号が無い書面では、区画と不具合で探します。

(d)出渠の前に残りが見つかる。 6番目の確認が出渠の直前になり、完了の記載が無い指摘が見つかると、立会いの段取りを組み直します。 担当が替わった船では、どの指摘がどの工事で直ったのかを、前の担当に聞くところから始まります。

  1. 【人】 品質管理の担当者が、検査員から受け取った書面を受付のフォルダに保存する(船の番号をファイル名の先頭に付ける)
  2. 【自動】 保存をきっかけに、形式・サイズ・パスワードの有無を確かめ、写真は向きと大きさを確かめる
  3. 【自動】 AWS Textract の文書分析で、書面の文字・レイアウト・表・キーと値のペアを読む
  4. 【自動】 Amazon Bedrock の Claude が、読み取った文字から指摘を1件ずつに分け、区画・フレーム・舷・不具合・処置・区分・期限の文言を取り出す
  5. 【自動】 区画の書き方を、その船の区画の表の別名と照らして1つの区画に寄せる
  6. 【自動】 工事の管理表から、同じ区画の工事番号の候補を並べる
  7. 【自動】 後の書面にある完了の記載を、項目番号か区画と不具合で前の指摘に結び付ける
  8. 【人】 担当者が matched 以外の指摘だけを開き、書面の画像で確かめて一覧に取り込む
  9. 【自動】 出渠の予定日から逆算して、完了の記載の無い指摘を毎日の一覧に出す
  10. 【人】 担当者が残りの指摘について、工事の担当と検査員の立会いの段取りを組む

5番目が、この設計の分かれ目です。 区画の名前はその船の区画の表に、完全に一致する別名があるときだけ寄せます。 「No.3」と「No.4」を似ているからと寄せる処理は置きません。

7番目で完了の記載を写すだけにしているのも、意図してのことです。 工事の管理表で完了日が入っていても、検査員の記載が無ければ awaiting_surveyor のまま残します。

02今回想定するシステム構成

構成図
検査員の指摘の書面(PDF・写真。手書きを含む)
   │  品質管理の担当者が受付フォルダへ保存
   ▼【トリガー】Amazon S3 への保存
AWS Lambda
   ├──▶ 形式・サイズ・パスワード・写真の向きの確認
   ▼
AWS Textract(StartDocumentAnalysis の LAYOUT・TABLES・FORMS)
   │   文字・段落・表・キーと値のペアと、それぞれの信頼度
   ▼
Amazon Bedrock の Claude(Converse の構造化出力)
   │   指摘を1件ずつに分け、区画・範囲・不具合・処置・区分・期限の文言を取り出す
   ▼
AWS Lambda(Python)
   │   ① 区画の表の別名で区画を寄せる
   │   ② 工事の管理表から工事番号の候補を並べる
   │   ③ 完了の記載を前の指摘に結び付ける
   ▼
指摘ごとの判定(matched / unknown_area / no_work_order / awaiting_surveyor / closed / needs_review)
   ▼
【人が matched 以外の指摘だけ確認】
   ├──▶ 是正の一覧と完了の確認表
   └──▶ 出渠前の残りの一覧(毎日)
役割想定する製品代替候補
OCRAWS Textract(StartDocumentAnalysis の LAYOUT・TABLES・FORMS)Azure AI Document Intelligence、Google Document AI
生成AIAmazon Bedrock の Anthropic Claude(Converse の構造化出力で指摘を項目に分ける)Claude API、Azure OpenAI(Microsoft Foundry)
差異計算区画の別名との照合、工事番号の候補、完了の記載の結び付け(Python。AWS Lambda で動かす)─
連携AWS Lambda(S3 への保存を起点に読み取りを始め、結果を一覧に書く)Amazon EventBridge
保管Amazon S3(書面と読み取りの結果)社内のファイルサーバー
通知Amazon SNS(読み取りの完了と、出渠前の残りの知らせ)社内のチャット

工事の管理表と船ごとの区画の表は、新しく足すものではありません。 新しく作るのは、区画の表の「別名」の列と、船級協会ごとの区分の対応表の2つです。区分の対応表は、書面に書かれる区分の言葉(Condition of Class、Recommendation、Memo to Owner、Outstanding など)と、自社の一覧の区分を並べた表です。

書面は、AWS Textract の文書分析で読みます。 機能の種類に LAYOUT・TABLES・FORMS を指定します。レイアウトは、題・見出し・段落・箇条書き・表を見分けて、読む順に返します。 段組みのページでは、左の段の上から下へ、次の段へと返るとされています。表の形の書面は TABLES で行と列の位置が分かります。

手書きの書面も読めますが、手書きの文字を読めるのは英語だけです。 検査員の書面は英語なので対象に入ります。日本語のメモが書き込まれた写真は、その部分が読めません。

03どうやって実装するのか

Step1

処理の起点を決める

受付フォルダ(Amazon S3 のバケット)にファイルが保存されたことを起点にします。 指摘の書面は立会いの当日か翌日に届き、工事の段取りは翌朝から組まれます。 夕方に届いた書面を翌朝の工程会議までに一覧にしておくことで、指摘が工事の段取りに間に合います。

ファイル名の先頭に、船の番号(自社の入渠の番号)を付けます。 書面の中に船名は書かれていますが、同じ船名の船が入れ替わりで入渠することがあり、 書面の船名だけで船を決めると、前の入渠の一覧に混ざります。

出渠前の残りの一覧は、毎朝の定時に作ります。 出渠の予定日から数えて、完了の記載の無い指摘を区画ごとに並べます。 予定日の5日前からは、残りが1件でもあれば担当者に知らせます。

終わったファイルは処理済みの場所へ移します。 移すのは成功したときだけで、受付フォルダに残っている数が、そのまま未処理の数になります。 非同期の解析には ClientRequestToken を付け、同じ書面を二度読まないようにします。

Step2

入力データを集める

データ中身取得元
指摘の書面PDF・写真。船名、船級協会、検査員、立会いの日、項目番号、指摘の文、前の項目への完了の記載受付フォルダ
読み取り結果文字の行、レイアウトの要素(見出し・段落・箇条書き・表)、表のセル、キーと値のペア、それぞれの信頼度AWS Textract
区画の表船ごとの区画の正式な名前、別名(検査員・工事・船主の書き方)、フレームの範囲、舷入渠の仕様書から作る表
区分の対応表書面に書かれる区分の言葉と、自社の一覧の区分自社で整える表
工事の管理表工事番号、区画、作業の内容、着手日、完了日生産の表
是正の一覧(前の分)それまでに取り込んだ指摘と、その項目番号この構成が作る一覧

質を決めるのは、区画の表の別名の列です。 別名が無ければ「3P W.B.TK」は区画に寄らず、工事番号の候補も出ません。 別名は、過去の入渠の書面と工事の管理表を並べて、同じ区画の書き方を拾い集めて作ります。

船の型が同じなら、区画の表は使い回せます。 同じ造船所で建造された姉妹船は区画の配置が同じことが多く、1隻分の別名を作れば、次の入渠からはその船の型の表として使えます。

Step3

データの取得方法を決める

書面は、非同期の StartDocumentAnalysis に S3 の場所を渡して読みます。FeatureTypes に LAYOUT・TABLES・FORMS を指定します。 完了は Amazon SNS に通知させ、GetDocumentAnalysis で結果を取ります。JobId は7日間しか有効でないため、結果はその日に S3 へ写します。

取るものどこから何に使うか
船名・船級協会・立会いの日キーと値のペア、LAYOUT_HEADER・LAYOUT_TITLE書面の見出しと、船の確かめ
指摘の文LAYOUT_LIST・LAYOUT_TEXT の行、表のセル指摘を1件ずつに分ける材料
項目番号表の列、箇条書きの先頭完了の記載との結び付け
完了の記載段落の行(examined、satisfactory、dealt with などを含む)前の指摘の完了の候補
文字ごとの信頼度と手書きかどうかWORD の Confidence と TextType読み取りの確からしさの判断

指摘の文は、レイアウトの読む順のまま Claude に渡します。 行をばらばらに渡すと、2行にまたがった指摘が2件に割れたり、隣の指摘の区画を取り違えたりします。 箇条書き(LAYOUT_LIST)は、その下の段落ごとにまとめて渡します。

TextType が手書き(HANDWRITING)の文字は、印を付けて渡します。 手書きの数字は、フレームの番号の読み違いが起きやすいところです。手書きで信頼度の低い数字を含む指摘は、取り出しの後に needs_review にします。

Step4

AIへ渡す前に整形する

  1. 形式の確認 … JPEG・PNG・PDF・TIFF のいずれかであることを確かめます。XFA 形式の PDF は扱えません
  2. パスワードの確認 … パスワードで保護された PDF は読めません。解除した版を検査員の事務所に頼みます
  3. 写真の大きさ … 各辺10,000ピクセル以下、文字の高さは15ピクセル(150 DPI で8ポイント相当)が下限です。手書きの用紙を斜めから撮った写真は、奥の行が下限を割ります
  4. 写真の撮り方をそろえる … 用紙を正面から、1枚に1ページで撮ってもらいます。傾きは読めますが、手ぶれと影は読めません
  5. 重複の確認 … 同じ船・同じ立会いの日・同じページ数の書面は重複の候補として印を付けます
  6. 書面の種類の見分け … 題の文字で、指摘の書面、完了の報告、それ以外(立会いの依頼、証書の写し)に分けます

4番目を省かないでください。 現場の写真は、狭い区画の中で撮られることがあります。読めない数字を Claude が前後の文から補うと、フレームの番号が実際と違う指摘が一覧に入ります。 撮り方をそろえるほうが、後で直すより早く済みます。

Step5

AIに処理させる

させるのは、読み取った文字を指摘ごとに分け、決まった項目に書面の文言を写すことだけです。 区画を寄せる、工事番号を探す、完了を結び付ける処理は、取り出しの後に Python の規則が行います。

取り出す項目書面のどこから取り出せないときの扱い
項目番号表の列、箇条書きの先頭無ければ空。番号を振らない
区画の文言指摘の文の先頭が多い空なら missing。needs_review
フレームの範囲・舷Fr.、P/S、Port/Stbd など空なら空のまま。区画から推し量らない
不具合の文言wasted、cracked、indented、pitted など書面の語のまま写す
処置の文言to be renewed、to be repaired など書面の語のまま写す
区分の文言Condition of Class、Recommendation など書かれていなければ空
期限の文言prior to departure、by next docking など書かれていなければ空。日付に直さない
完了の記載examined and found satisfactory など前の項目番号か区画を一緒に写す
させないこと理由
指摘の当否や重さの判断検査員の判断で、造船所の側で変えない
是正の方法の提案船主・検査員・工事の担当で決める
期限を日付に直すこと「出渠の前」の日付は工程で変わる。規則の側で出渠の予定日に結ぶ
区分が無い指摘に区分を付けること区分の付け方は船級協会ごとに違う
完了したかの判断認めるのは検査員。記載を写すだけ

3行目と5行目が、この構成でいちばん大事な線です。 期限を Claude に日付で書かせると、工程が延びたときに一覧の期限が古いまま残ります。 完了を推し量らせると、工事が終わっただけの指摘が「片付いた」として出渠の確認から抜けます。

Step6

指示内容を固定する

あなたは造船所の品質管理部で、船級協会の検査員から受け取った
指摘の書面を、指摘ごとの項目に分ける担当です。
渡すのは OCR の結果で、読む順に並んでいます。書面に書かれた
語だけを使ってください。

【分け方】
- 1件の指摘は、区画の文言から始まり、処置の文言で終わることが多い。
  項目番号があれば、番号ごとに1件とする。
- 2行以上にまたがる文は1件にまとめる。1つの文に2つの区画が
  書かれていれば、区画ごとに分け、同じ処置の文言を両方に写す。

【厳守事項】
- 区画・フレーム・舷・不具合・処置・区分・期限は、書面の語の
  とおりに写す。言い換え・略語の展開・綴りの訂正をしない。
- 書かれていない項目は空にする。前後の指摘や区画から補わない。
- フレームの番号が読めない([?] の印がある)ときは、数字を推し量らず
  frame_text に印のまま写し、uncertain を true にする。
- 期限は "prior to departure" などの文言のまま写す。日付に直さない。
- 区分の文言が無い指摘に、区分を付けない。
- "examined and found satisfactory" "dealt with" "cleared" などの
  完了の記載は、closure_statements に分けて写し、対象の項目番号か
  区画の文言を一緒に写す。完了したかどうかを判断しない。
- 指摘の当否、重さ、是正の方法を書かない。
- quote に、その指摘の元の文をそのまま写す。

【OCR の結果(読む順)】{layout_text}
【この書面の見出し】{header_kv}

「略語の展開・綴りの訂正をしない」を明記しないと、「WBT」を「Water Ballast Tank」に展開します。 展開された語は区画の表の別名に当たらず、照合で unknown_area に落ちます。 別名の表は書面の語のまま作るので、Claude にも書面の語のまま返させます。

quote を必ず写させるのは、確認を速くするためです。 Bedrock の構造化出力は、Anthropic のモデルでは引用の機能(citations)と併用できず、併用すると400のエラーになります。そのため引用の位置は使わず、元の文を写させて、プログラムの側で OCR の文字と照らします。 照らして一致しない quote は、Claude が文を作り変えた合図なので needs_review にします。

Step7

出力形式を固定する

Converse の outputConfig.textFormat に JSON スキーマを渡し、次の形で受け取ります。

{
  "vessel_ref": "D-2611",
  "class_society_text": "",
  "visit_date_text": "",
  "findings": [
    {
      "item_no": "3",
      "area_text": "No.3 WBT (P)",
      "frame_text": "Fr.45-48",
      "side_text": "P",
      "defect_text": "side shell longitudinals wasted beyond allowable",
      "action_text": "to be cropped and renewed",
      "category_text": "Condition of Class",
      "due_text": "prior to departure",
      "uncertain": false,
      "quote": ""
    }
  ],
  "closure_statements": [
    { "ref_item_no": "5", "ref_area_text": "", "statement_text": "examined and found satisfactory", "quote": "" }
  ]
}

Lambda の側で、この結果に区画の表の area_id、工事番号の候補、状態を足して一覧に書きます。状態は matched / unknown_area / no_work_order / awaiting_surveyor / closed / needs_review です。

1つ目の理由は、書面の語と自社の区画を別の欄に持てることです。 area_text は書面のまま、area_id は区画の表で寄せた結果です。寄せ方が誤っていても、書面の語が残っていれば一覧を作り直せます。

2つ目は、完了の記載を指摘と別に持てることです。 closure_statements を前の指摘に結び付けるのは規則で、結び付かない記載は人に回ります。 完了を指摘の欄に混ぜると、どの立会いで認められたかが分からなくなります。

スキーマの書き方には制約があります。 すべての object に additionalProperties: false を付ける必要があり、数値の最小・最大や文字の長さの制約は使えません。 必須でない項目は全体で12個までなので、項目は必須にして、書かれていなければ空の文字を返させます。 新しいスキーマの最初の呼び出しは、組み立てに最大90秒ほどかかります。

Step8

システムへ連携する

つなぎ先方式内容
受付フォルダAmazon S3 の保存のイベントLambda を起動する
AWS Textract非同期の API 呼び出しと SNS の通知書面の読み取り
Amazon BedrockConverse の API 呼び出し指摘を項目に分ける
区画の表・区分の対応表スプレッドシートの読み取り区画を寄せる、区分をそろえる
工事の管理表スプレッドシートの読み取り工事番号の候補と完了日
是正の一覧・完了の確認表人が確かめた後の取り込み指摘ごとの行

工事の管理表には書き込みません。 工事番号を切るのは工事の担当で、指摘から自動で工事番号を作ると、船主が発注していない工事が始まります。 候補が無い指摘は no_work_order として、工事の担当への依頼の一覧に出すだけです。

Step9

人が確認する

人が開くのは matched 以外の指摘だけです。 全件を開く設計にすると、第10章の8.0時間には収まりません。

  1. needs_review を先に見る … 手書きの数字、quote の不一致。書面の画像で、フレームの番号と区画を確かめます
  2. unknown_area を見る … 区画の表に別名を1行足すか、本当に表に無い区画かを分けます
  3. no_work_order を工事の担当に回す … 追加の工事にするかは、船主の監督が決めます
  4. awaiting_surveyor を立会いの段取りに入れる … 工事が終わった指摘を、次の立会いで見てもらいます
  5. 完了の記載の結び付けを確かめる … 前の項目番号が無い記載は、区画と不具合で人が結び付けます

目標は、40件をならして1件12分です。 それを超える月は、区画の表の別名か、写真の撮り方が足りていません。

Step10

例外に対処する

起きること対応
パスワードで保護された PDF読めない。解除した版を頼む
写真の文字が小さい・ぶれている下限は15ピクセル。撮り直しを頼む
手書きの数字の信頼度が低いuncertain。画像で人が確かめる
日本語の書き込みがあるAWS Textract は日本語を読めない。その部分は人が補う
1文に2つの区画区画ごとに分け、同じ処置を写す。分けられなければ needs_review
quote が OCR の文字と一致しないneeds_review。Claude の書き換えを疑う
前の指摘と結び付かない完了の記載人が区画と不具合で結び付ける
同じ船名の別の入渠の書面ファイル名の入渠の番号で分ける
読み取りや構造化出力が失敗した受付フォルダに残す。処理済みへ移すのは成功時だけ

大半は AI の精度ではなく、写真の撮り方と区画の表の整い方の問題です。

Step11

記録を残す

  • 元の書面と、受け取った日時・入渠の番号
  • AWS Textract が返した JSON の全文と、Claude が返した JSON
  • 指摘ごとの判定と、そのとき参照した区画の表・工事の管理表の行
  • 人が判定を覆した記録 … どの指摘を、どの区画・工事に結び付けたか
  • 完了の記載と、それが書かれた書面と立会いの日
  • 船の型ごとの unknown_area の件数

5つ目は、船主や船級協会から「いつ認められたか」を問われたときの答えになります。

04実装レベルの3段階

最小構成:コンソールとプレイグラウンドで書面を読み、項目に分けさせる / 取り出しの確かめ
半自動化:上記+S3 への保存を起点に読み、区画を寄せ、工事番号の候補と完了の記載を結び付けて一覧と毎日の残りを書き出す / 取り出し・区画の照合・完了の確認表
本格構成:上記+船主の監督の追加工事の指示書も読み、指摘と発注の結び付けまで行う / 指摘から発注・完了までの全体

最小構成では件数がさばけません。 確かめるための段階です。 半自動化で、1件45分が12分になり、この段階が本記事の想定です。 写す作業、区画の直し、工事番号の探し出し、完了の記載の転記は自動になり、人は matched 以外の指摘を見ます。差が大きいのは、1文に詰まった指摘を欄に分け直す作業がなくなるからです。 本格構成は、船主の指示書の書式がそろっている船会社との取引が多い場合に向きます。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
3 名
月間件数
40 件
1件あたり現在時間
45 分
1件あたり導入後時間
12 分
現在  40件 × 45分 ÷ 60 = 30 時間/月
導入後 40件 × 12分 ÷ 60 = 8 時間/月
月間削減時間
22h
削減率
73%
年間削減時間
264h
年間金額換算(時間単価4,000円)
106万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 外航船・内航船の入渠と修繕を毎月何隻も受けている造船所・修繕ドック。船級協会の検査員から英文の指摘事項の書面を受け取り、品質管理の担当者が区画ごとの是正の一覧に手で写している場合。指摘が工事のどの番号で直されたか、検査員がいつ完了を認めたかを、出渠の前に1件ずつ探し直している場合。船ごとに区画の名前の表(タンクの配置)を持っている場合。
向いていない
  1. 入渠が月に1隻ほどで、指摘を手で写しても負担にならない場合。指摘事項が船級協会のシステムから電子データで届き、読み取る必要が無い場合。日本語で書かれた指摘の書面だけを扱う場合(AWS Textract は日本語を読めません)。なお、指摘の技術的な当否、是正の方法、完了かどうかの判断は、この構成では行いません。完了を認めるのは検査員です。

07最小構成で試す方法

  1. 先月の入渠から1隻を選び、その船の指摘の書面を全部集める(手書きの写真、表の形の書面、完了の報告を必ず入れる)
  2. その船の是正の一覧(手で作ったもの)を書き出す
  3. 書面を AWS Textract のコンソールでレイアウトと表を指定して読み、読む順の文字を書き出す
  4. 書き出した文字を Bedrock のプレイグラウンドで Claude に渡し、第7章の指示で指摘を項目に分けさせる
  5. 出てきた項目を手で作った一覧と並べ、区画の書き方の違いを拾って別名の下書きを作る

1隻分は必ずやってください。 Lambda を組む前に、「手書きの数字が読めるか」と「2行にまたがる指摘が1件にまとまるか」を確かめます。

出てきた内容判断
指摘の件数と区画が手の一覧と合うS3 と Lambda の連携に進む
略語を展開してしまう指示の書き方で直る。構成は有効
手書きの数字の読み違いが多い写真の撮り方が先。 AIの問題ではない

3行目は珍しくありません。 失敗ではなく、現場の書面の受け取り方を直す理由が見つかったということです。

08実装時につまずきやすいポイント

問題対策
工事が終わっただけで「完了」になる検査員の記載が無ければ awaiting_surveyor。 完了を推し量らせない
略語が展開されて区画に寄らない書面の語のまま返させる。 別名の表も書面の語で作る
手書きのフレームの番号を補う読めない数字は印のまま写し、人が確かめる
期限が日付に直されて古くなる文言のまま持ち、出渠の予定日に規則で結ぶ
2行にまたがる指摘が割れるレイアウトの読む順のまま渡す
構造化出力のスキーマが400になるadditionalProperties: false、数値の制約を外す
引用の機能と構造化出力を併用して400になる引用は使わず、quote を写させて照らす

上の2行が、この構成の失敗のほとんどです。 前者は残りの指摘を出渠の確認から落とす失敗、後者は指摘を工事に結び付けられない失敗です。

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 船名、船級協会と検査員の名前、船体の不具合の内容と場所、工事の内容です。船体の状態は、船主にとって用船や売船の値段に響く情報です。

  1. 指摘の一覧を、その船の関係者の外に出さない … 一覧は品質管理・工事の担当・その船の船主の監督だけが見ます。別の船主の船の一覧と同じ場所に置かないでください
  2. 保管の場所と暗号化を決める … 書面と結果は自社の S3 に置きます。文書分析では OutputConfig で結果を自社のバケットに出し、KMSKeyId で暗号化の鍵を指定できます
  3. サービス改善への利用を止めるかを決める … AWS の AI のサービスは、顧客のコンテンツをサービス改善のために使い、保存することがあるとされています。AWS Organizations の AI サービスのオプトアウトポリシーで止められます
  4. 完了を造船所の側で決めない … 一覧の closed は、検査員の記載を写したものだけにします。船級の扱いは船級協会が決めることで、造船所の一覧はその記録の写しです
  5. 区分を付け替えない … 区分は書面の語のまま持ちます。船級協会によって同じ扱いを違う言葉で書くため、対応表でそろえるのは自社の一覧の上だけにします

誤りのリスクは、残っている指摘を見落としたまま出渠の段取りを進めることと、指摘を違う区画の工事に結び付けることの2つです。 前者は検査員の記載だけで closed にすることで、後者は別名の完全一致と人の確認で防ぎます。

10まず何から始めるか

1週目:区画の表に別名の列を足す

次に入渠する船の型から、過去の書面と工事の管理表に出てくる区画の書き方を集め、区画の表の別名に入れます。

2週目:1隻分で試す

先月の1隻の書面を、AWS Textract のコンソールと Bedrock のプレイグラウンドで読ませます。指摘の件数が手の一覧と合うか、略語を展開していないかを最優先で見ます。

3週目:区分の対応表と、写真の撮り方を決める

取引の多い船級協会ごとに、区分の言葉と自社の区分を1つの表にまとめます。検査員の事務所と、手書きの用紙の写真の撮り方を相談します。

4週目:受付から指摘の一覧までをつなぐ

S3 への保存を起点に読み取り、指摘を項目に分けた一覧を書き出すところまで作ります。この時点では工事番号と完了の結び付けをせず、取り出しだけを見ます。

2か月目: 区画の照合と工事番号の候補を足します。3か月目以降: 完了の記載の結び付けと毎日の残りの一覧を足し、1件45分が何分になったかを実測します。出渠の5日前に残りが一覧で見え、段取りの組み直しが減った時点で、この構成は完成です。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-10-28/最終更新:2026-10-28
確認した内容情報源確認日
対応形式が JPEG・PNG・PDF・TIFF で XFA 形式の PDF が不可なこと。PDF はパスワード保護不可。各辺10,000ピクセル以下。対応言語が英・仏・独・伊・葡・西で縦書きは不可。手書きは英語のみ。文字の高さの下限が15ピクセル(150 DPI で8ポイント相当)AWS: Set Quotas in Amazon Textract2026-10-28
StartDocumentAnalysis の FeatureTypes に TABLES・FORMS・QUERIES・SIGNATURES・LAYOUT を指定できること。SNS への完了通知と GetDocumentAnalysis での取得。ClientRequestToken、JobId が7日間有効なこと。OutputConfig と KMSKeyIdAWS: StartDocumentAnalysis2026-10-28
レイアウトの要素(LAYOUT_TITLE・LAYOUT_HEADER・LAYOUT_SECTION_HEADER・LAYOUT_LIST・LAYOUT_TEXT・LAYOUT_TABLE・LAYOUT_KEY_VALUE など)と、読む順(段組みでは左の段の上から)で返ることAWS: Layout Response Objects2026-10-28
表のセルが行と列の位置を持ち、列の見出しなどの種類が付くことAWS: Tables2026-10-28
WORD などの Block が信頼度(Confidence)を持ち、TextType が手書き(HANDWRITING)か印字(PRINTED)かを示すことAWS: Block(API Reference)2026-10-28
Converse で outputConfig.textFormat に JSON スキーマを渡すこと。すべての object に additionalProperties: false が要ること。数値の minimum・maximum と文字の minLength・maxLength が使えないこと。必須でない項目が全体で12個までなこと。新しいスキーマの組み立てに最大約90秒、24時間のキャッシュ。Anthropic のモデルで citations と併用すると400になることAWS: Get validated JSON results from models2026-10-28
AWS の AI のサービスが顧客のコンテンツをサービス改善に使い保存することがあり、AWS Organizations のオプトアウトポリシーで止められることAWS: AI services opt-out policies2026-10-28
船級協会によって「Condition of Class」と「recommendation」の呼び方が違い、同じものとして扱われること。船主への覚え書き(Memo to Owner)は数えないことBIMCO: PI023 Number of Conditions of Class2026-10-28

指摘の扱いと是正の方法は、船級協会の規則と船主・検査員との取り決めで決めてください。 本記事は上記の公開情報で確認できた範囲だけを扱っています。船級協会ごとの書面の様式と区分の決まりは確かめていません。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-2071)についてのご相談はこちらから。

AI活用について相談する
目次