Alteryx Inspire 2023のセッションの内容を画像からテキストに変換してみた

画像からテキスト変換
2023.05.21

こんにちは、スズです。

現地時間の2023年5月22日(月)~5月25日(木)に、アメリカのラスベガスにてAlteryx Inspire 2023が開催されます。

Alteryx Inspire 2023では様々なセッションが用意されており、中にはAlteryx Intelligence Suiteを扱うセッションも用意されています。Alteryx Inteligence Suiteでは、Alteryx Designerで画像を読み込み、テキストに変換することができます。Alteryx Inspire 2023のセッションの内容を画像からテキストに変換してみましたので、本記事でご紹介します。

セッションの内容を画像からテキストに変換してみた

ワークフローの全体像

作成したワークフローの全体は以下のようになっています。こちらのワークフローを、「セッションの内容の取得」と「テキストの整形」に分けてご紹介していきます。

セッションの内容の取得

以下の画像の赤枠部分にて、「セッションの内容の取得」を行います。

Alteryx Inspire 2023のWebサイトにアクセスし、以下のようにセッションの内容のスクリーンショットを取得します。今回は以下のようなスクリーンショットを3つ取得しました。

取得した画像をAlteryx Designerの画像入力ツールを使って読み込みます。画像入力ツールでは、読み込みたい画像が保存されているフォルダを、参照先として指定します。

読み込んだ画像をテキストに変換するには、テキスト変換ツールを使用します。画像の列と、テキストがどの言語で書かれているかを指定します。

テキストに変換した結果は以下のようになっていました。パッと見たところ「SCHEDULED」や「ADD TO SCHEDULE」はテキストに変換されていませんが、他はテキストに変換されているようです。

これでセッションの内容をテキストに変換できましたが、全てのテキストがセルに含まれている状態となっています。テキスト化に成功したもののこのままではセッションの内容が分かりづらいものになってしまいます。そこで、続けてテキストの内容を整形しセッションのタイトルや概要などに分ける処理を行っていきます。

テキストの整形

以下の画像の赤枠部分にて、「テキストの整形」を行います。

レコードIDツールでIDを付与し、セレクトツールでRecordID列とtext列以外の列を削除します。そのあとで、列分割ツールを使って、text列を改行で分割し、行に出力します。区切り文字に\nを指定することで、改行があった際に行を分割して出力することができます。

列分割ツールの出力結果は以下のようになっています。

セッションのタイトルや概要などを列として整形していくため、フォーミュラツールと複数行フォーミュラツールを使ってテキストの内容を分類していきます。

フォーミュラツールでは、新しくname列を作成し、以下の式で各値を分類していきます。

IF Contains(, "[") THEN "Title"
ELSEIF Contains(, "Track:") THEN "Track"
ELSEIF Contains(, "Level:") THEN "Level"
ELSEIF Contains(, "PDT") THEN "Date"
ELSE Null() ENDIF

フォーミュラツールの処理だけでは全ての値を分類できていませんので、複数行フォーミュラツールを使って不足分を補います。以下の式で残りの値を分類しました。

IF !ISNULL([name]) THEN [name]
ELSEIF [Row-2:name] = "Track" THEN "Others"
ELSE "Overview"
ENDIF

分類した結果、データは以下のようになっています。text列の値が空欄の場合に「Overview」として分類されていますが、これはこの後の処理で不要な行として削除します。

text列の値が空欄になっている行をフィルターツールでさくっと削除したいところですが、今の状態ではフィルターツールが空文字を認識しなかったため、いったんクレンジングツールの処理をはさみます。クレンジングツールでtext列に対して「不要な文字の削除」にある「先頭と末尾の空白」の処理を行った後、フィルターツールでテキストが空ではない行のみ残します。

この時点で、データは以下のようになっています。「Title」や「Overview」などを列として変換していきたいですが、1つのセッションに対して「Date」は複数の値があるようです。「Date」に関しては値を1つにまとめるのではなく、それぞれの値を維持し用と思います。そこで、フィルターツールを使って、「Date」とそれ以外の行を分けていきます。

「Date」が含まれないデータは、クロスタブツールを使ってデータを変換していきます。RecordID列でグループ化し、name列をヘッダー、text列を値にし、連結で集計を行います。

以下のようにデータが変換されました。

結合ツールを使って、2つに分かれたデータをRecordID列で結合します。また、最後の仕上げとして、不要な列の削除や列名の調整、順序の修正を行い、以下のデータで完成となります。

最後に

Alteryx Inteligence Suiteを使って、Alteryx Inspire 2023のセッションの内容を画像からテキストに変換してみました。