Phân tích dữ liệu lớn - Thu thập dữ liệu

Thu thập dữ liệu đóng vai trò quan trọng nhất trong chu trình Dữ liệu lớn. Internet cung cấp nguồn dữ liệu gần như không giới hạn cho nhiều chủ đề khác nhau. Tầm quan trọng của lĩnh vực này phụ thuộc vào loại hình kinh doanh, nhưng các ngành công nghiệp truyền thống có thể thu được nguồn dữ liệu bên ngoài đa dạng và kết hợp chúng với dữ liệu giao dịch của họ.

Ví dụ, giả sử chúng tôi muốn xây dựng một hệ thống đề xuất nhà hàng. Bước đầu tiên là thu thập dữ liệu, trong trường hợp này là các đánh giá về nhà hàng từ các trang web khác nhau và lưu trữ chúng trong cơ sở dữ liệu. Vì chúng tôi quan tâm đến văn bản thô và sẽ sử dụng văn bản đó cho phân tích, nên việc lưu trữ dữ liệu để phát triển mô hình sẽ không phù hợp lắm. Điều này nghe có vẻ mâu thuẫn với các công nghệ chính của dữ liệu lớn, nhưng để triển khai một ứng dụng dữ liệu lớn, chúng ta chỉ cần làm cho nó hoạt động trong thời gian thực.

Dự án nhỏ Twitter

Khi vấn đề được xác định, giai đoạn sau là thu thập dữ liệu. Ý tưởng dự án nhỏ sau đây là thu thập dữ liệu từ web và cấu trúc nó để sử dụng trong mô hình học máy. Chúng tôi sẽ thu thập một số tweet từ API phần còn lại của twitter bằng ngôn ngữ lập trình R.

Trước hết, hãy tạo một tài khoản twitter, và sau đó làm theo hướng dẫn trong twitteRgói họa tiết để tạo tài khoản nhà phát triển twitter. Đây là bản tóm tắt các hướng dẫn đó -

  • Đi đến https://twitter.com/apps/new và đăng nhập.

  • Sau khi điền các thông tin cơ bản, hãy chuyển đến tab "Cài đặt" và chọn "Đọc, Viết và Truy cập tin nhắn trực tiếp".

  • Đảm bảo nhấp vào nút lưu sau khi thực hiện việc này

  • Trong tab "Chi tiết", hãy ghi lại khóa khách hàng và bí mật người tiêu dùng của bạn

  • Trong phiên R của bạn, bạn sẽ sử dụng khóa API và các giá trị bí mật của API

  • Cuối cùng chạy tập lệnh sau. Điều này sẽ cài đặttwitteR gói từ kho của nó trên github.

install.packages(c("devtools", "rjson", "bit64", "httr"))  

# Make sure to restart your R session at this point 
library(devtools) 
install_github("geoffjentry/twitteR")

Chúng tôi quan tâm đến việc lấy dữ liệu trong đó chuỗi "big mac" được bao gồm và tìm ra chủ đề nào nổi bật về điều này. Để làm được điều này, bước đầu tiên là thu thập dữ liệu từ twitter. Dưới đây là tập lệnh R của chúng tôi để thu thập dữ liệu cần thiết từ twitter. Mã này cũng có sẵn trong tệp 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