Challenge #56: Parsing and Counting Hashtags ~ハッシュタグのパースとカウント~ – Alteryx Weekly Challenge
こんにちは。Alteryxサポートエンジニアとして勉強中のスズです。
当エントリは『Alteryx Weekly Challenge:Intermediate Level Advent Calendar 2018』の15日目です。
- Alteryx Weekly Challenge:Intermediate Level Advent Calendar 2018 - Qiita
- Alteryx Weekly Challenge:Intermediate Level Advent Calendar 2018 | シリーズ | Developers.IO
『Alteryx Weekly Challenge:Intermediate Level Advent Calendar 2018』では、Alteryx Communityで公開されているWeekly ChallengeのIntermediate Levelにひたすら1人で挑戦していきます。
今回はハッシュタグのパースとカウントに挑戦します。
動作環境
当エントリの執筆には、以下の環境を利用しています。
- Windows 10 Pro
- Alteryx Designer 2018.4.4.54346 英語版
Challenge #56: Parsing and Counting Hashtags
お題
今回挑戦するお題はこちら。
「Input」側のデータはこちら。「text」列にハッシュタグがあります。
「Output」側のデータはこちら。「id_str」ごとにハッシュタグの数が出力されています。
解答の概要
今回作成するワーフクローは以下の通りです。
- ハッシュタグとハッシュタグがあるIDの抽出
- 各ハッシュタグと各IDの数の出力
- 合計の出力
ハッシュタグとハッシュタグがあるIDの抽出
RegExツール(Parse -> RegEx)を使用して、「text」列からハッシュタグを抽出します。Regular Expression には (#[a-z|0-9]+)
を、 Output Method には Tokenize
を設定しています。
結果を確認すると、3列に分かれてハッシュタグが出力されています。
Transposeツール(Transform -> Transpose)を使用して、3列に分かれて出力されたハッシュタグを1列にまとめます。
Formulaツール(Preparation -> Formula)を使用して、「id_str」を識別するための列を作成します。新しく「Field」列をV_WString型で作成します。
式には以下の通り設定しています。
"id_str" + ToString([id_str])
Filterツール(Preparation -> Filter)を使用して、ハッシュタグがない(Null)データを除外します。
ハッシュタグとハッシュタグがある「id_str」を抽出できました。
各ハッシュタグと各IDの数の出力
Cross Tabツール(Transform -> Cross Tab)を使用して、ハッシュタグをキーに設定してデータを横持ちで出力します。
以下の通り設定しています。
- Group Data by these Values: Value
- New Column Headers: Field
- Value for New Columns: id_str
- Method for Aggregating Values: Count (without Nulls)
データを確認すると、「Value」列にハッシュタグ、「Count_id_str」の各列にはハッシュタグがある数が出力されています。
Data Cleansingツール(Preparation -> Data Cleansing)の Replace with 0 (Numeric Fields) 使用して、Nullを0に置き換えます。
Selectツール(Preparation -> Select)を使用して、列名を修正します。列名は「Output」側にある答えのデータに合わせています。
「id_str」ごとに各ハッシュタグの数を出力できました。
合計の出力
Transposeツールを追加し、Selectツールと接続します。データを縦持ちに変換します。
Summarizeツール(Transform -> Summarize)を使用して、ハッシュタグごとの合計を出力します。合計が出力される列名は「Total」に編集しています。
Joinツール(Join -> Join)を追加します。Selectツールからの出力とSummarizeツールからの出力をJoinツールの入力に接続し、「hashtags」列を使用してデータを結合します。また、不要な列は削除しています。
結果を確認して完成です。
最後に
今回はWeekly ChallengeのChallenge #56: Parsing and Counting Hashtagsに挑戦しました。
明日もお楽しみに!
サンプルワークフローのご案内
クラスメソッドでご契約のユーザー様向けに、当ブログでご紹介したワークフローを専用ポータルにて公開しております。当エントリでご紹介したワークフローも公開予定ですので、ご参考にしていただきますと幸いです。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。