빅 데이터 분석-데이터 정리

데이터가 수집되면 일반적으로 특성이 다른 다양한 데이터 소스가 있습니다. 가장 즉각적인 단계는 이러한 데이터 소스를 동종으로 만들고 데이터 제품을 계속 개발하는 것입니다. 그러나 데이터 유형에 따라 다릅니다. 데이터를 균질화하는 것이 실용적인지 자문해야합니다.

데이터 소스가 완전히 다를 수 있으며 소스를 균질화하면 정보 손실이 커집니다. 이 경우 대안을 생각할 수 있습니다. 하나의 데이터 소스가 회귀 모델을 구축하고 다른 하나는 분류 모델을 구축하는 데 도움이 될 수 있습니까? 정보를 잃어 버리는 것보다 유리하게 이질성을 가지고 일하는 것이 가능합니까? 이러한 결정을 내리는 것이 분석을 흥미롭고 어렵게 만듭니다.

리뷰의 경우 각 데이터 소스에 대한 언어를 가질 수 있습니다. 다시 두 가지 선택이 있습니다.

  • Homogenization− 다른 언어를 더 많은 데이터가있는 언어로 번역하는 것이 포함됩니다. 번역 서비스의 품질은 만족 스럽지만 API를 사용하여 방대한 양의 데이터를 번역하려면 비용이 많이 듭니다. 이 작업에 사용할 수있는 소프트웨어 도구가 있지만 비용도 많이 듭니다.

  • Heterogenization− 각 언어에 대한 솔루션을 개발할 수 있습니까? 말뭉치의 언어를 감지하는 것이 간단하기 때문에 각 언어에 대한 추천자를 개발할 수 있습니다. 사용 가능한 언어의 양에 따라 각 추천자를 조정하는 측면에서 더 많은 작업이 필요하지만 몇 가지 언어를 사용할 수있는 경우 확실히 실행 가능한 옵션입니다.

트위터 미니 프로젝트

현재의 경우 토픽 모델링을 적용하기 위해 먼저 구조화되지 않은 데이터를 정리 한 다음 데이터 매트릭스로 변환해야합니다. 일반적으로 트위터에서 데이터를 가져올 때 적어도 데이터 정리 프로세스의 첫 번째 단계에서 사용하는 데 관심이없는 여러 문자가 있습니다.

예를 들어, 트윗을받은 후 이상한 문자 "<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 벡터 우리는 그것을 단어 모음 행렬로 쉽게 변환하고 비지도 학습 알고리즘을 적용 할 수 있습니다.