ビッグデータ分析-データ収集
データ収集は、ビッグデータサイクルで最も重要な役割を果たします。インターネットは、さまざまなトピックについてほぼ無制限のデータソースを提供します。この分野の重要性はビジネスの種類によって異なりますが、従来の業界では、さまざまな外部データのソースを取得し、それらをトランザクションデータと組み合わせることができます。
たとえば、レストランを推薦するシステムを構築したいとします。最初のステップは、データ(この場合はさまざまなWebサイトからレストランのレビュー)を収集し、それらをデータベースに保存することです。生のテキストに関心があり、それを分析に使用するため、モデルを開発するためのデータがどこに保存されるかはそれほど重要ではありません。これはビッグデータのメインテクノロジーと矛盾しているように聞こえるかもしれませんが、ビッグデータアプリケーションを実装するには、それをリアルタイムで機能させる必要があります。
Twitterミニプロジェクト
問題が定義されたら、次の段階はデータを収集することです。次のミニプロジェクトのアイデアは、Webからデータを収集し、機械学習モデルで使用できるように構造化することです。Rプログラミング言語を使用してTwitterRESTAPIからいくつかのツイートを収集します。
まずTwitterアカウントを作成し、次に twitteRTwitter開発者アカウントを作成するためのパッケージビネット。これはそれらの指示の要約です-
に移動 https://twitter.com/apps/new とログインします。
基本情報を入力したら、[設定]タブに移動し、[ダイレクトメッセージの読み取り、書き込み、アクセス]を選択します。
これを行った後、必ず保存ボタンをクリックしてください
[詳細]タブで、コンシューマーキーとコンシューマーシークレットをメモします
Rセッションでは、APIキーとAPIシークレット値を使用します
最後に、次のスクリプトを実行します。これにより、twitteR githubのリポジトリからパッケージ。
install.packages(c("devtools", "rjson", "bit64", "httr"))
# Make sure to restart your R session at this point
library(devtools)
install_github("geoffjentry/twitteR")
文字列「ビッグマック」が含まれているデータを取得し、これについてどのトピックが目立つかを調べることに関心があります。これを行うための最初のステップは、Twitterからデータを収集することです。以下は、Twitterから必要なデータを収集するためのRスクリプトです。このコードは、bda / part1 / collect_data /collect_data_twitter.Rファイルでも入手できます。
rm(list = ls(all = TRUE)); gc() # Clears the global environment
library(twitteR)
Sys.setlocale(category = "LC_ALL", locale = "C")
### Replace the xxx’s with the values you got from the previous instructions
# consumer_key = "xxxxxxxxxxxxxxxxxxxx"
# consumer_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# access_token = "xxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# access_token_secret= "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# Connect to twitter rest API
setup_twitter_oauth(consumer_key, consumer_secret, access_token, access_token_secret)
# Get tweets related to big mac
tweets <- searchTwitter(’big mac’, n = 200, lang = ’en’)
df <- twListToDF(tweets)
# Take a look at the data
head(df)
# Check which device is most used
sources <- sapply(tweets, function(x) x$getStatusSource())
sources <- gsub("</a>", "", sources)
sources <- strsplit(sources, ">")
sources <- sapply(sources, function(x) ifelse(length(x) > 1, x[2], x[1]))
source_table = table(sources)
source_table = source_table[source_table > 1]
freq = source_table[order(source_table, decreasing = T)]
as.data.frame(freq)
# Frequency
# Twitter for iPhone 71
# Twitter for Android 29
# Twitter Web Client 25
# recognia 20