

洋書の表紙をBedrock Visionに読ませたら著者名が印字と違うカタカナ表記で返ってきた
この記事は、構成と文章の整理にAIを使っています。
あくまで読みやすくするための補助で、内容そのものをAIにすべて任せて書いているわけではありませんが、ところどころ相談しながら整えています。
何が起きたか
積んでた技術書の表紙をスマホで撮って、Bedrock(Claude)のVision機能でタイトルと著者名を文字起こしさせる小さいスクリプトを試してた。
その中の一冊、帯に「〇〇・△△」と中黒区切りで印字されてる外国人著者名があったんだけど、返ってきた結果は中黒の位置が違う表記になってた。画像には確かにその通り印字されてるのに、モデルが一般的によく見る区切り方に寄せて返してきた形。
なぜこうなるか
これはBedrockに限らずVision LLM全般の話だと思うけど、画素を一個ずつなぞる文字認識(伝統的なOCR)とは仕組みが違う。画像を見た上で「それらしい文字列」を生成する言語モデルの挙動なので、学習データの中で頻度の高い表記に、レアな表記が引っ張られて上書きされることがある。オートコレクトが勝手に発動してるようなイメージ。
外国人著者のカタカナ表記だと、出版社や訳者によって表記ゆれが結構ある分野なので、この手の補正が起きやすいんだと思う。同じ理屈で、以下みたいなパターンも起きそう。
- 姓名の中黒区切り位置の違い
- 長音符の有無(例:「〜ー」を付けるか付けないか)
- 促音・拗音の表記ゆれ
プロンプトで直せるか
「画像に印字されている文字を一字一句そのまま書き写せ、一般的な表記に正規化するな」と強めに指示すると、素の状態よりは改善する。実際、上記の指示を追加したら別の本では印字通りの表記で返ってきた。
ただし帯の文字が小さかったりデザイン的に装飾されたフォントだと、効果が薄い。文字がはっきり読み取れないほど、モデルは自分の知ってる単語の事前分布に頼らざるを得なくて、プロンプトで「そのまま書け」と言われても、そもそも「そのまま」が読み取れてなければ意味がない。プロンプトだけで100%正確にするのは無理そう。
今のところの結論
書誌情報みたいに固有名詞の正確性が大事な用途だと、Vision LLM単体の出力をそのまま信用するのは危ない。プロンプトで改善はするけど、最終的には目視でのダブルチェックが要りそう。奥付やISBNから書誌データベースに突き合わせる方が確実かもしれない(未検証)。