KakaoTalkチャットのスクリーンショットから韓国の住所と注文詳細を読み取る

顧客がKakaoTalkで注文を送ってきます — 「김치찌개 3개, 불고기 2인분, 주소는 서울시 강남구 테헤란로 123입니다。」住所、商品、数量がすべて、ハングルと数字が混在した1つのチャットバブルに含まれています。記録としてスクリーンショットを撮ります。必要な情報がすべて含まれた画像が手に入ります — ただし、住所は韓国に併存する2つの住所体系のどちらかで書かれている可能性があり、商品名と数量は、従来のOCRエンジンが解析するよう設計されていない会話調の韓国語テキストに埋め込まれています。

手入力をやめよう — AIに読み取らせるだけ
画像やPDFをアップロード — 10秒で構造化データに
今すぐ試す →
ブログヒーロー画像:「KakaoTalkチャットのスクリーンショットから韓国の住所と注文詳細を読み取る」という見出しと、その下に3つの太字アイコン:『道路名または地番』と書かれたチャットバブル、『商品と数量を分割』と書かれた買い物かご、『KakaoPayカードを読み取り』と書かれた決済カード。

重要なポイント

  1. KakaoTalkの韓国の住所は、도로명주소(道路名:테헤란로 123)または지번주소(地番:역삼동 123-45)のどちらかで書かれます — 両方の体系が併存しており、顧客は自分が知っている方を使います。
  2. 1枚のKakaoTalk注文スクリーンショットには、3つの異なる視覚形式 — プレーンテキストの住所バブル、緑色のアクセントが付いたKakaoPayカード、KakaoMapの位置情報カード — が含まれ、それぞれが注文の異なる情報を保持しています。
  3. 配送先住所、注文商品、支払金額を列として定義します — AIは3つの視覚形式すべてを1回の処理で読み取り、各値を正しい列に配置し、チャットテキストとカードデータを混在させません。

KakaoTalk注文スクリーンショットの実際の内容

KakaoTalkは韓国で圧倒的に使われているメッセージングプラットフォームで、人口5200万人のうち4600万人以上が利用しています。韓国人の顧客が小規模事業者に注文する場合(レストランへの大量の食品配達、美容製品を注文する再販業者、原材料を確認するサプライヤーなど)、取引全体が通常KakaoTalk内で完結します。顧客は住所を送り、希望する商品をリストアップし、多くの場合KakaoPayを通じて支払いも行うため、同じチャットスレッドに装飾された支払い確認カードが表示されます。韓国の共同購入(공동구매)は完全にこのチャットスレッド方式で運営されており、1人のオーガナイザーが数十人の購入者から商品と数量を収集するため、KakaoTalk共同購入スクリーンショットが事実上の注文リストとなっています。

「1枚のKakaoTalk注文スクリーンショットに、見た目がまったく異なる5つの形式」というタイトルの番号付きリストの図。5つの等しい行: プレーンテキストの住所バブル、注文商品と数量、KakaoPay支払いカード、KakaoMap位置情報共有、タイムスタンプ付きチャットUI。

この会話の1枚のスクリーンショットには、以下が含まれることがあります:

  • プレーンテキストのチャットバブル — 顧客の住所が韓国語で書かれており、道路名住所(도로명주소)または地番住所(지번주소)のいずれかの形式
  • 注文詳細 — 商品名(상품명)、数量(수량)、必要に応じて価格や特別リクエスト — すべて日常会話調の韓国語
  • KakaoPay支払いカード — 緑のアクセントが付いた視覚的に特徴的なUIカード。支払い総額、加盟店名、取引ステータスバッジを表示
  • KakaoMap位置情報共有 — 顧客がアプリ内蔵の地図サービスで位置情報を共有すると表示される、地図のサムネイルと住所テキストを示すプレビューカード
  • ビジュアルchrome — 相手の名前を表示するチャットルームのタイトルバー、「KakaoTalk」のブランディング、タイムスタンプ、既読表示、メッセージ入力エリア

これらの各要素は異なるビジュアル形式(プレーンテキスト、装飾カード、地図サムネイル)を持っていますが、必要なデータ(住所と注文詳細)はすべてにまたがっています。従来のOCRツールは画像全体を1つのテキストブロックとして読み取り、ハングル、数字、UIラベルが混在した生の文字列を生成するため、手動で整理する必要があります。課題は住所が読みにくいことではありません(韓国語で明確に書かれています)。課題は、画面上の他のすべての要素から住所を見つけ出すことです。

二重住所問題:道路名住所(도로명주소)と地番住所(지번주소)

韓国は、世界でも数少ない2つの住所体系が併存する国の一つです。公式の体系は道路名住所(도로명주소、Doro-myeong-juso)で、2011年7月に導入され、2014年1月に完全施行されました。この体系では、住所は論理的な道路ベースの形式(市・道→区→道路名→建物番号)に従います。一般的な道路名住所は次のようになります:

서울특별시 강남구 테헤란로 123
(Seoul, Gangnam-gu, Teheran-ro 123)

しかし、より古い地番住所(지번주소、Jibeon-juso)も広く使われ続けています。この体系は道路名ではなく土地の区画番号に基づいており、まったく異なる形式の住所になります:

서울특별시 강남구 역삼동 123-45
(Seoul, Gangnam-gu, Yeoksam-dong 123-45)

両方の住所がまったく同じ建物を指すことがあります。Naver MapsとKakaoMapは、どの場所でも両方の形式を並べて表示します。KakaoTalkのチャットでは、韓国人の顧客がどちらの形式でも住所を送る可能性があります—自分が慣れている形式か、公式書類に記載されている形式のどちらかです。ある人は「서울시 마포구 서교동 456-7」(地番)と書き、別の人は同じ地域を「서울시 마포구 와우산로 29길 45」(道路名)と書きます。

この二重体系の現実は、単一の住所形式を想定する抽出方法にとって問題を生みます。「道路名+建物番号」を探すように設定されたテンプレートベースのツールは、スクリーンショットで地番住所に遭遇したとき、それを認識できません。逆に、「동(洞)+번지(番地)」の番号パターンを抽出するようにプログラムされたツールは、道路名住所を見逃します。顧客はあなたのために住所形式を標準化してくれるわけではありません—彼らは自分が知っている方法で入力するだけです。視覚的なレイアウトだけでなく、意味構造によって両方の体系を理解する抽出方法が、このジレンマを解決する実用的な道です。

「韓国の二重住所問題:道路名住所と地番住所」というタイトルの2列比較。左の列「固定テンプレートツール」には×印が付き、空の住所フィールドが表示されている。右の列「意味抽出」には✓印が付き、道路名住所と地番住所の両方の形式で完全な住所が取得されている。

KakaoTalk 주문의 세 가지 일반적인 시나리오

고객이 주문을 한 방식과 KakaoPay를 통한 결제 여부에 따라 스크린샷의 시각적 구성이 달라집니다. 각 시나리오는 추출 시 약간 다른 고려 사항을 제시합니다.

시나리오 1: 일반 채팅 버블에 표시된 주소 및 주문 내역

가장 일반적인 시나리오: 고객이 주소와 주문 내역을 일반 텍스트 메시지로 채팅에 직접 입력합니다. 대화는 다음과 같을 수 있습니다:

고객: "네, 주문할게요. 김치찌개 3개, 제육볶음 2개 주세요."
(네, 주문할게요. 김치찌개 3개, 제육볶음 2개 주세요.)
고객: "주소는 경기도 성남시 분당구 정자동 178-3번지 203호입니다."
(주소는 경기도 성남시 분당구 정자동 178-3번지 203호입니다.)

주소는 지번주소 형식(정자동 178-3)으로 표시되며 동·호수(203호)가 포함됩니다. 주문 상품은 앞선 메시지에 별도로 나열됩니다. 두 정보 모두 일반 텍스트로 표시되며, 카드나 지도 공유가 없지만 레이블이 지정된 양식 필드가 아닌 대화형 한국어로 작성됩니다. 기존 OCR 도구는 "네, 주문할게요. 김치찌개 3개, 제육볶음 2개 주세요."를 주소 텍스트와 함께 하나의 연속된 문자열로 출력하므로, 주문 상품과 주소를 수동으로 분리해야 합니다.

열 기반 의미 추출을 사용하면 배송지와 주문 상품이라는 두 개의 열을 정의하고, 엔진은 동일한 채팅 텍스트 내에서 두 가지 서로 다른 정보를 찾고 있음을 인지한 상태로 스크린샷을 읽습니다. 한국어 주소 구조(도 → 시 → 구 → 지번 → 동·호수)를 인식하여 주소를 찾고, 숫자 수량 표시와 상품명 패턴을 통해 주문 상품을 식별하여 서로 섞지 않고 각각 올바른 열에 출력합니다.

시나리오 2: KakaoPay 결제 카드가 포함된 주소

KakaoTalk은 한국의 대표적인 디지털 지갑인 KakaoPay와 깊이 통합되어 있습니다. 고객이 채팅 내에서 KakaoPay로 결제하면 결제 확인 카드가 대화에 직접 표시됩니다. 이 카드는 흰색 또는 밝은 배경에 Kakao의 시그니처 노란색-녹색 악센트가 있는 뚜렷한 시각적 정체성을 가지며, 큰 굵은 텍스트로 표시된 총 결제 금액, 가맹점 이름, 거래 타임스탬프, 상태 배지("결제완료")를 보여줍니다.

이 카드는 텍스트 버블 사이에 위치한 독립적인 UI 요소입니다. 결제 금액과 거래 확인 정보를 포함하지만 배송지나 주문 상품은 포함하지 않습니다. 해당 정보는 카드 위나 아래의 텍스트 버블에 남아 있습니다. 이제 스크린샷에는 동일한 이미지 안에 일반 채팅 텍스트와 스타일이 적용된 결제 카드라는 두 가지 완전히 다른 시각적 형식이 포함됩니다.

시각적 AI 기반의 열 기반 추출 엔진은 전체 스크린샷을 복합 장면으로 해석합니다. 결제 카드를 "KakaoPay 확인"으로 인식하고, 정의한 경우 금액을 결제 금액 열로 추출하는 동시에 텍스트 버블에서 주소와 주문 정보를 별도로 읽습니다. 반면 기존 OCR은 카드 텍스트와 채팅 텍스트를 구분되지 않는 단일 스트림으로 읽어 카드 라벨의 "결제완료"가 출력에서 주소 바로 옆에 나타납니다.

이는 다른 플랫폼의 결제 스크린샷에 적용되는 것과 동일한 원리입니다. 결제 확인과 거래 내역은 이미지에서 시각적으로 구분되는 요소이며, 추출 방법은 모든 텍스트를 동등하게 읽는 것이 아니라 각 요소의 역할을 인식해야 합니다.

シナリオ3: KakaoMapの位置情報カードで共有された住所

KakaoTalkでは、ユーザーが現在地やピン留めした住所をKakaoMapを通じて共有できます。位置情報の共有ボタンをタップすると、チャットにプレビューカードが表示され、小さな地図のサムネイル、地図の下に住所のテキスト、ユーザーが名前付きの場所をピン留めした場合はその場所の名前が表示されます。このカードの住所テキストは、コンパクトなプレビュー内に小さなフォントで表示されます。また、地図インターフェースが表示するシステムに応じて、どちらの住所形式でも記載される可能性があります。

このシナリオは、より難しい抽出ケースです。住所は画像内に存在しますが、スクリーンショットの一部のみを占めるカード内に小さなフォントサイズで表示されます。地図カードのテキストがプレビューの境界で部分的に切り取られている場合、または地図カードが完全に読み込まれる前にスクリーンショットが撮影された場合、表示される住所が不完全になる可能性があります。さらに、KakaoMapはプレビューでデフォルトで道路名住所を表示するため、顧客が自分の住所を地番として知っている場合でも、共有されたカードには道路名の同等物が表示される可能性が高く、以前のメッセージで顧客が入力した形式と異なる場合があります。

抽出の目的では、住所テキストが表示されていて切り詰められていない限り、KakaoMapカードは読み取り可能です。テキストバブルの住所と同じように列を定義すれば、エンジンは画像内のどこに表示されていてもテキストを読み取ります。チャットバブル内でも地図カード上でも同様です。リスクは切り詰めです。スクリーンショットが地図カードの上半分のみを捉えている場合、下部の住所行が切り取られる可能性があります。カード全体を上から下まで含む全高のスクリーンショットであれば、この問題は回避されます。

セマンティック抽出が韓国語の住所を処理する仕組み

KakaoTalkの注文スクリーンショットを扱う鍵は、すべてのチャットスクリーンショット抽出シナリオに適用されるのと同じ原則です。どの住所形式を期待するか、画面上のどこを探すかをエンジンに指示する必要はありません。必要な列を定義するだけです。配送先(배송지)、注文商品(주문 상품)、数量(수량)、決済金額(결제 금액)を定義すると、AIは各スクリーンショットを完全な視覚シーンとして読み取り、各列のデータが何を意味し、KakaoTalkの会話で通常どこに表示されるかを理解して、データの位置を特定します。

「KakaoTalkスクリーンショットから列への入力」というタイトルの4ステップのフロー図。矢印で「列の定義」「スクリーンショット全体を読み取り」「道路名住所または地番住所」「列に値を入力」のノードが結ばれ、最後のノードには緑のチェックバッジが付いています。

これは、テンプレートベースや位置ベースの抽出とは根本的に異なります。従来のアプローチでは、「住所はチャットバブル内、金額は緑の決済カード内、商品は直前のメッセージ内」と指定する必要がありました。商品を先に送り住所を後で送る顧客、アイテムリストの下ではなく上に表示されるKakaoPayカードなど、少しでも逸脱すると、設定済みのレイアウトが崩れます。セマンティック抽出は、コンテンツを解釈するため、固定位置やページレイアウトに依存しません。座標ではなく意味を解釈するのです。

韓国の住所に特化して言うと、エンジンは道路名形式(「서울시 강남구 테헤란로 123」)と地番形式(「서울시 강남구 역삼동 123-45」)の両方を住所として認識できます。どちらもモデルが学習した内部構造パターン(行政区域の階層+数字識別子)に従っているためです。どちらが来るかを事前に指定する必要はありません。顧客が使った形式をそのまま読み取り、結果を「配送先住所」列に配置します。

このブログでは注文住所のユースケースを扱います。KakaoTalkのスクリーンショットに支払いデータ(KakaoPayカードの송금액、계좌번호、送金者メタデータ)も含まれている場合、KakaoTalkスクリーンショット抽出ツールは同じパスで、同じ列ベースのアプローチを使用してこれらのフィールドを読み取ります。

同じ列ベースのアプローチは、顧客が他のメッセージングアプリで注文する場合にも適用されます。抽出はプラットフォームではなく意味によって読み取ります。KakaoTalkから韓国の住所を抽出する方法は、WhatsApp Business注文チャット、iMessage、LINE、WeChatでもまったく同じように機能します。列を一度定義すれば、AIは顧客が入力した住所形式を読み取ります。

抽出できるものと限界

一般的なKakaoTalk注文スクリーンショットでは、適切に定義された列セットにより、以下のデータを確実に取得できます。

列出力例信頼性
配送先住所(배송지)경기도 성남시 분당구 정자동 178-3번지 203호高 — チャットテキストに表示されている場合
注文商品(주문 상품)김치찌개 3개, 제육볶음 2개高 — 数量付きの商品名は構造的に特徴的
数量(수량)3, 2高 — 商品名の隣の数字
支払金額(결제 금액)₩28,500高 — KakaoPayカードがスクリーンショットに表示されている場合
顧客名(고객명)チャットヘッダーまたは送信者ラベルから中 — スクリーンショットのフレームに何が含まれるかによる

明確に述べるべき限界があります。住所がKakaoMapの位置情報共有カード内にのみ表示され、カードのテキストがスクリーンショットで切り詰められている場合、部分的な住所しか取得できません。顧客の注文詳細が複数の連続メッセージに分散しており、スクリーンショットが最後の3つのバブルしか捉えていない場合、完全な注文リストが表示されない可能性があります。顧客が住所と注文情報を別々のメッセージで送信し、その間に無関係なチャットがある場合、構造的に曖昧な場合は同じ列にフィラーテキストが含まれる可能性があります。

これらは視覚的なキャプチャの限界であり、抽出の限界ではありません。すべての解決策は同じです。関連するすべてのメッセージが含まれるようにスクリーンショットを十分に広く撮り、実際に必要なデータに一致する列を定義してください。AIは画像に含まれるものと連携します。欠落したデータを捏造することはありません。

手入力をやめよう — AIに読み取らせるだけ
画像やPDFをアップロード — 10秒で構造化データに
今すぐ試す →

よくある質問

同じスクリーンショットから韓国語の住所と英語のローマ字表記の両方を抽出できますか?

抽出エンジンは画像に表示されているテキストをそのまま読み取ります。顧客が住所を韓国語(ハングル)でのみ入力した場合、エンジンはその内容を抽出します。ローマ字表記を生成することはありません。それは翻訳ステップであり、抽出ではないからです。英語の出力が必要な場合は、顧客が住所を英語で入力するか、抽出した韓国語の住所を別途ローマ字化する後処理ステップを追加する必要があります。

住所にアパートの建物番号(동)と部屋番号(호)が含まれている場合はどうなりますか?

韓国のアパート住所は通常「XX동 XX호」(建物番号と部屋番号)で終わります。抽出エンジンはこれらを完全な住所文字列の一部として読み取ります。これらを別々の列にしたい場合は、「Building (동)」や「Unit (호)」などの個別の列を定義してください。エンジンは동と호を構造的な住所接尾辞として認識し、それに応じて分割できます。「102동 304호」のような住所は、Buildingの下に「102」、Unitの下に「304」と出力されます。

同じバッチ実行でKakaoPayの支払いデータと配送先住所を抽出できますか?

はい。同じ列セットに「Payment Amount (결제 금액)」と「Shipping Address (배송지)」の両方の列を定義してください。エンジンはスクリーンショットを一度処理し、両方の列に入力します。支払い金額はKakaoPayカードから、住所はチャットバブルのテキストから取得します。これは両方の要素を含む単一のスクリーンショットでも、支払いカードを含むものと含まないものが混在するバッチでも機能します。KakaoPayカードが表示されていないスクリーンショットでは、支払い列は空白になります。

KakaoTalkのダークモードとライトモードのスクリーンショットはどう扱えばよいですか?

抽出エンジンはテキスト内容を読み取り、背景色は読み取りません。ダークモードとライトモードはどちらも同じフォントファミリー、メッセージレイアウト、チャットバブルの配置を使用しており、背景とテキストの色が反転するだけです。テキストが読みやすい限り(背景に対して高いコントラスト)、エンジンはどちらのビジュアルテーマからも同じ内容を抽出します。低照度条件でテキストと背景のコントラストが低下したスクリーンショットは、テーマに関係なく読み取りが難しくなる場合があります。

住所が韓国語と漢字(한자)の混在で書かれている場合はどうなりますか?

一部の古い韓国語の住所や公式の建物名には、ハングルに加えて漢字が含まれています。特に地番住所や歴史的な地区名で見られます。抽出エンジンは事前に読み込まれた辞書ではなく、視覚認識によって文字を読み取ります。画面上に表示されている文字をそのまま出力します。「종로구 慶雲洞 89-1」のような混在表記の住所は、スクリーンショットに表示されている通りに漢字を含めて抽出されます。ハングルのみの出力が必要な場合は、後処理が必要です。

KakaoTalkの注文スクリーンショットは、フォームでも請求書でも構造化ドキュメントでもありません。それは会話です — 住所が韓国の併存する2つの住所体系のどちらかで書かれている可能性があり、注文詳細は会話調の韓国語に混ざり、支払い確認はまったく異なる視覚カードに表示されます。ここで機能する抽出方法は、あらゆるプラットフォームのチャットスクリーンショットで機能する方法と同じです:必要なフィールドを定義し、AIが会話の視覚的文脈の中で各データの意味を理解して配置させます。

📮 contact email: [email protected]