반응형
- 텍스트 마이닝이란? (Text mining)
install.packages("rJava") #r에서 Java를 사용한 패키지 사용
install.packages("memoise") #koNLP패키지가 사용하는 패키지
install.packages("KoNLP") #한국어 자연어 처리
install.packages("stringr") #문자열을 처리하는 여러가지 함수를 가지고 있는 패키지
install.packages("wordcloud") #워드클라우드를 그려주는 패키지
- 문자로 된 데이터에서 가치 있는 정보를 얻어 내는 분석 기법
- 분석절차
- 형태소 분석
- 명사, 동사, 형용사 등 의미를 지는 품사 단어 추출
- 빈도표 만들기
- 시각화
- 텍스트 마이닝 준비하기
Java 다운로드 및 설치
자바 다운로드 : https://www.java.com/ko/download/manual.jsp
자바 환경변수 설정
자바 프로그램 설치 확인
- 워드 클라우드에 필요한 R 패키지 로드
install.packages("rJava") #r에서 Java를 사용한 패키지 사용
install.packages("memoise") #koNLP패키지가 사용하는 패키지
install.packages("KoNLP") #한국어 자연어 처리
install.packages("stringr") #문자열을 처리하는 여러가지 함수를 가지고 있는 패키지
install.packages("wordcloud") #워드클라우드를 그려주는 패키지
#패키지 라이브러리에 올리기
library(KoNLP)
library(stringr)
library(wordcloud)
search()
- 워드클라우드 데이터 전처리
#한국어 분석에 사용할 사전을 로드
useSejongDic()
#텍스트 파일(*.txt)에서 한줄씩 문자열들을 읽음
txt <-readLines("data/hiphop.txt")
str(txt)
head(txt)
# 특수문자 제거
# 정규 표현식 (regular expression) 문자열의 패턴
txt <-str_replace_all(txt,"\\W"," ")
txt[1:10]
#각 문장에서 명사들만 추출
nouns <- extractNoun(txt)
str(nouns)
# 명사들로 이루어진 리스트를 돗수분포표 형태로 변환
word_count <-table(unlist(nouns))
word_count
head(word_count)
# 돗수분포표를 데이터 프레임으로 변환
# stringsAsFactors -> 문자열을 범주형 데이터로 취급하지 않겠다.
df <- as.data.frame(word_count, stringsAsFactors = F)
df
head(df)
tail(df)
df<- rename(df,word=Var1,freq=Freq)
tail(df)
str(df)
# 한 글자의 경우 명사가 아닌 경우가 많음으로, 제외
df <-filter(df,nchar(word) >=2)
str(df)
tail(df)
- 워드 클라우드 그리기
library(RColorBrewer)
pal <- brewer.pal(8,"Dark1")
#word cloud는 생성할 때마다 랜덤하게 만들어 지는데,
set.seed(1234)
wordcloud(words = df$word, # 단어
freq = df$freq, # 빈도
min.freq = 2, # 최소 단어 빈도
max.words = 200, # 표현 단어 수
random.order = F, # 고빈도 단어 중앙 배치
rot.per = .1, # 회전 단어 비율
scale = c(4, 0.3), # 단어 크기 범위
colors = pal) # 색깔 목록
'하나. 빅데이터 머신러닝 > > R' 카테고리의 다른 글
[R] ggplot2 활용하여 막대그래프 그리기 (0) | 2019.09.27 |
---|---|
박스플롯 (Box Plot) (0) | 2019.09.26 |
댓글