Media > AI活用ユースケース > 購買 > 海外の輸出者から届く英文の商品規格書を読み取り、商品マスタの登録案にそろえて、日本の食品表示に要る項目の抜けを拾う

海外の輸出者から届く英文の商品規格書を読み取り、商品マスタの登録案にそろえて、日本の食品表示に要る項目の抜けを拾う

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

海外の輸出者から届く英文の商品規格書を読み取り、原材料・アレルゲン・賞味期間・保存温度・ケース入数を商品マスタの登録案にそろえます。あわせて、日本の食品表示に要る項目のうち規格書から埋まらないものを挙げ、輸出者へ問い合わせる一覧にします。

サマリー
生成AI
Azure OpenAI Service/ChatGPT/Claude
AIサービス
AWS Textract/Azure AI/Google Document AI
連携・自動化
Python
対象業界
EC/商社/小売
対象部門
購買
対象業務
データ入力・転記/内容確認・チェック
主な課題
人手が足りない/入力作業が多い/確認ミスが多い
AIで行う処理
読み取り(OCR)
主な効果
入力漏れ削減/品質標準化/工数削減
導入難易度
★★☆☆☆
実装レベル
本格構成
費用感
API連携(中)
人間の確認
条件付き
現在工数
90h/月
AI導入後
30h/月
想定削減
67%
年間削減
720h
モデル条件による試算値です。実在企業の実績ではありません。

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

導入前(Before)
  1. 輸出者から規格書のPDFがメールで届き、担当者が共有フォルダに保存する
  2. 規格書を開き、商品名・ブランド・バーコード(GTIN)・内容量・ケース入数・ケースの寸法と重量を探して、商品マスタの登録の画面へ転記する
  3. 原材料の一覧を読み、和訳を作業表に書く。アレルゲンの欄を読み、特定原材料に当たるものを書き出す
  4. 賞味期間(Shelf Life)を日数・月数から読み、保存温度から常温・冷蔵・冷凍の区分を決める
  5. 栄養成分の表を読み、表示に要る値がそろっているかを見る
  6. 表示に要る項目のうち規格書に無いものを、輸出者への問い合わせのメモにする
  7. 登録と問い合わせが終わったものを、表示ラベルを作る担当へ回す
導入後(After)
  1. 人輸出者から届いた規格書のPDFを、受付用のメールアドレスへ転送するか、受付フォルダへ置く
  2. 自動保存をきっかけに処理が動き、形式・ページ数・言語を確かめる
  3. 自動AWS Textract が表・項目・質問への答え(Queries)を読み取る
  4. 自動Claude API が読み取り結果を商品マスタの登録案の形にそろえ、原材料の一覧を1つずつに分ける
  5. 自動プログラムが原材料の語を特定原材料の語の一覧と照らし、申告欄との食い違いを出す
  6. 自動プログラムが賞味期間・保存温度・入数を自社の単位に換算し、区分を決める
  7. 自動表示に要る項目のチェックリストと照らし、`present`/`missing`/`unreadable` を付ける
  8. 自動`missing` の項目を、輸出者への問い合わせ文の下書きにまとめる
  9. 人商品登録の担当が登録案と要確認の項目を確かめ、商品マスタへ登録する
  10. 人表示の担当がアレルゲンの食い違いと問い合わせの下書きを確かめ、輸出者へ送る
各工程の詳しい説明を読む
  1. 輸出者から規格書のPDFがメールで届き、担当者が共有フォルダに保存する
  2. 規格書を開き、商品名・ブランド・バーコード(GTIN)・内容量・ケース入数・ケースの寸法と重量を探して、商品マスタの登録の画面へ転記する
  3. 原材料の一覧を読み、和訳を作業表に書く。アレルゲンの欄を読み、特定原材料に当たるものを書き出す
  4. 賞味期間(Shelf Life)を日数・月数から読み、保存温度から常温・冷蔵・冷凍の区分を決める
  5. 栄養成分の表を読み、表示に要る値がそろっているかを見る
  6. 表示に要る項目のうち規格書に無いものを、輸出者への問い合わせのメモにする
  7. 登録と問い合わせが終わったものを、表示ラベルを作る担当へ回す

(a)見る場所が規格書ごとに違う。 ケース入数が「Units per Case」「Case Pack」「Pack Configuration」のどれで書かれているか、表の中か本文の中かは、開いてみるまで分かりません。1件の半分近くは、項目を探す時間です。

(b)アレルゲンの申告欄を信じてしまう。 申告欄に「None」とあると、原材料の一覧を読み飛ばしがちです。輸出国の制度で申告対象でない品目は、申告欄には出てきません。 原材料に「cashew」とあっても、申告欄だけを見ていると拾えません。

(c)足りない項目にラベル作成のときに気づく。 6番の確認が忙しい月には省かれ、ラベルの担当が「ナトリウムの値が無い」「保存方法が書いていない」と戻してきます。そこから輸出者に問い合わせると、返事が来るまで入荷した商品を売り場に出せません。

(d)単位の換算で誤る。 賞味期間が月数か日数か、保存温度が華氏か摂氏かで、区分の判断が変わります。入数も「12 x 6」のように掛け算で書かれ、どちらをケース入数とするかが担当者で分かれます。

  1. 【人】 輸出者から届いた規格書のPDFを、受付用のメールアドレスへ転送するか、受付フォルダへ置く
  2. 【自動】 保存をきっかけに処理が動き、形式・ページ数・言語を確かめる
  3. 【自動】 AWS Textract が表・項目・質問への答え(Queries)を読み取る
  4. 【自動】 Claude API が読み取り結果を商品マスタの登録案の形にそろえ、原材料の一覧を1つずつに分ける
  5. 【自動】 プログラムが原材料の語を特定原材料の語の一覧と照らし、申告欄との食い違いを出す
  6. 【自動】 プログラムが賞味期間・保存温度・入数を自社の単位に換算し、区分を決める
  7. 【自動】 表示に要る項目のチェックリストと照らし、present/missing/unreadable を付ける
  8. 【自動】 missing の項目を、輸出者への問い合わせ文の下書きにまとめる
  9. 【人】 商品登録の担当が登録案と要確認の項目を確かめ、商品マスタへ登録する
  10. 【人】 表示の担当がアレルゲンの食い違いと問い合わせの下書きを確かめ、輸出者へ送る

5番目が、この設計の分かれ目です。 アレルゲンの判定をAIの読み取りに任せず、原材料の語と特定原材料の語の一覧の照合をプログラムで行います。 AIには原材料を1つずつに分けるところまでをさせ、どれが特定原材料に当たるかの最初の当たりは、決まった語の一覧で付けます。

9番目で人が見るのは、要確認の印が付いた項目が中心です。 ただし、アレルゲンの項目だけは印が無くても毎回目で見ます。

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

構成図
英文の商品規格書(PDF)
   │  受付メール/受付フォルダ
   ▼【トリガー】Amazon S3 への保存
AWS Lambda
   ├──▶ 形式・ページ数の確認
   ▼
AWS Textract(StartDocumentAnalysis:TABLES/FORMS/QUERIES)
   │   完了の通知(Amazon SNS)
   ▼
AWS Lambda ── GetDocumentAnalysis で結果を取る
   ▼
Claude API ── 登録案の形にそろえる(構造化出力)
   ▼
Python ── 特定原材料の語との照合/単位の換算/チェックリストとの照合
   ▼
登録案と要確認の一覧(購買部の作業表)
   ├──▶【人】商品登録の担当が確認して商品マスタへ
   └──▶【人】表示の担当がアレルゲンと問い合わせの下書きを確認
役割想定する製品代替候補
OCRAWS Textract(StartDocumentAnalysis の TABLES/FORMS/QUERIES)Azure AI Document Intelligence、Google Document AI
生成AIClaude API(読み取り結果を登録案の形にそろえる)OpenAI API、Azure OpenAI(Microsoft Foundry)
差異計算Python(特定原材料の語との照合、単位の換算、チェックリストとの照合)作業表の関数
連携AWS Lambda(保存と完了の通知を起点に処理を動かす)AWS Step Functions
保管Amazon S3(規格書、読み取り結果、登録案)購買部のファイルサーバー

商品マスタには、この構成から書き込みません。 登録案は作業表に出し、担当者が確かめてから基幹システムの画面で登録します。誤った入数やアレルゲンが、確認なしに売り場の値札や通販の商品ページへ流れる経路を作らないためです。

土台になるのは、AWS Textract の文書分析です。 非同期の StartDocumentAnalysis は、Amazon S3 に置いたJPEG・PNG・TIFF・PDFを分析し、FeatureTypes に TABLES・FORMS・QUERIES などを指定できます。完了すると、指定した Amazon SNS のトピックに完了の状態が送られます。 状態が SUCCEEDED であることを確かめてから、GetDocumentAnalysis に JobId を渡して結果を取ります。

規格書が英文であることが、Textract を選べる理由です。 Textract の対応言語は英語・フランス語・ドイツ語・イタリア語・ポルトガル語・スペイン語で、質問への答え(Queries)は英語の文書だけで使えます。 日本語の縦書きにも対応していません。日本語や中国語の規格書が混ざる取引先がある会社は、Azure AI Document Intelligence か Google Document AI を本命にしてください。

生成AIは Claude API を直接呼びます。 構造化出力は output_config.format に JSON スキーマを渡して使いますが、Amazon Bedrock 上の Claude では対応が旧来の統合の一部のモデルに限られると公式ページにあります。

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

Step1

処理の起点を決める

受付用の Amazon S3 のバケットにPDFが置かれたことを起点にします。 輸出者からのメールは受付用のアドレスへ転送し、添付ファイルをバケットに保存する仕組みを1つ置きます。担当者が手で置く場合も、同じバケットの受付用のフォルダに入れます。

届いた順に1件ずつ動かします。 新しい商品の規格書は、催事の準備や定番の入れ替えの前にまとまって届きますが、まとめて夜に処理すると、問い合わせの下書きが出るのが翌日になります。 輸出者とは時差があるので、午前中に問い合わせを出せば相手の営業時間に届きます。

Textract の非同期の処理は、ClientRequestToken を付けると同じ依頼から同じ JobId が返ります。同じPDFが二度置かれても二重に分析しないよう、ファイルのハッシュ値をこのトークンに使います。 完了の通知に載る JobTag には、受付の番号を入れておきます。

Step2

入力データを集める

データ中身取得元
商品規格書英文のPDF。輸出者名、受け取った日時、新規か改訂か受付用の S3 バケット
読み取り結果行と単語、表とセル、キーと値、質問への答え、それぞれの信頼度AWS Textract
輸出者の情報輸出者コード、国、過去の規格書の版、前回の登録内容購買部の取引先一覧
特定原材料の語の一覧9品目と、それぞれに当たる英語の語(例:cashew、walnut、shrimp、prawn、crab、wheat、buckwheat、peanut、egg、milk)表示の担当が持つ一覧
表示のチェックリスト日本の表示に要る項目と、規格書のどの値から埋めるかの対応表示の担当が持つ一覧
自社の区分の基準常温・冷蔵・冷凍の温度の範囲、受け入れる賞味期間の下限物流と品質管理の取り決め

質を決めるのは、下の3つです。 特定原材料の語の一覧が粗いと照合が漏れ、チェックリストが無いと「何が抜けているか」を言えません。どちらもAIに作らせず、表示の担当が持つ一覧として管理します。

特定原材料の語の一覧には、言い換えを多めに入れます。 「milk」だけでなく「whey」「casein」「butter」「cream」、「wheat」だけでなく「semolina」「durum」「spelt」のように、原材料の名前に現れる形で並べます。ここに無い語は照合で拾えないので、拾えなかった食い違いを見つけるたびに足していきます。

Step3

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

読み取りは StartDocumentAnalysis を1回呼ぶだけです。FeatureTypes に TABLES・FORMS・QUERIES を指定し、QueriesConfig に質問を並べます。

取るもの方法何に使うか
表とセルTABLES栄養成分の表、包装の構成の表(内箱・外箱・パレット)
キーと値FORMS「Shelf Life: 18 months」のような項目と値の組
質問への答えQUERIES書式が決まっていない規格書から、決まった項目を引く
行と単語常に返る原材料の一覧の本文、注記

質問は、書式がばらばらでも聞きたいことは同じ、という項目に使います。 例えば What is the shelf life?(別名 SHELF_LIFE)、What is the storage temperature?(STORAGE_TEMP)、How many units are in one case?(UNITS_PER_CASE)、What is the country of origin?(ORIGIN)、What is the GTIN or EAN barcode?(GTIN)のように並べます。答えは QUERY_RESULT のブロックで返り、信頼度と答えの位置が付きます。答えが見つからないときは空になります。

質問の数には上限があります。 1ページあたり、同期の処理で15件、非同期の処理で30件までです。質問を増やしすぎず、表と項目で取れるものは表と項目から取ります。 上限を超えたり、存在しないページに質問したりすると、結果に INVALID_REQUEST_PARAMETERS が出ます。

結果は GetDocumentAnalysis で取ります。1回で返るブロックは既定で1,000件までで、それを超えると NextToken が返るので、無くなるまで繰り返し呼びます。 途中で止めると、後ろのページの栄養成分の表が欠けたまま次へ進みます。

Step4

AIへ渡す前に整形する

  1. 形式の確認 … JPEG・PNG・TIFF・PDFだけを受け付けます。Wordや表計算のまま届いたものはPDFにします。XFA形式のPDFは扱えないので、印刷し直したPDFを輸出者に頼みます
  2. パスワードの確認 … パスワード付きのPDFは扱えません。輸出者に外したものを頼みます
  3. ページ数とサイズの確認 … 非同期の処理ではPDFが500MB・3,000ページまでです。規格書は数ページに収まるので、数十ページあるものはカタログが混ざっていないかを疑います
  4. 文字の大きさの確認 … 検出できる文字の高さは15ピクセルが下限で、150DPIで8ポイントの文字に当たります。栄養成分の表の脚注は小さいことが多いので、スキャンし直したPDFは解像度を確かめます
  5. 言語の確認 … 読み取った単語に英語以外の文字が多いものは、Textract の対象外として人へ回します
  6. 新規か改訂かの判定 … 輸出者と商品名・GTINで既存の登録を引き、改訂なら前回の登録内容を一緒に渡します

6番目を軽く見ないでください。 改訂の規格書は、変わったところだけを見たいものです。前回の登録内容と並べて渡すと、原材料が1つ増えた、賞味期間が短くなった、という差分を出せます。 第2章で書いた「改訂の見落とし」を止めるのはここです。

Step5

AIに処理させる

させるのは、読み取り結果を登録案の項目に割り当て、原材料の一覧を1つずつに分けることです。 判定はさせません。

させること中身判断できないときの扱い
項目の割り当て商品名、ブランド、GTIN、内容量、ケース入数、ケースの寸法と重量、原産国候補が複数あれば ambiguous
原材料の分割原材料の一覧を1つずつに分け、括弧の中の副原材料を分ける。書かれた順を保つ区切りが読めなければ全文を残して unreadable
原材料の和訳の案1つずつに最も一般的な日本語の名前の案を付ける訳せない語は英語のまま残す
申告されたアレルゲンの書き写し「Contains」「May contain」の欄をそのまま写す欄が無ければ missing
期間・温度・入数の書き写し単位を含めて原文のまま写す換算はしない
栄養成分の書き写し表の行を、単位と基準量(per 100g など)とともに写す基準量が書かれていなければ missing
させないこと理由
特定原材料に当たるかの判定決まった語の一覧とプログラムで照合し、人が確かめる
単位の換算と区分の判断華氏・摂氏、日数・月数の換算はプログラムで行う
書かれていない値の推測似た商品の値で埋めると、問い合わせるべき項目が消える
食塩相当量の計算ナトリウムからの換算は表示の担当が行う
表示の文案日本語の一括表示は表示の担当が作る

3行目がいちばん起きやすい失敗です。 保存温度が書いていない冷凍食品を渡すと、「Frozen」という商品名から −18℃ と埋めることがあります。埋まった瞬間、輸出者に聞くべき項目が一覧から消えます。

Step6

指示内容を固定する

あなたは輸入食品の商品登録の担当を手伝う立場です。
AWS Textract が英文の商品規格書から読み取った結果だけを見て、
商品マスタの登録案の項目に値を割り当ててください。推測で埋めないでください。

【割り当てる項目】
product_name, brand, gtin, net_quantity, units_per_case,
inner_pack, case_dimensions, case_weight, country_of_origin,
shelf_life_raw, storage_raw, ingredients, allergen_statement,
nutrition_rows

【status の選び方】
- present ..... 値が読み取れており、その項目として解釈できる
- missing ..... 規格書にその項目の記載が無い
- unreadable .. 文字は検出されているが信頼度が低く、値として確定できない
- ambiguous ... 候補が複数あり、1つに決められない
迷ったときに present を選ばないでください。

【厳守事項】
- 記載がなければ value を「不明」とし、status を missing にしてください。
  商品名やカテゴリから推測して埋めないでください。
- 期間・温度・重量は、単位を含めて原文のまま写してください。
  換算しないでください。
- ingredients は書かれた順を保ったまま1つずつに分けてください。
  括弧の中の副原材料は sub に入れてください。並べ替えないでください。
- 各原材料に ja_name_draft として日本語の名前の案を付けてください。
  訳せない語は英語のまま入れ、note に「訳語未確定」と書いてください。
- allergen_statement は「Contains」「May contain」の欄を原文のまま写してください。
  原材料の一覧からアレルゲンを補って書き足さないでください。
- 特定原材料に当たるかどうかは書かないでください。
- 入数が「12 x 6」のように掛け算で書かれていれば、そのまま写し、
  units_per_case を計算しないでください。
- evidence には根拠にした文字列を原文のまま写してください。
- confidence は読み取り結果の値をそのまま入れてください。

【読み取り結果】{textract_result}
【前回の登録内容(改訂のときだけ)】{previous_entry}

「申告欄に原材料から書き足さない」を明記しないと、親切に補います。 原材料に「cashew」があり、申告欄に無ければ、AIは申告欄に「cashew」を加えたくなります。しかし、申告と原材料の食い違いこそが拾いたいものです。 補われると、食い違いが無かったことになります。

「換算しない」「計算しない」を何度も書くのも同じ理由です。 換算をAIに任せると、どこで換算したかが記録に残りません。原文のまま写させ、換算はプログラムの側で、式が分かる形で行います。

Step7

出力形式を固定する

Claude API の構造化出力で、次の形のJSONを受け取ります。

{
  "spec_id": "",
  "exporter_code": "",
  "revision": "new | revised",
  "fields": [
    { "name": "units_per_case", "status": "present | missing | unreadable | ambiguous",
      "value": "", "confidence": 0, "evidence": "" }
  ],
  "ingredients": [
    { "order": 1, "name_en": "", "sub": [], "ja_name_draft": "", "note": "" }
  ],
  "allergen_statement": { "contains": "", "may_contain": "", "status": "" },
  "nutrition_rows": [
    { "nutrient": "", "value": "", "unit": "", "basis": "" }
  ]
}

1つ目の理由は、AIの割り当てとプログラムの判定を別の層に置けることです。 fields と ingredients はAIが埋め、特定原材料との照合、単位の換算、チェックリストの判定はプログラムが行います。特定原材料が増えても、直すのは語の一覧とプログラムだけです。

2つ目は、構造化出力でスキーマに合う形が保証されることです。 公式ページでは、構造化出力は数値の範囲や文字数の制約に対応していないとされています。confidence の範囲や GTIN の桁数は、受け取った後にプログラムで確かめます。

プログラムが足す判定は、次の表の形で作業表に出します。

判定中身例
アレルゲンの照合原材料の語と特定原材料の語の一覧を照らし、申告欄と比べる原材料に cashew、申告欄に無し → conflict
区分保存温度を摂氏に換算し、自社の常温・冷蔵・冷凍の範囲に当てる32–40°F → 0–4.4℃ → 冷蔵
賞味期間日数・月数を日数に換算し、受け入れる下限と比べる540 days → 下限内
入数内箱×外箱の掛け算を展開する12 x 6 → 72(内箱6の場合は要確認)
表示の材料チェックリストの各項目が埋まるか栄養成分の基準量が無い → missing
Step8

システムへ連携する

つなぎ先方式内容
受付用の S3 バケット保存の通知で Lambda を起動規格書の受付
AWS TextractStartDocumentAnalysis/GetDocumentAnalysis表・項目・質問への答え
Amazon SNS完了の通知結果を取りに行く Lambda を起動
Claude APIMessages API の構造化出力登録案の形にそろえる
購買部の作業表ファイルへの書き出し登録案、判定、問い合わせの下書き
商品マスタ担当者が画面で登録この構成からは書き込まない

チェックリストは、日本の食品表示基準で一般用の加工食品に表示が求められる項目を、規格書のどの値で埋めるかに置き換えたものです。 名称、保存の方法、消費期限または賞味期限、原材料名、添加物、内容量、栄養成分(たんぱく質・脂質・炭水化物・ナトリウム)の量と熱量、アレルゲン、輸入品の原産国名、輸入業者の氏名と所在地などが並びます。輸入業者は自社なので規格書からは埋めません。 チェックリストのどの項目を規格書から埋め、どの項目を自社で書くかは、表示の担当が決めます。

Step9

人が確認する

  1. アレルゲンの照合結果を毎回見る … conflict が無くても、原材料の一覧と申告欄を目で見ます。語の一覧に無い言い方は照合で拾えないからです
  2. missing と unreadable を分ける … unreadable はPDFの画質の問題です。輸出者に聞く前に、元のPDFで該当の箇所を見ます
  3. 区分と入数を確かめる … 冷蔵か冷凍か、ケース入数が内箱か外箱かは、物流の手配と発注の単位に直結します
  4. 改訂の差分を確かめる … 前回の登録と変わった項目だけを見て、売り場と通販の表示に影響があるかを判断します
  5. 問い合わせの下書きを直して送る … 送信は表示の担当が行います

1番目を省かないでください。 アレルゲンの見落としは、商品の回収と健康被害につながります。この構成の時短は、アレルゲン以外の項目で稼ぐ前提です。

目標は、180件をならして1件10分です。 登録案の確認と転記に6分、アレルゲンと表示の材料の確認に4分という見込みです。

Step10

例外に対処する

起きること対応
パスワード付き・XFA形式のPDF扱えない。輸出者に外したもの・印刷し直したものを頼む
英文以外の規格書Textract の対象外。人が読むか、別の読み取りの製品に回す
文字が小さすぎる15ピクセルが下限。unreadable にして元のPDFを人が見る
質問の上限を超えたINVALID_REQUEST_PARAMETERS。質問を減らし、表と項目で取る
分析が FAILED/PARTIAL_SUCCESS受付の一覧に残し、StatusMessage を担当者へ
1つのPDFに複数の商品商品ごとに分けて再投入。分けられないものは人へ
申告と原材料が食い違うconflict。表示の担当が輸出者に確かめるまで登録しない
構造化出力が refusal や max_tokens で終わるスキーマに合わないことがある。受け付けず再実行
改訂で原材料が増えた差分として表示の担当に回す。表示ラベルの差し替えを検討する

上から3行目までは、規格書の受け取り方で減らせます。 輸出者に「英文のPDFで、パスワードを付けずに」と最初に伝えておくと、例外のほとんどが入口で消えます。

Step11

記録を残す

  • 元の規格書のPDFと、受け取った日時・輸出者・新規か改訂か
  • Textract が返した結果の全文(ブロックと信頼度)
  • Claude API の出力と、そのとき使った指示の版
  • プログラムの判定(アレルゲンの照合、区分、換算)と、そのとき使った特定原材料の語の一覧の版
  • 人が登録案を直した記録(どの項目を、何から何へ)
  • 輸出者への問い合わせと回答の記録

4つ目で語の一覧の版を残すのは、特定原材料が変わるからです。 令和8年4月のカシューナッツの追加のように、一覧が変わったときに、どの登録を見直せばよいかを版から引けます。

04実装レベルの3段階

最小構成:PDFを手でAIの画面に貼り、項目を原文のまま書き出させる / 1件ごとの項目の書き出し
半自動化:上記+Textract を呼び、登録案と特定原材料の照合を作業表に出す / 読み取り、登録案、アレルゲンの照合
本格構成:上記+受付から自動で動かし、単位の換算、チェックリストとの照合、改訂の差分、問い合わせの下書きまで出す / 受付から確認待ちまでの全体

半自動化で、1件30分が18分程度になります。 項目を探して写す時間はほぼ消えますが、単位の換算と表示の材料の確認が手作業で残ります。本格構成で10分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化で1か月回すと、照合で拾えなかった言い方が分かります。語の一覧を直してから本格構成に進みます。

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

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

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

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

AI活用について相談する

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

向いている
  1. 海外の食品・日用品を直輸入して自社の店舗や通販で売る小売業・専門商社で、新しく扱う商品や規格の改訂で月に百件を超える英文の商品規格書が届き、商品マスタへの転記と日本語の表示の準備を購買の担当が手で行っている場合。規格書がPDFで届き、輸出者ごとに書式が違う場合。AWS を社内で使っている場合。
向いていない
  1. 輸入を商社に任せていて、日本語の表示を付けた状態で商品が届く場合。扱う輸出者が数社で、規格書の書式が固定されている場合。規格書が日本語・中国語・韓国語などで届く場合(AWS Textract は日本語・中国語を読めません)。なお、日本の表示として何をどう書くか、輸入品として販売してよいかの判断は、この構成では代替できません。

07最小構成で試す方法

  1. 先月届いた規格書から20件を選ぶ(アレルゲンの申告が無いのに原材料にナッツや小麦が入っているものを数件入れる)
  2. その20件について、当時の転記の結果とラベルの担当から戻された項目を集める
  3. 規格書のPDFを手元のAIサービスに1件ずつ貼り付ける
  4. 「この規格書から、商品名・GTIN・内容量・ケース入数・賞味期間・保存温度・原産国・原材料・アレルゲンの申告・栄養成分を、原文のまま書き出してください。書かれていない項目は『不明』としてください。換算しないでください。アレルゲンを原材料から補わないでください」と指示する
  5. 書き出された値を、当時の転記と比べる
出てきた内容判断
当時の転記と同じ値が出て、抜けた項目も一致した読み取りの API と照合のプログラムに進む
書かれていない値を推測で埋めた指示の書き方で直る。構成は有効
表の値が行ずれして読めない規格書が多い表の読み取りを Textract の表の結果で補う設計にする

最小構成では、アレルゲンの照合はまだ人が行います。 照らしてみて拾いにくかった語が、語の一覧に足すべき語です。

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

問題対策
アレルゲンの申告欄だけを見て照合が漏れる原材料の語と特定原材料の語の一覧を照らす。 申告との食い違いは必ず人へ
AIが申告欄に原材料から書き足す指示で禁じ、申告欄は原文のままか後段で比べる
書かれていない保存温度を商品名から埋める推測を禁じ、missing にする
華氏と摂氏を取り違える単位を含めて写させ、換算はプログラムで行う
入数の内箱と外箱を取り違える掛け算のまま写させ、どちらを発注単位にするかは人が決める
質問を増やしすぎて上限に当たる1ページあたり非同期で30件まで。表と項目で取れるものは質問にしない
日本語の規格書が混ざるTextract は日本語を読めない。対象外として人へ回すか、別の製品を使う
特定原材料の追加に気づかない語の一覧に版を付け、変わったら既存の登録を見直す

上の2行が、この構成の失敗のほとんどです。 どちらも「申告欄を正とする」思い込みから出ています。

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

この構成で扱うデータ: 輸出者の商品規格書(原材料の配合の順、包装の仕様、価格が書かれていることもある)、輸出者の担当者の名前と連絡先です。個人の消費者の情報は扱いません。

  1. 規格書は輸出者の営業秘密を含みうる … 配合の順や製造の工程が書かれていることがあります。輸出者との秘密保持の取り決めで、外部のサービスで処理してよいかを確かめます
  2. Textract の結果の暗号化を指定する … KMSKeyId を指定すると結果の保存に使う鍵を選べます。指定しなければ SSE-S3 で暗号化されます
  3. アレルゲンの判断を自動で確定させない … 照合はプログラムで行いますが、登録は人が確かめてからです。誤りは健康被害に直結します
  4. 表示の内容は表示の担当が決める … この構成は材料がそろっているかを示すだけで、日本語の一括表示の文案と、輸入品として販売してよいかの判断は代替しません
  5. 経過措置の扱いを決めておく … カシューナッツの追加には、令和10年3月31日までに製造・加工・輸入されるものに経過措置があります。自社がいつから新しい表示にするかを決めます

誤りが起きた場合のリスクは、アレルゲンを見落として売ることと、入数や区分を誤って発注・保管することの2つです。 どちらも判定をプログラムと人の側に置いて防ぎます。

10まず何から始めるか

1週目:特定原材料の語の一覧を作る

表示の担当と一緒に、9品目それぞれに当たる英語の語を、原材料の名前に現れる形で並べます。

2週目:20件で試す

先月の規格書から20件を選び、手元のAIサービスで項目を原文のまま書き出させます。当時の転記と比べ、書かれていない値を埋めていないかを最優先で見ます。

3週目:表示のチェックリストを作る

日本の表示に要る項目を、規格書のどの値から埋めるか、自社で書くかに分けて一覧にします。この一覧が決まらないうちに照合を組むと、「何が抜けているか」が担当者ごとに変わります。

4週目:受付から登録案までをつなぐ

S3 への保存から Textract、Claude API、作業表への書き出しまでを作ります。この時点ではアレルゲンの照合だけをプログラムで行い、換算とチェックリストは人が見ます。

2か月目: 単位の換算とチェックリストとの照合を足し、問い合わせの下書きを出します。3か月目以降: 改訂の差分を足し、1件30分が何分になったかを実測します。照合で拾えなかった語を一覧に足し終え、ラベルの担当からの差し戻しが減った時点で、この構成は完成です。


11関連ユースケース

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

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

技術仕様確認日:2026-10-13/最終更新:2026-10-14
確認した内容情報源確認日
対応形式が JPEG・PNG・PDF・TIFF で XFA形式のPDFは不可、非同期でPDFが500MB・3,000ページ、パスワード付きPDFは不可、質問が同期15件・非同期30件/ページ、縦書きに非対応、対応言語が英・仏・独・伊・葡・西で質問は英語の文書のみ、文字の高さの下限が15ピクセル(150DPIで8ポイント)、手書きは英語のみAWS: Set Quotas in Amazon Textract2026-10-13
質問の答えが QUERY/QUERY_RESULT のブロックで、別名・信頼度・位置とともに返り、答えが無ければ空になることAWS: Queries2026-10-13
表が TABLE・CELL・MERGED_CELL のブロックで返り、列見出し・表題・脚注を見分けられることAWS: Tables2026-10-13
StartDocumentAnalysis が S3 の文書を分析し、FeatureTypes に TABLES・FORMS・QUERIES・SIGNATURES・LAYOUT を取ること。完了の状態が SNS に送られること。ClientRequestToken・JobTag・KMSKeyId。JobId は7日間有効AWS: StartDocumentAnalysis2026-10-13
GetDocumentAnalysis の MaxResults が既定・最大1,000で NextToken で続きを取ること、JobStatus の値、質問の上限超過などで INVALID_REQUEST_PARAMETERS が出ることAWS: GetDocumentAnalysis2026-10-13
構造化出力を output_config.format で指定すること、数値の範囲・文字数の制約が非対応であること、refusal・max_tokens で終わるとスキーマに合わないことがあること、Amazon Bedrock 上では旧来の統合の一部のモデルに限られることClaude: Structured outputs2026-10-13
一般用加工食品の横断的義務表示(名称、保存の方法、期限、原材料名、添加物、内容量、栄養成分の量と熱量、表示責任者、アレルゲンなど)、輸入品は輸入業者の氏名・所在地と原産国名を表示すること、賞味期限が3か月を超える場合の年月表示、食塩相当量の定義、別表第十四の特定原材料9品目(カシューナッツを含む)と令和10年3月31日までの経過措置e-Gov 法令API: 食品表示基準2026-10-13
2026年4月1日に特定原材料としてカシューナッツが追加されたこと、容器包装された加工食品に特定原材料を含む旨の表示が義務付けられていること消費者庁: 食物アレルギー表示に関する情報2026-10-13

日本語の表示の文案と、輸入品として販売してよいかの判断は、表示の担当と必要に応じて専門家が行ってください。 本記事は上の公開情報で確認できた範囲だけを扱っています。

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

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

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

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