記事の対象者と解消できるお悩み
【対象者】
初中級データアナリスト
【興味関心】
- 最新トレンドの把握
- 世の中の動向分析
- 情報収集の効率化
- ビジネスチャンス発見
- リスク予測
【解消できるお悩み】
- 最新のトレンド情報を知りたいけど、情報収集に時間がかかる…
- 膨大なニュース記事を効率的に分析する方法が知りたい
- 世の中の動きをいち早く察知して、ビジネスに活かしたい
- 将来のリスクを予測し、対策を立てたい
記事作成者
【人物】株式会社志庵 代表取締役 佐藤 光 起業6年目
【経歴】株式会社光通信➜光通信同期と起業➜データアナリスト転職➜SaaSで2度目起業
【会社実績】
SaaS 資金調達無しARR2億円
SaaS GMV200億円
【内容】自社AaaSであるStruccle、webスクレイピング、BigQueryに関する記事を作成
各種用語
- ARR(Annual Recurring Revenue)
- サブスクリプションサービスの年間売上※当社はSaaS売上
- Struccle(ストラクル)
- 株式会社志庵が独自開発しているAaaS
- AaaS(アース)
- Data Analytics as a Serviceの意
- SaaS(サース)
- Software as a Serviceの意
- GoogleCloudPlatform
- Googleが提供するクラウドプラットフォーム。この中に様々なサービスが存在する。
- GCP(ジーシーピー)
- GoogleCloudPlatformの略
- BigQuery(ビッグクエリ)
- 上記GCPの中に含まれるデータ分析基盤サービス
- SQL(エスキューエル)
- データベースを操作するプログラミング言語
- クエリ
- SQLで記述した命令文
- クエリ例)
- SQL構文のクエリ⬇
SELECT item_name, price FROM sales_table where price >= 1000;
- 上記クエリ(命令文)の意味としては「売上テーブル(sales_table)から価格(price)が1000円以上の商品名(item_name)と価格(price)を抽出する」
- SQL構文のクエリ⬇
- ペタバイト
- データの単位 ペタバイト=1000テラバイト=約100兆行のデータ
概要
世界で何が起こっているのか、どんな話題が注目されているのかを知ることは、ビジネスパーソンにとって非常に重要です。最新のニュース記事を分析することで、社会の動きや人々の関心の変化を捉え、ビジネスチャンスやリスクをいち早く察知することができます。しかし、膨大な量のニュース記事を人力で分析するのは時間と労力がかかり、現実的ではありません。
そこで今回は、Google Cloudのデータウェアハウス「BigQuery」と、BBCニュースの公開データを使って、注目トピックを分析してみましょう。BigQueryの強力な分析機能と自然言語処理技術を活用すれば、膨大なニュース記事から効率的にトレンドを抽出することができます。この記事では、BigQueryを使ったテキストデータの分析方法と、そこから得られるインサイトを紹介します。データ分析初心者の方でも、BigQueryを使えば、複雑な分析に挑戦し、世界で話題になっているトピックを把握することができるでしょう。
目次
- BigQueryでニュースデータ分析を行うメリット
- 分析に使用するBigQueryのデータセット
- BigQueryでニュース記事を分析する手順
- BigQueryを使ったニュースデータ分析例
- FAQ:BigQueryに関するよくある質問
- まとめ:BigQueryでニュース分析を行い、時代の変化を先読みしよう!
1. BigQueryでニュースデータ分析を行うメリット
BigQueryは、ニュースデータ分析に最適なツールです。その理由は、以下の様なメリットがあるからです。
- 大規模データの高速処理: 膨大なニュース記事を高速に分析できるため、トレンドをリアルタイムに把握できます。
- 様々なデータソースとの連携: 公開データ、自社データ、外部データなど、様々なデータソースと連携できるため、ニュースデータと他のデータを組み合わせて分析できます。
- 豊富な分析機能: SQL、機械学習、自然言語処理など、高度な分析機能を利用できるため、複雑な分析にも対応できます。
- コストパフォーマンスの高さ: 従量課金制なので、必要な時に必要なだけ利用でき、コストを抑えられます。
- 高いセキュリティ: Google Cloudの強固なセキュリティ基盤により、安心してデータを管理できます。
2. 分析に使用するBigQueryのデータセット
今回の分析では、BigQueryの公開データセット「BBC News Archive」を使用します。このデータセットには、BBCニュースが公開しているニュース記事データが格納されています。データの内容は、記事のタイトル、本文、カテゴリなどです。
3. BigQueryでニュース記事を分析する手順
BigQueryでニュース記事を分析し、注目トピックを抽出する手順は以下の通りです。
3.1 1. データ確認
まず、データセットの内容を確認します。BigQueryコンソールのUIでデータセットのスキーマを確認したり、サンプルデータをプレビューしたりすることで、データの構造や内容を理解することができます。`bbc` データセットには、 `stories` テーブルが含まれており、ニュース記事に関する詳細情報が記録されています。
3.2 2. データ加工
必要に応じて、データを加工します。例えば、日付データを年、月、日、曜日などに分割したり、特定のカテゴリの記事に絞り込んだり、特定の期間のデータのみを抽出したりします。BigQueryは、SQLを使ってデータ加工を行うための様々な関数を提供しています。
3.3 3. キーワード抽出
ニュース記事本文から、キーワードを抽出します。BigQuery MLの自然言語処理機能を利用して、記事本文から重要な単語を抽出することができます。また、特定のキーワードの出現頻度をカウントすることで、そのキーワードがどの程度注目されているのかを定量的に分析することも可能です。
3.4 4. トレンド分析
抽出されたキーワードや、記事の公開日時などを用いて、トレンド分析を行います。例えば、特定のキーワードの出現頻度の推移を分析することで、そのトピックへの関心がどのように変化しているのかを把握することができます。また、複数のキーワードの相関関係を分析することで、新たなトレンドを発見できる可能性もあります。
3.5 5. 考察と分析結果の活用
分析結果に基づいて、注目トピックを考察します。どのような社会問題が注目されているのか、人々の関心はどのような分野に移っているのか、ビジネスチャンスとなりそうなトピックは何かなどを分析し、レポートにまとめます。分析結果を基に、新たな商品やサービスの開発、マーケティング戦略の立案、投資判断など、ビジネス戦略に役立てることができます。
4. BigQueryを使ったニュースデータ分析例
今回は、BigQuery公開データセット bigquery-public-data.bbc_news.fulltext を使って、注目のトピックを探るトレンド分析に挑戦します。
このデータセットには、BBCニュース記事の全文がカテゴリ別に分類されて格納されています。
膨大なニュース記事から単語の出現頻度や変化を分析することで、社会の関心の移り変わりや、新たに注目を集めているテーマを浮き彫りにすることができます。
BigQuery分析例:カテゴリー別・単語出現頻度ランキング
ニュースのカテゴリー(category)ごとに、どのような単語が頻繁に使われているのかを分析するため、単語(word)の出現回数(word_count)を集計し、ランキング形式で表示します。
--テキストアナライザに関して参考にしたドキュメント
--https://cloud.google.com/bigquery/docs/reference/standard-sql/text-analysis?hl=ja#token_filters
--ストップワーズに関して参考にしたドキュメント
--https://gist.github.com/sebleier/554280
WITH words_by_category AS (
SELECT
category,
word,
COUNT(*) AS word_count
FROM `bigquery-public-data.bbc_news.fulltext`
, UNNEST(TEXT_ANALYZE(
lower(body),
analyzer=>'PATTERN_ANALYZER',
analyzer_options=>'''
{
"patterns": ["[a-zA-Z]*"],
"token_filters": [
{
"normalizer": {
"mode": "LOWER"
}
},
{
"stop_words": ["i", "me", "my", "myself", "we", "our", "ours", "ourselves", "you", "your", "yours", "yourself", "yourselves", "he", "him", "his", "himself", "she", "her", "hers", "herself", "it", "its", "itself", "they", "them", "their", "theirs", "themselves", "what", "which", "who", "whom", "this", "that", "these", "those", "am", "is", "are", "was", "were", "be", "been", "being", "have", "has", "had", "having", "do", "does", "did", "doing", "a", "an", "the", "and", "but", "if", "or", "because", "as", "until", "while", "of", "at", "by", "for", "with", "about", "against", "between", "into", "through", "during", "before", "after", "above", "below", "to", "from", "up", "down", "in", "out", "on", "off", "over", "under", "again", "further", "then", "once", "here", "there", "when", "where", "why", "how", "all", "any", "both", "each", "few", "more", "most", "other", "some", "such", "no", "nor", "not", "only", "own", "same", "so", "than", "too", "very", "s", "t", "can", "will", "just", "don", "should", "now", "say", "said"]
}
]
}
'''
)
) AS word
WHERE LENGTH(word) > 3
GROUP BY 1, 2
)
SELECT
category,
word,
word_count
FROM words_by_category
ORDER BY category, word_count DESC
【BigQuery SQL解説】
- bigquery-public-data.bbc_news.fulltextテーブルから、ニュース記事のカテゴリ(category)と本文(body)を取得します。
- lower(body)で、本文をすべて小文字に変換します。
- TEXT_ANALYZE関数を使って、小文字に変換された本文を単語に分割します。
- analyzer=>’PATTERN_ANALYZER’で、単語分割にパターンアナライザーを使用することを指定します。
- analyzer_optionsで、パターンアナライザーの設定をJSON形式で指定します。
- “patterns”: [“[a-zA-Z]*”]で、英字のみからなる単語を抽出するパターンを指定します。
- “token_filters”で、単語に対するフィルタ処理を指定します。
- “normalizer”で、単語を小文字に変換するフィルタを指定します。
- “stop_words”で、一般的な単語(”the”, “a”, “is”など)を除外するフィルタを指定します。
- UNNEST()関数で、TEXT_ANALYZE関数によって生成された単語の配列を展開します。
- LENGTH(word) > 3で、3文字以下の単語を除外します。
- COUNT(*) AS word_countで、カテゴリと単語ごとの出現回数をカウントします。
- GROUP BY 1, 2で、カテゴリと単語ごとに集計します。
【BigQuery分析での活用例】
- カテゴリーごとに、出現頻度の高い単語を抽出することで、各カテゴリーの主要なテーマや、注目されているキーワードを把握できます。
- 特定の期間における単語の出現頻度の変化を比較することで、社会の関心の変化や、新たに注目を集めているトレンドを分析することができます。
注意点
- ストップワードのリストは、分析の目的に合わせて変更する必要がある場合があります。
- このクエリはあくまでも単語の出現頻度に基づいた分析であり、文脈や意味を考慮した分析は別途行う必要があります。
- これらのクエリは、BigQuery公開データに基づいています。データの正確性や最新性については、実際のBigQuery公開データをご自身でご確認ください。
- 当該分析は、様々な要因を総合的に判断する必要があります。これらのクエリは分析の一例であり、意思決定の根拠として単独で使用すべきではありません。
5. FAQ:BigQueryに関するよくある質問
Q1. BigQueryの無料枠を超えて利用すると、どのくらい費用がかかりますか?
A1. 無料枠を超えた場合、従量課金制で料金が発生します。料金は、処理したデータ量やストレージ容量などによって異なります。詳しくは、BigQueryの料金ページをご確認ください。
Q2. BigQueryで使えるSQLは、他のデータベースと同じですか?
A2. BigQueryは標準SQLをサポートしており、他のデータベースで学んだSQLの知識を活かすことができます。ただし、BigQuery独自の関数や構文も存在するため、BigQueryのドキュメントで詳細を確認することをおすすめします。
Q3. SQLの学習には、どのような教材がありますか?
A3. SQLの学習には、オンライン学習サイト、書籍、動画教材など、様々な教材があります。初心者向けの教材から、上級者向けの教材まで、レベルに合わせて選ぶことができます。Googleが提供するBigQueryのチュートリアルもSQLの学習に役立ちます。
6. まとめ:BigQueryでニュース分析を行い、時代の変化を先読みしよう!
BigQueryは、ニュースデータ分析に最適なツールです。BigQueryの高速な処理性能、豊富な分析機能、そして無料公開データセットを活用することで、誰でも簡単にニュース分析を行い、時代の変化を先読みすることができます。この記事で紹介した分析手順や分析例を参考に、BigQueryを使ったニュースデータ分析に挑戦し、ビジネスに役立つインサイトを得ましょう!
BigQuery導入サポート、転職検討中の方はお問い合わせフォームからご相談くださいませ。
誠心誠意精一杯対応いたします。
【参考URL】
GoogleCloudPlatform:https://console.cloud.google.com/welcome/new
BigQuery:https://cloud.google.com/bigquery?hl=ja
BigQueryリリース情報:https://cloud.google.com/bigquery/docs/release-notes
BigQuery料金:https://cloud.google.com/bigquery/pricing
BigQuery料金無料枠:https://cloud.google.com/bigquery/pricing?hl=ja#free-tier
Google Cloud活用事例:https://cloud.google.com/customers/index.html?hl=ja#
Looker Studio:https://cloud.google.com/looker-studio?hl=ja
Looker Studioサンプル:https://cloud.google.com/bigquery/docs/visualize-looker-studio?hl=ja