
Challenge #56: Parsing and Counting Hashtags ~ハッシュタグのパースとカウント~ – Alteryx Weekly Challenge
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは。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日間の無料トライアルも実施中ですので、お気軽にご相談ください。











