티스토리 뷰

1.웹 스크래핑?
2.데이터 수집
3.데이터 살펴보기
4.데이터 정제하기
5.데이터 시각화하기
학습목표
•인터넷 백과사전 위키피디아를 통하여 웹스크래핑 방법 학습
•영문 텍스트 데이터를 수집하여, 전처리하는 과정에 관하여 학습

 

1.웹 스크래핑?

웹 상의 필요한 정보를 긁어오듯이 데이터를 수집하는 방법

2.데이터 수집

위키피디아

3. 데이터 살펴보기

install.packages(httr)
library(httr)

url <-"https://en.wikisource.org/wiki/Donald_Trump%27s_Inaugural_Address"
html <-GET(url)
install.packages("XML")
library(XML)
#html 문서를 트리구조로 구조화
html.parsed <-htmlParse(html)
#xpathSApply( )에는 정보가 담긴 html.parsed와 xpath 경로, 그리고 xmlValue를 인수로 넣어 호출
text <- xpathSApply(html.parsed,"//div[@class='mw-parser-output']/p", xmlValue)

4. 데이터 정제하기

#paste()를 사용하여 공백문자로 연결
text <-paste(text, collapse = " ")
# 영문텍스트 정제하기 (tm) -
#text를 코퍼스로 변환
library(tm)
corpus<-Corpus(VectorSource(text))
corpus[[1]]$content
#tm_map() 함수를 통해 영문 텍스트 데이터를 정제
corpus <-tm_map(corpus,content_transformer(tolower)) #소문자로 변환
corpus <-tm_map(corpus,removeWords,stopwords('en')) #불용문자 변환
corpus <-tm_map(corpus,removePunctuation)  #문장보호 제거
corpus <-tm_map(corpus,removeNumbers)  #숫자 제거
corpus <-tm_map(corpus,stemDocument)  #어간 제거
corpus <-tm_map(corpus,stripWhitespace) #공백 제거

corpus[[1]]$content
#문서-단어 행렬로 구성하기
dtm <-DocumentTermMatrix(corpus)
#단어 빈도수 정보를 갖는 벡터 생성
terms <-colSums(as.matrix(dtm))
#order 함수로 정렬
terms.ordered <-terms[order(terms,decreasing = TRUE)]

5. 데이터 시각화 하기

library(wordcloud2)

terms.ordered<-terms.ordered[1:200] #상위 200개 단어만 추출
terms.df <-data.frame(terms=names(terms.ordered), freq=terms.ordered)
rownames(terms.df)<-c(1:nrow(terms.df))

wordcloud2(terms.df, color="random-dark", size=0.7)
728x90
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
반응형