8-4. 텍스트마이닝2
6) 텍스트마이닝 : 함수
- 텍스트마이닝에서 사용되는 함수
crude[[1]] 데이터 : 첫번째 기사 (아래와 같은 XML파일 형태로 저장)
str(crude[[1]])
content(crude[[1]])
meta(crude[[1]])
lapply(crude, content)
- inspect 함수
inspect(crude[1:3])
각 파일에 char숫자
inspect(crude[[1]])
첫번째 파일의 내용을 보여줌
7) 텍스트마이닝 전처리 함수
- 텍스트 전처리
- 텍스트 전처리 : 문장부호 없애기 - tm)map(x, removePunctuation)
crude<-tm_map(crude, removePunctuation)
content(crude[[1]])
문장부호 제거 (. , "" '')
- 텍스트 전처리 : 숫자 제거 - tm_map(x, removeNumbers)
crude<-tm_map(crude, removeNumbers)
content(crude[[1]])
숫자 제거
- 텍스트 전처리 : stopwords 제거 - 언어별로 다름, 지정할 수 있음
crude<-tm_map(crude, function(x) removeWords(x,stopwords()))
content(crude[[1]])
that, it, had, its, for, by, The 제거
- 텍스트 전처리 : stopword 리스트
stopwords()
stopwords("en") 174개
stopwords("SMART") 517개
8) 텍스트마이닝 수행
- 문서행렬을 구성 : TermDocumentMatrix(문서이름)
tdm<-TermDocumentMatrix(crude)
inspect(tdm)
첫번째 파일 144번
crude 문서번호 144에 나오는 단어들의 빈도
- 문서행렬을 행렬로 변환
m<-as.matrix(tdm)
head(m)
dim(m) [1] 962 20
행렬로 변환된 m에는 962개 단어의 빈도가 20개 파일에 대해 계산되어 있음
- 단어의 빈도 순서로 정렬
v<-sort(rowSums(m), decreasing=TRUE)
v[1:10]
각 단어에 대한 빈도의 합(행기준) 가장 높은것부터 [1:10]번까지
- 단어 이름과 빈도를 결합한 행렬을 데이터 프레임으로 저장
- crude관련기사 파일로부터 962개의 단어들을 분류하여 빈도를 계산
d<-data.frame(word=names(v), freq=v)
head(d) 가장 빈도가 높은 단어 6개
d[957:962, ] 가장 빈도가 낮은 단어 6개
9) 텍스트마이닝 결과 그리기
- 빈도가 가장 높은 단어부터 그리기
#color displaying
install.packages('RColorBrewer')
wordcloud(d$word, d$freq)
pal <- brewer.pal(9,"BuGn")
pal <- pal[-(1:4)]
wordcloud(d$word,d$freq,c(8,.3),2,,FALSE,,.15,pal)
- 한글문서에서 텍스트마이닝
install.packages("KoNLP")
library(KoNLP)
useSejongDic (backup=T)
단계별로 filtering하는 방법은 유사
한글문서로 텍스트마이닝
10) 텍스트마이닝 데이터 저장소 : 참고
- tm패키지의 예제데이터와 저장소
tm.dir <- system.file ("texts", "txt", package = "tm")
tm.dir"D:/R/R-3.6.2/library/tm/texts/txt"
Crude 데이터 (tm패키지에 들어있는 예제데이터)
'공부 > R & Python' 카테고리의 다른 글
9-2. 데이터마이닝과 예측 (다중회귀분석2) (0) | 2020.02.18 |
---|---|
9-1. 데이터 마이닝 기초-데이터마이닝과 예측 (다중회귀분석1) (0) | 2020.02.17 |
8-3. 텍스트마이닝1 (0) | 2020.02.17 |
8-2. 회귀분석 (선형모형) (0) | 2020.02.17 |
8-1. 선형 회귀모형과 텍스트 마이닝-상관분석 (0) | 2020.02.17 |