WhatsAppの吹き出しは銀行フォームではない
それでも口座番号と金額を抽出する
一見すると、WhatsAppのスクリーンショットから銀行情報を取り出すのは不可能に思えるかもしれません。フォームも、テーブルも、ラベル付きフィールドもありません。ただ、"Bank: Chase, Account: 123456789, Amount: $500"のようなチャットの吹き出しが一行であるだけです。その吹き出しを見つめながら、口座番号と金額を手入力せずに分離できるのか疑問に思ったことがある人なら、その直感は理解できるでしょう。そのメッセージは人間が読むためのものであり、ソフトウェアが解析するためのものではないからです。しかし、ほとんどの人が実際に必要とする2つの数字 — 口座番号と振込金額 — は、そのスクリーンショットの中にあります。そして、数字を一桁も打ち直すことなく取り出すことができます。

重要なポイント
- 銀行情報がWhatsAppに届いたらスクリーンショットを撮る — そして毎回、口座番号と金額をスプレッドシートに打ち直している。
- OCRは両方を単なる数字としてしか見ない — フォームレイアウトでラベル付けされていない同じチャット吹き出し内では、「123456789」と「$500」を区別できない。
- ビジュアルAIは銀行用語を読み取る — 「Account」ラベルで口座番号を、「$」記号で金額を分離し、無制限の送信者フォーマットを一度に処理する。
チャットの吹き出しが解析できないように見える理由
WhatsAppで銀行口座情報が送信されると、メッセージには通常、銀行名、口座番号、場合によってはルーティング番号やソートコード、送金金額という3〜4つの情報が1つのテキストブロックに含まれています。1つのメッセージとして届くことも、2〜3つの吹き出しに分かれて届くこともありますが、核心的な問題は同じです — データに構造がないということです。「この数字は口座番号」「あの数字は金額」と示す列はありません。両方とも同じ文の中にある単なる数字にすぎません。
自然な反応はスクリーンショットを撮ることです — 送信された内容の記録が欲しいからです — そして、実際に必要な場所(スプレッドシート、請求書、会計アプリ、支払い確認書など)に数字を手入力します。この手作業のステップでエラーが発生します。特に、1日に複数のクライアントの支払いを処理し、それぞれ異なる口座番号と金額が異なるチャットにスクロールして表示されている場合はなおさらです。
この状況はよくあります。フリーランサーが新規クライアントから銀行口座情報を受け取り、記録用にチャットをスクリーンショットします。小規模ビジネスのオーナーは、請求書の支払い用にサプライヤーの口座情報が書かれたWhatsAppメッセージを受け取ります。ルームメイトが家賃を分割するために自分の銀行口座を送ってきます。どのケースでも、情報は目に見えています — 目で読むことはできます — しかし、それを利用可能な形式にするには、手入力するか、情報を自動的に分離できるツールを見つける必要があります。
従来のOCRが実際に読み取るもの(そしてなぜ不十分なのか)

従来の光学文字認識(OCR)はWhatsAppのスクリーンショットを読み取り、見つけられるすべての文字を抽出します。出力はテキストの文字列です — 「銀行:Chase、口座:123456789、金額:$500」— これは人間が画像を見て読むものとまったく同じです。問題は、OCRがこれらの単語の意味を理解しないことです。銀行、Chase、口座、123456789、金額、$500をフラットなトークンの並びとして見ます。123456789という数字は口座番号かもしれないし、電話番号かもしれないし、取引IDかもしれません。$500は送金金額かもしれないし、最低残高かもしれません。OCRにとって、それらは意味的な役割のない単なる文字の集まりです。
これは位置ベース抽出の根本的な限界です:数字の隣にある単語の意味を知らなければ、ツールはどの数字が何であるかを教えてくれません。固定レイアウトのないチャットの吹き出し — 送信者が「口座番号:123456789」や「A/C 123456789」、あるいはラベルなしで単に「123456789」と書く場合 — は、パターンや位置に依存するシステムをすべて無効にします。
このギャップは認識精度の問題ではありません。最新のOCRは、クリーンなWhatsAppスクリーンショット内の文字をほぼ完璧な精度で読み取ることができます — テキストはデジタルで、照明も良好で、歪みもありません。ギャップは、それらの文字が文脈の中で何を意味するかを理解することについてです。
視覚AIが口座番号と金額を区別できる理由
従来のOCRと視覚言語モデルの違いは、文字をどれだけ正確に読むかではなく、システムが単語の意味を理解できるかどうかです。視覚AIはWhatsAppのスクリーンショットを読み取り、文字認識で止まりません。画像を処理し、メッセージの意味構造を識別します。Accountを口座番号を示すラベル、Amountを金額を示すラベル、Bankを金融機関名のラベルとして認識します。
これはカスタム列抽出の核となる考え方です。「口座番号」と「金額」という出力列を定義すると、AIはそれらのラベルの意味を理解して、スクリーンショット上のどこでも一致する値を見つけ出します。口座番号が特定の位置、特定のフォント、特定の形式である必要はありません。「Account」(または「A/C」「Account No.」)という単語の後に続く番号と、「Amount」(または「$」「Total」)という単語の後に続く番号を見つけます。正式な領収書ではない支払いスクリーンショットからデータを抽出するのと同じ原理が、正式な文書ですらないWhatsAppのチャットバブルにも適用されます。
抽出はチャットバブルの視覚的なレイアウトに依存しません。AIが銀行取引指示の言語を理解することに依存します。送信者が「Account」「Amount」などのラベルや類似の識別子を含めていれば、システムは数字を正しく分離できます。
これが、メッセージの形式が異なる場合(銀行名が最初にある、金額が別の行にある、口座番号が文の途中に埋もれている)でも機能する理由です。視覚AIはメッセージ全体を一貫したブロックとして処理し、各数字をそれを説明するラベルに割り当てます。
WhatsAppのスクリーンショットから口座番号と金額を抽出する方法

このワークフローは簡単で、送信者やメッセージ形式ごとの設定は一切不要です。実際の手順は以下の通りです。
アップロードから構造化された出力までの全プロセスは、スクリーンショット1枚あたり約5〜10秒かかります。フリーランサーが10件のクライアントからの支払い確認を1つのバッチで処理する場合、手動で各口座番号と金額を入力し、確認し、エントリをフォーマットするのに10〜15分かかっていたのが、2分未満で完了します。
このシナリオが実際に発生する3つのケース
「WhatsAppで銀行口座情報を送る」というシナリオは仮定の話ではなく、実際のビジネス現場で定期的に発生します。それぞれ情報のパターンが少しずつ異なります。
フリーランサーがクライアントから支払いを受け取る場合。フリーランスのデザイナー、ライター、コンサルタントがクライアントに請求書を送ると、クライアントは「承知しました。送金用の銀行口座情報はこちらです」というメッセージとともに口座情報を返信します。フリーランサーは支払い記録としてチャットをスクリーンショットし、後でその情報を経理ファイルに入力する必要があります。1ヶ月のクライアント業務で、異なるクライアントからのスクリーンショットが12件以上になることもあり、それぞれ口座番号やメッセージ形式が異なります。
WhatsApp Businessを利用する中小企業。インド、ブラジル、メキシコ、ナイジェリア、東南アジアなど、WhatsAppが主要なビジネスコミュニケーションツールである市場では、サプライヤーや顧客が注文確認や請求書の決済の一環として、チャットで銀行口座情報を共有するのが一般的です。小売業者は、ある朝だけで5社の異なるサプライヤーから口座情報を受け取り、それぞれのWhatsAppメッセージを支払い処理用にスクリーンショットすることになります。
個人間の送金や費用の共有。頻度は低いものの、これもよくあるケースです。友人や家族が家賃の支払い、グループ旅行の精算、贈り物のために銀行口座を送ってきます。スクリーンショットは記録としてスマホのギャラリーに保存され、その番号を追跡用スプレッドシートや経費記録に入力する必要があります。
これら3つのケースすべてに共通する核心的なニーズは、スクリーンショットに表示されている情報を、できるだけ手作業を減らして構造化データに変換することです。単一のスクリーンショットではなく、繰り返し発生するスクリーンショットの量こそが、抽出アプローチの価値を高めているのです。
できることとできないこと
AIはWhatsAppメッセージに記載された口座番号と金額を抽出できますが、それらの情報が正しいかどうか、また銀行口座が送信者のものかどうかを検証することはできません。スクリーンショットは送信された内容の記録であり、検証済みの金融文書ではありません。正式な支払いの証明(銀行明細書、取引領収書、正式な請求書)が必要な場合は、WhatsAppのスクリーンショットだけではそれらに代わるものにはなりません。

また、抽出精度が低くなる形式のケースもあります。送信者が口座番号と金額をラベルなしで、文脈のない「123456789 $500」のように書いた場合、AIが利用できる意味情報が少なくなります。実際には、ほとんどの人が「Account」や「Amount」、または「$」記号を少なくとも含めますが、完全にラベルのない数字は、間違った数字が間違った列に入る可能性を高めます。このツールは、メッセージに「A/C」や「$」のような最小限のものでも、どの数字がどれかをシステムに示す識別ラベルが含まれている場合に最もよく機能します。
正直な評価:WhatsAppのスクリーンショットからは、チャットに記載された口座番号と送金金額を確実に取得できます。銀行認定の取引記録が得られるわけではありません。記録保持や追跡の目的には、それで十分なことがよくあります。監査や法的な証明には、銀行からの公式明細書が必要です。
よくある質問
1枚のスクリーンショットで複数の銀行口座を処理できますか?
WhatsAppメッセージに複数の口座番号が含まれている場合(例:「私の普通預金は111111、当座預金は222222」)、AIは両方を抽出します。出力テーブルには特定されたすべての口座番号が含まれ、データの整理方法に応じて手動で別々の行や列に分割する必要があるかもしれません。最良の結果を得るには、各メッセージに1つの口座の詳細が含まれるスクリーンショットを処理してください。
IBANやIFSCなどの国際的な銀行番号でも機能しますか?
はい。AIはラベルの文脈と形式パターンによって口座識別子を認識します。IBAN(2文字の国コードで始まり、最大34文字)、IFSCコード(11文字の英数字)、ルーティング番号(9桁)、ソートコード(6桁、xx-xx-xx形式)はすべて同じ意味抽出で処理されます。チャットバブルに「IBAN」「IFSC」「Routing」「Sort Code」というラベルがあれば、AIはそれらを正しい列に配置します。
異なる人からのWhatsAppスクリーンショットを一度にまとめて処理できますか?
はい。すべてのスクリーンショットを1つのバッチにアップロードし、同じ列セット(銀行名、口座番号、金額)を定義してください。AIは各スクリーンショットを個別に抽出し、結果を1つのテーブルに統合します。出力はスクリーンショットごとに1行となり、各行には送信者やメッセージの形式に関係なく、その特定のチャットメッセージの詳細が含まれます。
同じチャット内で口座番号と金額が異なるWhatsAppメッセージにある場合はどうなりますか?
1つのスクリーンショットに複数のバブルをキャプチャすると、AIは表示されているチャット領域全体を読み取り、近接性と文脈によって関連情報を結び付けます。口座番号が1つのメッセージにあり、金額が次のメッセージにある場合、両方が同じフレームに表示されていれば抽出されます。複数のスクリーンショットにまたがるメッセージの場合は、各スクリーンショットを個別に処理し、行を手動で統合するか、共通の参照(連絡先名など)を使用して位置を合わせてください。
銀行詳細の言語は重要ですか?
AIはメッセージ内のラベルを処理します。「Account」「Amount」「Bank」などの英語ラベルが最も一般的ですが、システムはメッセージの構造を認識してテキストを抽出します。識別語に続く数字、数字の前の通貨記号など、特定の言語に関係なく処理されます。スペイン語(「Cuenta」「Monto」)、ポルトガル語(「Conta」「Valor」)、ヒンディー語などのメッセージも、バブル内にラベル+値の視覚的パターンがあれば同じように処理されます。
次に銀行詳細がWhatsAppバブルで届いても、そこに留めておく必要はありません。
スクリーンショットをアップロードし、必要な列に名前を付け、AIに口座番号と金額をスプレッドシートの行に抽出させましょう。手作業で数字を1桁もコピーする必要はありません。
WhatsAppスクリーンショットで試す