Natural Language APIを使用して、ツイートを数値化し、それをBigQuery にアップして分析します。 記事は3つに分けており、この記事は2番目のBigQuery にデータをアップして成形する部分です。
目次
目的と目標
本分析の目的は「潜在ニーズの表出」と「SNS(twitter)からのサイトへの流入」であり、 本分析の目標は「この単語を使うとインプレッション率(サイトURLクリック率)が上がりますよ!」と言えるようになることです。 手順は以下の通りです。- GASを使用して、スプレッドシート経由でツイートを自然言語処理
- 数値化されたツイートをBigQueryにアップ
- データポータルで可視化、BQMLで分析
BigQueryにデータをアップ
データをBigQueryにアップする際にいくつかの問題点がありました。今回はどの問題点の解決法補を載せておきます。- ・BigQueryにスプシ形式をアップするやり方
- ・ツイートの数値化データとアナリティクスデータを結合しながらテーブルを作成
- ・フィールド名がバグってしまう。
- ・時間データが文字列型(String型)で入ってしまう。
BigQueryにスプシ形式をアップするにあたって
スキーマの自動検出 チェックを入れておくと、自動的にスキーマ(データ形式)を検出してくれます。
引用された改行
今回のデータの場合は「引用された改行」にチェックを入れないとアップすることができませんでした。もしエラーが発生するようであれば試してみてください。
ツイートの数値化データとアナリティクスデータを結合しながらテーブルを作成
「Natural Language API」の分析結果のnameごとにツイート本文をつけていたので、今回はツイート本文を使いテーブルを結合します。SELECT
*
FROM
`テーブル名A`
JOIN
`テーブル名A`
ON
テーブル名Aのツイート本文のカラム名 = テーブル名Bのツイート本文のカラム名
フィールド名がバグってしまう
BigQueryではカラム名に日本語が入っていると日本語が「_」に変換されてしまい、データの使い勝手が悪くなってしまいます。 解決方法--データセットIDとテーブルIDを指定する
ALTER TABLE `<datasetID>.<tableID>`
--<変更したいフィールド名>と<変更した後のフィールド名の名前を入力>
RENAME COLUMN <fieldNameA> TO <fieldNameB>,
時間データが文字列型(String型)で入ってしまう
今回渡されたTwitterアナリティクスデータはスプシ形式でした。BigQueryにアップした際に「2022-01-01 00:00 +0000」がString型で入ってしまいっました。 解決方法SELECT
カラム名
,timestamp(concat(trim(rtrim(times,'+0000')),':00')) as DATETIME1
FROM
`テーブル名`

