반응형
일반적으로 비정형 데이터 처리는 SNS(Social Network Service)에서 제공하는 텍스트 자료나 기존에 준비된 디지털 자료를 대상으로 미리 만들어 놓은 사전과 비교화여 단어의 빈도를 분석하는 텍스트 마이닝 방식을 주로 이용한다. 따라서 한글 단어를 처리할 수 있는 우수한 사전 기능이 무엇보다도 요구된다. 특히 비정형 데이터 처리를 위해서는 사전에 없는 단어를 추가하거나 불용어를 처리하는 별도의 함수를 정의해 놓을 필요가 있다.
데이터 마이닝(Data Mining): 의사 결정을 위해서 DB(정형화 data)로 부터 규칙과 패턴을 발견하는 기법
텍스트 마이닝(Text Mining): text data(자연어, 비정형 data)로 부터 규칙과 패턴을 발견하는 기법
워드 클라우드(Word Cloud) : 자료 처리 과정과 자료 분석 과정 - 단어 빈도수 체크
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
# 한글 워드 클라우드 절차
# 1. Java 실행환경 구축 (jdk 설치)
# 2. 자료 수집 (text 자료)
# 2.1 text file 형태로 수집
# 2.2 web scraping을 이용하여 수집
# 3. 명사 추출
# 필요시 설치할 패키지들
# install.packages("wordcloud")
# install.packages("wordcloud2")
# install.packages("KoNLP") # 한국어 처리
# install.packages("RColorBrewer") # 색상 선택
library(wordcloud)
library(wordcloud2)
library(KoNLP)
library(RColorBrewer)
library(dplyr)
library(ggplot2)
setwd('D:경로 지정')
text
# txt 파일 맨마지막 줄에 공백 한 줄을 넣는 것이 R과 호환에 좋다.
# '우리말씀' 한글 사전 로딩 ( 62만 개의 우리말 단어 수록)
buildDictionary(ext_dic = 'woorimalsam')
noun <- sapply(text, extractNoun, USE.NAMES = F) # 명사 추출
noun # class: list
# 4. 추출된 단어(주로 명사) 에 대한 빈도수 계산 및 시각화
noun2 <- unlist(noun) # list -> vector로 변환
noun2
wordcount <- table(noun2)
wordcount
col = 'steelblue', main = '빈도수 높은 단어',
ylab = '단어 빈도수')
df
ggplot ( df, aes(x = df$noun2, y = df$Freq)) +
geom_bar(stat = 'identity',
width = 0.7,
fill = 'steelblue') +
ggtitle('빈도수 높은 단어') +
face = 'bold',
colour = 'steelblue',
hjust = 0,
vjust = 1 )) +
labs(x = '명사', y='단어빈도수') +
geom_text(aes(label = df$Freq), hjust = -0.3) + # 빈도 표시
coord_flip()
# 5. word cloud 작성
wordcloud (names(wordcount), # 단어
freq = wordcount, # 단어 빈도
scale = c(6, 0.7),# 단어 폰트 크기(최대, 최소)
random.order = F, # 단어 출력 위치
colors = pal2) # 단어 색
# 6. 전처리 과정 수행
# 6.1 생략된 단어를 사전에 등재
buildDictionary(ext_dic = 'woorimalsam',
replace_usr_dic = T)
noun <- sapply(text, extractionNoun, USE.NAMES = F)
noun2 <- unlist(noun)
# 6.2 불필요한 단어 삭제: 하나하나 찾아봐야 함 ㅠㅠ
noun2 <- noun2[nchar(noun2) > 1] # 글자수 1 초과
noun2 <- gsub('하지', '', noun2) # '하지'를 ''로 바꿈 (제거)
noun2 <- gsub('때문', '', noun2)
wordcount <- table(noun2)
# 7. 다시 워드클라우드 실행하면 등장하는 단어가 바뀜
wordcloud (names(wordcount), # 단어
freq = wordcount, # 단어 빈도
scale = c(6, 0.7),# 단어 폰트 크기(최대, 최소)
random.order = F, # 단어 출력 위치
colors = pal2) # 단어 색
|
반응형
'빅데이터 > R' 카테고리의 다른 글
[R] 고급시각화 분석 - ggmap 패키지, 구글맵 지도 정보 이용하기 (0) | 2019.12.11 |
---|---|
[R] symbols() 함수 사용 예시 (0) | 2019.12.10 |
[R] treemap() 함수 사용 예시 (0) | 2019.12.10 |
[R] RStudio에서 read.csv 후 한글 깨짐 현상 해결 방법 (영문 OS) (0) | 2019.12.10 |
[R] 고급 시각화 분석 - ggplot() 함수 사용 예시 (0) | 2019.12.09 |