Media > AI活用ユースケース > 人事 > 船舶管理会社が、外国人船員の英文の資格証明書(STCW の海技資格・健康証明書)を読み取り、種類・有効期限・職務の範囲を乗組員台帳に転記して、乗船予定に対する期限切れと資格不足を拾う

船舶管理会社が、外国人船員の英文の資格証明書(STCW の海技資格・健康証明書)を読み取り、種類・有効期限・職務の範囲を乗組員台帳に転記して、乗船予定に対する期限切れと資格不足を拾う

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

配乗会社から届く外国人船員の英文の資格証明書の一式を読み取り、証明書の種類・職務の範囲・有効期限を乗組員台帳への転記の案にします。乗船予定の船と職務に必要な資格の表と、乗船の予定期間に照らして、期限切れと資格不足を乗船の前に拾います。

サマリー
生成AI
ChatGPT/Claude/Gemini
AIサービス
AWS Textract/Azure AI/Google Document AI
連携・自動化
Python
対象業界
その他/物流
対象部門
人事
対象業務
データ入力・転記/内容確認・チェック
主な課題
入力作業が多い/期限・対応漏れが起きる/確認ミスが多い
AIで行う処理
読み取り(OCR)
主な効果
入力漏れ削減/工数削減/機会損失防止
導入難易度
★★★☆☆
実装レベル
半自動化
費用感
API連携(中)
人間の確認
必須
現在工数
40h/月
AI導入後
12h/月
想定削減
70%
年間削減
336h
モデル条件による試算値です。実在企業の実績ではありません。

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

導入前(Before)
  1. 配乗会社から届いた資格証明書の一式のPDFを、船員ごとのフォルダに保存する
  2. 一式を1ページずつめくり、証明書の種類を見分ける
  3. 証明書の番号・発行国・職務の範囲・有効期限を乗組員台帳に写す
  4. 職務ごとの必要な資格の表と見比べ、足りない証明書を探す
  5. 乗船の予定期間と有効期限を見比べ、期間中に切れるものを探す
  6. 足りないもの・切れるものを配乗会社に英文のメールで知らせ、差し替えや更新を頼む
導入後(After)
  1. 人配乗の担当者が、届いた一式のPDFを船員ごとの受け取りの場所(Amazon S3)に保存する
  2. 自動保存をきっかけに、AWS Textract が全ページの問い合わせと行の読み取りを非同期で始める
  3. 自動Claude API が、ページごとに証明書の種類を決め、職務の範囲と制限の英文を項目に分ける
  4. 自動プログラムが、日付を発行国ごとの設定で読み、乗組員台帳への転記の案を作る
  5. 自動プログラムが、乗船予定の船の種類と職務に必要な資格の表と照らし、足りないものを拾う
  6. 自動プログラムが、有効期限を乗船の予定期間の終わりと照らし、期間中に切れるものを拾う
  7. 自動足りないもの・切れるものについて、Claude API が配乗会社への依頼の英文の下書きを作る
  8. 人配乗の担当者が、転記の案と拾われた事項を原本と見比べ、台帳に登録し、依頼を送る
各工程の詳しい説明を読む
  1. 配乗会社から届いた資格証明書の一式のPDFを、船員ごとのフォルダに保存する
  2. 一式を1ページずつめくり、証明書の種類を見分ける
  3. 証明書の番号・発行国・職務の範囲・有効期限を乗組員台帳に写す
  4. 職務ごとの必要な資格の表と見比べ、足りない証明書を探す
  5. 乗船の予定期間と有効期限を見比べ、期間中に切れるものを探す
  6. 足りないもの・切れるものを配乗会社に英文のメールで知らせ、差し替えや更新を頼む

(a)証明書の種類を見分けるのに時間がかかる。 発行国ごとに様式が違い、題名だけでは基本訓練の修了証か、その更新の修了証かが分からないことがあります。一式の順番も配乗会社ごとにばらばらです。

(b)期限の日付の書き方がそろわない。 「05/06/2027」が5月6日か6月5日かは発行国で変わります。期限を1か月取り違えると、乗船の期間中に切れることを見落とします。

(c)職務の範囲と制限を読み飛ばす。 海技資格の証明書には、どの職務で、どの大きさの船で使えるか、制限があるかが英文で書かれています。「Limitations: None」のときもあれば、細かい制限が書かれていることもあります。

(d)期間中に切れることに乗船後に気づく。 乗船の日に有効なことだけを見て台帳に入れると、寄港地で健康診断や更新の手配をすることになり、費用も手間もかかります。

  1. 【人】 配乗の担当者が、届いた一式のPDFを船員ごとの受け取りの場所(Amazon S3)に保存する
  2. 【自動】 保存をきっかけに、AWS Textract が全ページの問い合わせと行の読み取りを非同期で始める
  3. 【自動】 Claude API が、ページごとに証明書の種類を決め、職務の範囲と制限の英文を項目に分ける
  4. 【自動】 プログラムが、日付を発行国ごとの設定で読み、乗組員台帳への転記の案を作る
  5. 【自動】 プログラムが、乗船予定の船の種類と職務に必要な資格の表と照らし、足りないものを拾う
  6. 【自動】 プログラムが、有効期限を乗船の予定期間の終わりと照らし、期間中に切れるものを拾う
  7. 【自動】 足りないもの・切れるものについて、Claude API が配乗会社への依頼の英文の下書きを作る
  8. 【人】 配乗の担当者が、転記の案と拾われた事項を原本と見比べ、台帳に登録し、依頼を送る

3番目を「種類の判別」に留めるのが、この設計の分かれ目です。 証明書の題名や本文の言い回しは発行国で違い、規則で見分け切れません。ただし、必要な資格が足りているか、期限が足りるかは、プログラムが表と日付で決めます。 AIに「乗船できます」とは言わせません。

6番目で期限を「乗船の予定期間の終わり」と照らすのは、乗船の日だけを見ると期間中の期限切れを拾えないからです。 予定期間には、交代の遅れを見込んだ余裕の日数を足します。

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

構成図
資格証明書の一式(英文のPDF。配乗会社からメールで届く)
   │  配乗の担当者が船員ごとの場所へ保存
   ▼【トリガー】Amazon S3 への保存
AWS Lambda ── StartDocumentAnalysis(FeatureTypes:QUERIES、FORMS。問い合わせは全ページ)
   ▼
AWS Textract(非同期の文書分析)── 完了の通知(Amazon SNS)
   ▼
AWS Lambda ── GetDocumentAnalysis
   ├──▶ Claude API:ページごとの証明書の種類、職務の範囲と制限
   ├──▶ Python:日付の読み方、台帳の転記の案
   ├──▶ Python:必要な資格の表と乗船の予定期間との照合
   └──▶ Claude API:配乗会社への依頼の英文の下書き
   ▼
転記の案と確認事項の一覧(配乗の担当者が確認・登録)
   ▼
乗組員台帳/配乗会社への依頼(担当者が送る)
役割想定する製品代替候補
OCRAWS Textract(StartDocumentAnalysis/GetDocumentAnalysis。QUERIES・FORMS)Azure AI Document Intelligence、Google Document AI
生成AIClaude API(証明書の種類の判別、職務の範囲と制限の項目化、依頼の英文の下書き)OpenAI API、Gemini API
差異計算Python(日付の読み方、必要な資格の表と予定期間との照合)船員の管理の仕組みの期限の通知の機能
連携AWS Lambda(保存と完了の通知を起点に処理を動かす)AWS Step Functions
保管Amazon S3(証明書の原本、読み取り結果、確認の記録)社内のファイルサーバー

土台は、AWS Textract の問い合わせの機能です。 証明書は発行国ごとに様式が違い、項目の位置がばらばらです。「What is the date of expiry?」のように英語で問いかけ、答えを受け取る形なら、様式ごとの位置の設定が要りません。 一式が10〜20ページあるので、非同期の StartDocumentAnalysis を使います。

Textract を選べるのは、証明書が英文だからです。 公式の対応言語は英語・フランス語・ドイツ語・イタリア語・ポルトガル語・スペイン語で、問い合わせは英語の文書でだけ使えます。発行国の言葉だけで書かれ、英語の併記が無い証明書は人が読みます。

乗組員台帳には書き込みません。 転記の案は担当者が確かめてから登録します。

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

Step1

処理の起点を決める

船員ごとの受け取りの場所(S3 のフォルダ)にPDFが保存されたことを起点にします。 フォルダは crew/<船員番号>/<乗船予定の番号>/ の形にし、どの船員の、どの乗船予定の一式かを、保存した場所で決めます。 証明書の氏名から船員を探すと、同姓同名や名前の綴りの違いで取り違えます。

読み取りを始めるとき、ClientRequestToken に「船員番号+乗船予定の番号+受領日」を入れます。 公式のページでは、同じトークンで StartDocumentAnalysis を呼ぶと同じ JobId が返り、同じジョブを誤って二度始めるのを防げるとされています。

完了は Amazon SNS の通知で受け、JobTag に入れた乗船予定の番号でどの予定かを知ります。 JobId は7日間だけ有効なので、結果は受け取ったその場で S3 に保存します。

期限の確認は、届いた一式とは別に、毎週月曜に乗船中の全員について台帳で行います。 乗船中に延長が決まった船員は、最初の予定期間では足りていた証明書が、延長後の期間では切れることがあります。

Step2

入力データを集める

データ中身取得元
資格証明書の一式証明書の種類と題名、番号、氏名、生年月日、発行国、発行日、有効期限、職務の範囲(Capacity)、制限(Limitations)、条約の規則の番号、健康証明書の適否と制限配乗会社から届くPDF
読み取り結果問い合わせの答えと信頼度、キーと値の組、行と単語AWS Textract
乗船の予定船員番号、乗船予定の船、職務、乗船予定日、予定期間(月数)船員の管理の仕組み
必要な資格の表船の種類(ばら積み船・油タンカー・ケミカルタンカーなど)と職務ごとに必要な証明書の種類と、旗国ごとの追加の要件船員部が旗国の要件と自社の手順から作る表
発行国ごとの設定日付の順(日月年か月日年か)、証明書の題名の言い換え自社で用意する設定表

質を決めるのは、必要な資格の表です。 表が「職員:海技資格」のように粗いと、タンカーの訓練の修了証の不足を拾えません。船の種類と職務の組み合わせごとに、証明書の種類を1つずつ並べます。 表を作るのは船員部の責任者で、旗国の要件が変わったら直します。

健康証明書の有効期限の上限は、表に持たせます。 ILO の海上労働条約の問答では、健康証明書の有効期間は最長2年(18歳未満は1年)、色覚の証明は最長6年とされ、これは上限で、国はもっと短い期間を定めうるとされています。旗国ごとの上限を表に書き、証明書に書かれた有効期限と照らします。

職務の言い換えの表も用意します。 証明書に書かれる職務の言葉(「Officer in charge of a navigational watch」「Chief mate」など)と、自社の配乗の予定の職務(二等航海士、一等航海士など)の対応を1行ずつ持ちます。対応を決めるのは船員部の責任者で、AIには決めさせません。

Step3

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

取るものどこから何に使うか
証明書の題名と本文各ページの LINE のブロック生成AIによる種類の判別
番号・氏名・生年月日・発行国QUERIES の QUERY_RESULT、キーと値の組台帳との照合
発行日・有効期限QUERIES の QUERY_RESULT予定期間との照合
職務の範囲と制限QUERIES の QUERY_RESULT と、そのページの LINE のブロック職務との照合
健康証明書の適否と制限QUERIES の QUERY_RESULT配乗の担当者の確認

問い合わせは、全ページに当てるよう指定します。 公式のページでは、問い合わせの対象のページを指定しないと、既定で1ページ目だけに当てられるとされています。**Pages に ["*"] を入れて全ページに当てます。** これを忘れると、一式の1ページ目の証明書しか読めません。

問い合わせ(Text)Alias
What is the certificate number?CERT_NO
What is the name of the holder?HOLDER_NAME
What is the date of birth of the holder?DOB
Which country or administration issued this certificate?ISSUER
What is the date of issue?ISSUE_DATE
What is the date of expiry?EXPIRY
In what capacity may the holder serve?CAPACITY
What limitations apply?LIMITATIONS
Is the seafarer fit for duty?FIT_FOR_DUTY

公式のページでは、非同期の問い合わせは1ページあたり30件までとされています。9件なら余裕があります。

職務の範囲と制限は、問い合わせの答えだけに頼りません。 表の形で複数の職務と制限が並ぶ証明書があり、答えが1行だけになることがあります。答えの位置のページの LINE のブロックから、職務と制限の表の行を全部取ります。

Step4

AIへ渡す前に整形する

  1. 形式の確認 … JPEG、PNG、PDF、TIFF のどれかであることを確かめます。パスワードで保護されたPDFは扱えないとされています
  2. ページの区切り … 1ページに1つの証明書を前提にし、2ページにまたがる証明書は生成AIの判別で「前のページの続き」として扱います
  3. 日付の読み方 … 月の名前で書かれたものはそのまま読み、数字だけの日付は発行国ごとの設定で読みます。設定の無い発行国で日が12以下のものは人に回します
  4. 氏名の照らし … 姓と名の順、ミドルネームの有無、綴りの違いを整え、台帳の氏名と照らします。合わないものは別人の証明書の混入の疑いとして出します
  5. 生年月日の照らし … 証明書の生年月日と台帳の生年月日を照らします

3番目を軽く見ないでください。 期限の月と日を取り違えると、予定期間との照合そのものが誤ります。 日が12以下の数字だけの日付は、どちらの順でも日付として成り立つので、機械では決められません。

Step5

AIに処理させる

させるのは、ページごとの証明書の種類の判別と、職務の範囲と制限の項目化だけです。 項目の読み取りは Textract、日付と照合はプログラムが行います。

させること中身できないときの扱い
証明書の種類の判別ページの題名と本文から、種類の一覧(海技資格・旗国の承認の裏書・基本訓練・上級消火・医療の応急手当・船の種類ごとの訓練・健康証明書・その他)のどれかを付け、根拠の文を写す決められなければ unknown
職務の範囲と制限の項目化職務の範囲の文と制限の文を、職務・船の大きさや機関の出力の条件・制限の有無に分ける書かれていなければ空
依頼の下書き足りないもの・切れるものごとに、配乗会社に送る英文のメール理由ごとの定型の文に限る

種類の判別は、必要な資格の表との照合の前提です。 判別を誤ると、足りている資格を「足りない」と出し、足りない資格を「ある」と扱います。unknown と信頼度の低いものは、必ず人が原本で見ます。

させないこと理由
乗船させてよいかの結論配乗の責任者が旗国の要件と自社の手順で決める
期限の計算と予定期間との照合プログラムが日付で決める
職務の範囲を広げて読む「Officer in charge of a navigational watch」を上の職務に読み広げない
証明書が本物かの判断発行国の照会の手段で確かめる
健康の状態の推し量り健康証明書の適否と制限の欄を写すだけ

3行目がいちばん起きやすい失敗です。 証明書に書かれた職務より上の職務での乗船を予定していても、AIは「航海士の資格がある」と読みがちです。指示で「書かれた職務の言葉のまま返し、上の職務に当てはめない」と縛ります。

Step6

指示内容を固定する

あなたは船舶管理会社の船員部で、外国人船員の資格証明書を確かめる担当者を手伝います。
渡された「ページごとの文」と「証明書の種類の一覧」だけを見てください。

【やること】
- ページごとに、cert_type を種類の一覧から1つ選んでください。
  前のページの証明書の続きなら continuation、どれにも当たらなければ unknown です。
- 判断に使った題名や本文の文を evidence にそのまま写してください。
- 海技資格の証明書と旗国の承認の裏書のページでは、
  職務の範囲(capacity)と制限(limitations)の文を、行ごとにそのまま写してください。
- 訓練の修了証のページでは、条約の規則や基準の番号が書かれていれば、そのまま写してください。

【厳守事項】
- 書かれた職務の言葉のまま返してください。上の職務や別の職務に読み替えないでください。
- 制限が書かれていないときは空にしてください。「None」と書かれていれば None と写してください。
- 日付を計算しないでください。有効期限の判断をしないでください。
- 乗船させてよいか、資格が足りるかを書かないでください。
- 健康証明書のページでは、適否と制限の欄の文だけを写し、病名や検査の結果は写さないでください。
- 迷ったときは unknown を選んでください。

「病名や検査の結果を写さない」を明記するのは、健康証明書が健康の情報を含むからです。 台帳に要るのは、適否・制限・有効期限だけです。必要の無い健康の情報を出力に残さないことで、保存する場所も広げずに済みます。

依頼の下書きの指示は短くします。「理由(missing_cert/expires_during_contract/name_mismatch/unreadable)ごとに、船員の氏名・乗船予定の船・職務・証明書の種類と期限を渡された値のまま書き、差し替えか更新した証明書の送付をお願いする形にする。乗船の可否に触れない」とします。

Step7

出力形式を固定する

転記の案と照合の結果は、プログラムがJSONで出します。 ページごとの判別は Claude API の構造化出力で受けます。公式のページでは、output_config.format に JSON スキーマを渡すと、スキーマに合う JSON が返るとされ、正式提供の機能です。

{
  "crew_no": "C-20451",
  "assignment": { "vessel": "MV EXAMPLE", "vessel_type": "oil_tanker", "rank": "2nd Officer",
                  "sign_on": "2026-11-10", "contract_end_with_margin": "2027-09-10" },
  "certificates": [
    { "page": 1, "cert_type": "coc", "cert_no": "", "issuer": "",
      "expiry": "2029-03-14", "capacity": ["Officer in charge of a navigational watch"],
      "limitations": "None", "evidence": "" },
    { "page": 9, "cert_type": "medical", "expiry": "2027-05-02", "fit_for_duty": "fit" }
  ],
  "missing": [ "oil_tanker_basic_training" ],
  "expires_during_contract": [ { "cert_type": "medical", "expiry": "2027-05-02" } ],
  "name_check": "matched",
  "actions": [ "missing_cert", "expires_during_contract" ],
  "min_confidence": 94.8
}

1つ目の理由は、照合の結果を種類ごとに持てることです。 どの種類が足りないか、どの種類が期間中に切れるかが分かれて出るので、配乗会社への依頼を種類ごとに書けます。

2つ目は、capacity を職務の言葉のまま残せることです。 予定の職務と照らすのはプログラムで、職務の言い換えの表を船員部が持ち、照らした結果を actions に出します。

actions決め方(プログラム)
missing_cert必要な資格の表の種類が一式に無い
expires_during_contract有効期限が予定期間の終わり(余裕込み)より前
expired有効期限が乗船予定日より前
capacity_checkcapacity が予定の職務の言い換えの表に当たらない
name_mismatch氏名か生年月日が台帳と合わない
unreadableunknown のページがある、または日付を人に回した
Step8

システムへ連携する

つなぎ先方式内容
Amazon S3保存の通知で Lambda を動かす船員と乗船予定をフォルダで決める
AWS TextractStartDocumentAnalysis/GetDocumentAnalysis問い合わせの答え・キーと値の組・行・信頼度
Amazon SNS完了の通知JobTag で乗船予定を知る
船員の管理の仕組み乗船の予定と台帳を書き出して読む読み取りだけ
Claude APIAPI呼び出し(構造化出力)種類の判別、職務と制限の項目化、依頼の下書き
配乗の担当者転記の案と確認事項を共有の場所に置き、チャットで知らせる確認、台帳への登録、依頼の送信

乗組員台帳には書き込みません。 読み取りの誤りで有効期限が延びたまま登録されると、毎週の期限の確認でも気づけなくなります。

Step9

人が確認する

配乗の担当者が全件の転記の案を見ます。 見る順を決めておきます。

  1. name_mismatch と unreadable を先に見る … 別人の証明書の混入か、読み取りの問題かを原本で確かめます
  2. missing_cert を見る … 一式に本当に無いのか、種類の判別の誤りかを原本で確かめます
  3. expires_during_contract と expired を見る … 原本で日付を確かめ、配乗会社に更新を頼みます
  4. capacity_check を見る … 職務の範囲と制限の原文を読み、予定の職務に足りるかを配乗の責任者に確かめます
  5. 台帳に登録し、依頼を送る … 送信は担当者が行います

証明書が本物かは、読み取りでは分かりません。 IMO の通知では、他国の資格を認める取り決めで、資格を認める側が発行国に証明書の有効性や内容を照会する手順を定めておくことが挙げられています。疑いのあるものは、発行国の照会の手段で確かめます。

Step10

例外に対処する

起きること対応
パスワード付きのPDF読めない。配乗会社に送り直してもらう
1ページに複数の証明書種類の判別で unknown。人が分ける
英語の無い証明書対応言語の外。人が読む
有効期限の無い証明書期限の無い種類かを表で確かめ、無い種類でなければ人へ
乗船中の延長新しい予定期間で毎週の確認をやり直す
同じ種類の証明書が2枚ある有効期限の新しい方を案にし、古い方も並べて人が確かめる
旗国の承認の裏書の期限が資格より先に切れる裏書の期限で expires_during_contract を出す

最後の行を見落としやすいです。 海技資格の証明書が有効でも、旗国がそれを認めた裏書には別の期限があり、先に切れることがあります。 裏書と資格を別の種類として表に持ち、それぞれの期限で照らします。

Step11

記録を残す

  • 一式の原本と、保存した場所(船員・乗船予定・受領日)
  • Textract が返した結果の全文
  • ページごとの種類の判別と根拠の文、転記の案、照合の結果
  • 担当者が直した箇所 … どのページの種類・日付を、どう直したか
  • 配乗会社への依頼と、届いた差し替えの証明書
  • 毎週の期限の確認の結果

健康証明書の原本は、ほかの証明書と同じ場所に置かず、見られる人を絞ります。 台帳には適否・制限・期限だけを残します。

04実装レベルの3段階

最小構成:コンソールで一式を読み取り、種類の判別を手元のAIサービスで行う / 項目を写す手作業
半自動化:上記+保存を起点に自動で読み取り、種類の判別・転記の案・必要な資格と予定期間との照合・依頼の下書きまで出す / 転記の案と確認事項の洗い出し
本格構成:上記+船員の管理の仕組みと連携し、確認済みの値を台帳に登録し、配乗の予定を立てる画面に不足と期限の警告を出す / 台帳の更新と配乗の計画の前の確認

半自動化で、1件30分が9分になり、この段階が本記事の想定です。 写す作業と表との照合は無くなり、人は拾われた事項を原本で確かめ、台帳に登録します。 本格構成は、管理する船の多い会社で検討します。 配乗の予定を立てる段階で不足が見えれば、候補の船員を選ぶ前に気づけます。 そのためには、半自動化で必要な資格の表を半年回して固めておく必要があります。 段階を飛ばさないでください。 半自動化の確認事項を数か月見ると、missing_cert が多く出る配乗会社と、種類の判別が分かれやすい発行国が先に分かります。そこを配乗会社との取り決めと種類の一覧の説明で直してから本格構成に進むほうが、誤った警告で配乗の担当者が警告を見なくなる事態を防げます。

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

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

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

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

AI活用について相談する

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

向いている
  1. 外国籍の船(便宜置籍船など)を数十隻管理し、フィリピン・インドなどの配乗会社を通じて外国人船員を配乗している船舶管理会社。船員の交代のたびに、配乗会社から英文の資格証明書の一式がPDFで届き、配乗の担当者が証明書の種類と有効期限を乗組員台帳に手で写し、乗船予定の船と職務に必要な資格を目で確かめている場合。乗船の期間中に健康証明書や訓練の修了証が切れることに乗船後に気づく、といったことが起きている場合。
向いていない
  1. 管理する船が数隻で、乗組員の交代が月に数人の場合。配乗会社の船員管理の仕組みから資格の情報をデータで受け取れる場合(読み取りは要らず、受け取った値を確かめれば足ります)。証明書が英語以外の言語だけで書かれている場合(この構成で使う読み取りのサービスは英語など6言語に対応します)。なお、船員を乗船させてよいか、資格が職務に足りるかの最終の判断は、旗国の要件と自社の安全管理の手順に基づいて配乗の責任者が行います。この構成は確かめるべき点を拾うまでです。

07最小構成で試す方法

  1. 先月乗船した船員の一式から、配乗会社と発行国の違う10人分を選ぶ(うち数人は、タンカーの職員と、期間中に期限が切れたことがあった人を入れる)
  2. AWS のコンソールで Textract の文書分析を開き、問い合わせに上の9つの問いを入れ、対象を全ページにして読み取る
  3. 答えを、当時台帳に写した値と並べる
  4. 手元のAIサービスにページごとの文を貼り、証明書の種類を判別させる
  5. 必要な資格の表と予定期間に照らした結果を、当時の担当者の確認と比べる

最も見たいのは、種類の判別の正しさです。 判別がそろえば、後の照合は表と日付の問題になります。

出てきた内容判断
項目が取れ、種類の判別も当時の確認と合った必要な資格の表との照合に進む
2ページ目以降の答えが空だった問い合わせの対象のページの指定で直る。構成は有効
更新の修了証を元の修了証と取り違えた種類の一覧の説明と指示で直す。構成は有効

スマートフォンで撮った画像が多い配乗会社は、別に見ておきます。 傾きや影で読み取りの信頼度が下がるなら、AIの問題ではなく受け取り方の問題です。 スキャナーでのPDFを配乗会社に頼むほうが、指示を工夫するより確実です。

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

問題対策
2ページ目以降の問い合わせの答えが空既定は1ページ目だけ。 Pages に ["*"] を入れる
月と日を取り違えて期限がずれる発行国ごとの設定で読み、日が12以下の数字だけの日付は人へ
乗船の日だけで期限を見る予定期間の終わり(余裕込み)と照らす
AIが職務を上の職務に読み広げる書かれた職務の言葉のまま返させる
裏書の期限を見落とす資格と裏書を別の種類として期限を照らす
健康の情報が出力に残る適否・制限・期限だけを写させる
古い証明書を案に採ってしまう同じ種類が2枚あれば期限の新しい方を案にし、両方を並べる
氏名の綴りの違いで別人と出る姓と名の順とミドルネームを整え、生年月日と合わせて照らす
Bedrock で構造化出力が使えないClaude API を直接使うか、対応を先に確かめる

上の3行が、この構成の失敗のほとんどです。 1行目は読み取りを1ページ目だけにし、2行目と3行目は期限の確認を崩します。問い合わせの対象と日付の読み方を最初に固めておけば、台帳の期限を信頼できるものにできます。

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

この構成で扱うデータ: 船員の氏名・生年月日・国籍、資格証明書の番号、健康証明書の適否と制限です。健康証明書は健康の情報を含み、慎重に扱う必要があります。

  1. 生成AIに渡す範囲を絞る … 種類の判別にはページの文を渡しますが、健康証明書のページは題名と適否・制限・期限の行だけに絞って渡します
  2. 受け取りの場所の権限を絞る … S3 のフォルダは船員部と処理のプログラムだけが読めるようにし、結果は KMSKeyId を指定した暗号化で保存します
  3. 台帳を自動で更新しない … 有効期限と種類は、担当者が原本で確かめてから登録します
  4. 乗船の可否をこの構成で決めない … 拾われた事項は確かめる点で、乗船させるかは配乗の責任者が旗国の要件と自社の手順で決めます
  5. 依頼を自動で送らない … 下書きまでです
  6. 保存の期間を決める … 下船した船員の証明書をいつまで持つかを、自社の規程で決めておきます
  7. 配乗会社と送り方を決める … 一式をメールの添付で送るのをやめ、受け取り専用の共有の場所に置いてもらうほうが、誤送信と保存先の散らばりを防げます

誤りが起きた場合のリスクは、期限切れや資格の足りない船員を乗船させることと、資格のそろった船員を不足と誤って配乗を遅らせることの2つです。 前者は予定期間の終わりとの照合と人の確認で、後者は種類の判別を原本で確かめてから依頼することで防ぎます。

10まず何から始めるか

1週目:必要な資格の表を整える

船員部の責任者が、管理する船の種類と職務の組み合わせごとに、必要な証明書の種類と健康証明書の有効期限の上限を表にします。交代の多い職務から始めます。

2週目:10人分で読み取りを試す

発行国の違う10人分をコンソールで読み取り、当時の台帳と並べます。問い合わせの対象を全ページにしたか、日付の取り違えが無いかを最優先で見ます。

3週目:種類の判別を確かめる

手元のAIサービスで10人分の種類を判別し、当時の担当者の見分けと比べます。 更新の修了証と元の修了証の取り違えが無いかを見ます。

4週目:保存から照合の結果までをつなぐ

保存を起点に読み取り、種類を判別し、表と予定期間に照らすところまで作ります。毎週の乗船中の全員の期限の確認もここで動かします。

2か月目: 依頼の下書きを足し、missing_cert と expires_during_contract の件数を毎週数えます。3か月目以降: 1件30分が何分になったかを実測し、職務の言い換えの表を育てます。乗船の期間中の期限切れが乗船の前に拾えるようになった時点で、この構成は完成です。


11関連ユースケース

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

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

技術仕様確認日:2026-10-14/最終更新:2026-10-15
確認した内容情報源確認日
対応する形式が JPEG・PNG・PDF・TIFF であること。パスワードで保護されたPDFは扱えないこと。対応言語が英語・フランス語・ドイツ語・イタリア語・ポルトガル語・スペイン語であること。問い合わせは英語の文書だけで、非同期で1ページ30件までであることAWS: Set Quotas in Amazon Textract2026-10-14
StartDocumentAnalysis の FeatureTypes に QUERIES・FORMS などがあること。文書を S3 に置くこと。完了の状態が SNS に通知されること。ClientRequestToken で同じジョブの二重の開始を防げること。JobTag が通知に含まれること。KMSKeyId で結果を暗号化できること。JobId が7日間だけ有効であることAWS: StartDocumentAnalysis2026-10-14
問い合わせの対象のページを指定しないと既定で1ページ目だけになること。* で全ページを指定できることAWS: Query(Amazon Textract API)2026-10-14
output_config.format に JSON スキーマを渡すとスキーマに合う JSON が返ること。正式提供の機能であること。Amazon Bedrock では旧来の連携でだけ使え、Claude in Amazon Bedrock では使えないことClaude Docs: Structured outputs2026-10-14
STCW 条約が1978年に採択され1984年に発効したこと。2010年のマニラ改正で、海技資格の証明書の不正の防止と健康の基準が強められたことIMO: International Convention on Standards of Training, Certification and Watchkeeping for Seafarers2026-10-14
STCW 条約の規則 I/10 による他国の資格の承認の取り決めで、証明書の有効性や内容を照会する手順、承認の裏書の取消しの通知の手順を定めておくことIMO: MSC.1/Circ.14502026-10-14
健康証明書の有効期間が最長2年(18歳未満は1年)、色覚の証明が最長6年で、これらは上限であり国はもっと短い期間を定めうることILO: MLC, 2006 FAQ C1.2.b2026-10-14

船員を乗船させてよいか、資格が職務に足りるかは、旗国の要件と自社の安全管理の手順に基づいて配乗の責任者が決めてください。 本記事は公開されている製品の仕様と資料で確認できた範囲だけを扱っています。

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

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

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

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