はじめに
SNSのスクショ画像からアカウント名やハッシュタグ、短縮リンクなどを取り出すWebアプリを作ってみました。
その中で、OCRの結果から要素を取り出すための正規表現をメモ。
テスト用のテキストを用意
テスト用に以下のTwitterスクショ画像からCloud Vision APIで文字列を取得してみる。
↓
. ホーム
合 g
koolweb37 | Web制作 @koolweb37・2h v
毎年こちらに、初詣2(Ca")
#初詣
#あけましておめでとう
#今年もよろしくね ift.tt/2A3kga2
たMii単理
9
u ゆーくりっどさんがリツイート
スケキヨ @sukekiyo56・18h
描き初め、柴犬パワードです。ことよろです
HAPPY
NEW
YEAR
さすがGoogle先生。
ただ、画像によっては「@」「#」などの記号やURLが誤認識する印象。歯がゆい❗
要素の抽出
const text = `
. ホーム
合 g
koolweb37 | Web制作 @koolweb37・2h v
毎年こちらに、初詣2(Ca")
#初詣
#あけましておめでとう
#今年もよろしくね ift.tt/2A3kga2
たMii単理
9
u ゆーくりっどさんがリツイート
スケキヨ @sukekiyo56・18h
描き初め、柴犬パワードです。ことよろです
HAPPY
NEW
YEAR
`;
// アカウント抽出
const accounts = text.match(/[@@][A-Za-z0-9._-]+/gm);
console.log(accounts);
// ハッシュタグ抽出
const tags = text.match(/[##][A-Za-zA-Za-z一-鿆0-90-9ぁ-ヶヲ-゚ー._-]+/gm);
console.log(tags);
// URL抽出
const urls = text.match(/([a-z0-9]|\.)+\.(com|net|jp|org|io|info|me|ma|gl|ly|gd|cc|nu|tt).*/gm);
console.log(urls);
出力
[ '@koolweb37', '@sukekiyo56' ]
[ '#初詣', '#あけましておめでとう', '#今年もよろしくね' ]
[ 'ift.tt/2A3kga2' ]