- 大資料分析教程
- 大資料分析 - 首頁
- 大資料分析 - 概述
- 大資料分析 - 特性
- 大資料分析 - 資料生命週期
- 大資料分析 - 架構
- 大資料分析 - 方法論
- 大資料分析 - 核心交付成果
- 大資料採用及規劃考慮
- 大資料分析 - 主要利益相關者
- 大資料分析 - 資料分析師
- 大資料分析 - 資料科學家
- 大資料分析有用資源
- 大資料分析 - 快速指南
- 大資料分析 - 資源
- 大資料分析 - 討論
大資料分析 - 資料清洗
資料收集完成後,我們通常會擁有來自不同來源、具有不同特徵的各種資料。最直接的步驟是使這些資料來源同質化,並繼續開發我們的資料產品。但是,這取決於資料的型別。我們應該問問自己,使資料同質化是否實際可行。
也許資料來源完全不同,如果將資料來源同質化,資訊損失將會很大。在這種情況下,我們可以考慮替代方案。一個數據源可以幫助我建立迴歸模型,另一個數據源可以建立分類模型嗎?是否可以利用異質性來發揮優勢,而不是僅僅丟失資訊?做出這些決定正是使分析變得有趣和具有挑戰性的原因。
對於評論而言,每個資料來源可能使用不同的語言。同樣,我們有兩個選擇:
同質化 - 這涉及將不同的語言翻譯成我們擁有更多資料的那種語言。翻譯服務的質量是可以接受的,但如果我們想使用API翻譯海量資料,成本將非常高。有一些軟體工具可用於此任務,但這也會很昂貴。
異質化 - 是否可以為每種語言開發一個解決方案?由於很容易檢測語料庫的語言,我們可以為每種語言開發一個推薦系統。這將涉及更多工作,需要根據可用語言的數量來調整每個推薦系統,但如果我們只有幾種語言可用,這絕對是一個可行的選擇。
Twitter小型專案
在本例中,我們需要首先清理非結構化資料,然後將其轉換為資料矩陣,以便對其應用主題建模。一般來說,從Twitter獲取資料時,有一些字元我們不感興趣,至少在資料清洗過程的第一個階段是這樣。
例如,獲取推文後,我們會得到這些奇怪的字元:“<ed><U+00A0><U+00BD><ed><U+00B8><U+008B>”。這些可能是表情符號,因此為了清理資料,我們將使用以下指令碼將其刪除。此程式碼也可在bda/part1/collect_data/cleaning_data.R檔案中找到。
rm(list = ls(all = TRUE)); gc() # Clears the global environment
source('collect_data_twitter.R')
# Some tweets
head(df$text)
[1] "I’m not a big fan of turkey but baked Mac &
cheese <ed><U+00A0><U+00BD><ed><U+00B8><U+008B>"
[2] "@Jayoh30 Like no special sauce on a big mac. HOW"
### We are interested in the text - Let’s clean it!
# We first convert the encoding of the text from latin1 to ASCII
df$text <- sapply(df$text,function(row) iconv(row, "latin1", "ASCII", sub = ""))
# Create a function to clean tweets
clean.text <- function(tx) {
tx <- gsub("htt.{1,20}", " ", tx, ignore.case = TRUE)
tx = gsub("[^#[:^punct:]]|@|RT", " ", tx, perl = TRUE, ignore.case = TRUE)
tx = gsub("[[:digit:]]", " ", tx, ignore.case = TRUE)
tx = gsub(" {1,}", " ", tx, ignore.case = TRUE)
tx = gsub("^\\s+|\\s+$", " ", tx, ignore.case = TRUE)
return(tx)
}
clean_tweets <- lapply(df$text, clean.text)
# Cleaned tweets
head(clean_tweets)
[1] " WeNeedFeminlsm MAC s new make up line features men woc and big girls "
[1] " TravelsPhoto What Happens To Your Body One Hour After A Big Mac "
資料清洗小型專案的最後一步是獲得已清洗的文字,我們可以將其轉換為矩陣並應用演算法。從儲存在clean_tweets向量中的文字中,我們可以輕鬆地將其轉換為詞袋矩陣並應用無監督學習演算法。