Skip to content

텍스트 마이닝 #
Find similar titles

Structured data

Category
Database

텍스트 마이닝 #

정의 #

KDT(Knowledge Discovery in Textual Database), 도큐먼트 마이닝(Document mining) 이라고도 하며
큰 범주에서 데이터 마이닝이란 의사결정 수단을 위하여 대용량의 데이터베이스로부터 의미 있는 규칙과 패턴을 발견하는 기법을 말하는데 데이터 마이닝이 다루는 데이터베이스는 구조에 따라 구조화 데이터베이스(structured database)와 비구조화 데이터베이스(unstructured database)로 구분할 수 있습니다. 텍스트 마이닝은 이 중 비구조화 데이터 베이스에서 정보를 찾아내는 분석 기법입니다. <br> 텍스트 마이닝은 자연어 처리 기술을 바탕으로 대량의 텍스트로부터 기존에 알려지지 않은 유용한 패턴과 지식을 발견하기 위한 목적으로 텍스트와 기계학습을 통하여 사용자가 관심을 가지는 정보를 자동으로 추출하는 프로세스입니다.

종류 #

정보추출(Information Extraction) #

일반적인 텍스트 문서로부터 사용자가 원하는 정보를 추출하는 방법입니다. 원하는 정보는 문장의 형식이나 사용자가 이전에 미리 지정한 query에 맞추어서 추출됩니다.

문서 분류(Text Classification)와 문서 클러스터링(Text Clustering) #

문서들을 문서의 내용에 따라 구조화하는 텍스트 마이닝 기법입니다. 문서 분류는 주어진 키워드에 따라 문서를 분류하는 기법으로서 주어진 키워드 집합에 따라 이 문서가 해당 카테고리로 분류될지를 결정하게 됩니다. 문서 클러스터링은 문서들을 분석하여 동일한 내용의 문서들을 묶는 기법입니다. 문서 분류와 클러스터링은 문서를 관련된 내용별로 자동으로 구조화함으로써 사용자가 많은 양의 문서들을 좀 더 편리하게 접근할 수 있게 해줍니다.

토픽 트랙킹(Topic Tracking) #

사용자 프로필을 기반으로 사용자가 관심 있어 하는 문서가 어떤 문서일지 예측하는 시스템입니다. 사용자의 프로필은 사용자가 직접 키워드 단어 또는 카테고리를 지정하거나 사용자가 지금까지 읽어 온 문서의 내용에 기반을 두어 만들 수 있습니다.

질의 응답 시스템(Question Answering) #

사용자가 자연 언어로 질문을 던지면 시스템이 질문에 대한 대답을 제공해주는 시스템입니다.

문서요약(Summarization) #

문서에서 다룬 중요 내용을 글로 요약하려는 것입니다.

워드 클라우드 #

워드 클라우드란 텍스트 마이닝을 통해 원하는 텍스트를 추출하고 중요도에 따라 시각적으로 늘어놓는 것을 의미합니다. 순서는 알파벳/ 가나다 순으로 배치되며 시각적인 중요도 강조를 위해 중요도에 따라 색상이나 굵기 등 형태가 다르게 표현됩니다.

R로 만드는 워드 클라우드 #

sorting된 데이터 워드 클라우드 #

패키지 다운로드 및 불러들이기

1 install.packages("rJava") # java 사용 패키지
2 install.packages("KoNLP") # 한글 데이터를 불러오기 위한 패키지
3 install.packages("RColorBrewer") # 다양한 색상 제공 패키지
4 install.packages("wordcloud") # 워드 클라우드 사용 패키지
5 
6 library(rJava)
7 library(KoNLP)
8 library(RColorBrewer)
9 library(wordcloud)

# install.package 를 이용하여 패키지 설치
# library 함수 이용하여 불러들임

데이터 정보 및 형식

str(x) 'data.frame': 6428 obs. of 1 variable: $ 용기: Factor w/ 4116 levels " 내구소비재",..: 2685 2807 2820 2053 1344 2447 3280 3983 1190 3155 ...

1 용기 
2 일반화장품  
3 저가화장품 
4 전 성분 표시제
5 아니마·아니무스
6 브래드 충성도
7 유기농 색조화장품 
8 콜라보레이션
9 ...

데이터 불러오기 및 정제

1 useSejongDic()  # 사전추가
2 mergeUserDic(data.frame("화장품", "ncn")) 
# 수동으로 세종사전에 없는 단어 추가
3 x <- read.csv("Top_k1.csv") #Top_k1.csv 데이터 불러오기
4
5 myword <- sapply(x, extractNoun, USE.NAMES = F) 
# extractNoun 문장을 단어로 만든 후 명사 추출 
# sapply 벡터 형태로 단순화 해서 추출
6
7 nouns <- extractNoun(x) # 단어만 추출
8 wordFreq <- table(x) # table 만들기 
9 
10 head(sort(wordFreq, decreasing = T), 20) 
# 단어 빈도 수가 높은 것들부터 내림차순으로 20개 추출
11 y <- extractNoun(x) 
12 y <- table(x)
13
14 wordcloud(names(y), freq = y, scale=c(5,1), rot.per = 0.25, 
15 min.freq=3, random.order=F, random.color = T, colors = brewer.pal(9, 
16 "Set1"),max.words = 50) # wordcloud 그리는 함수

word cloud 옵션

freq: 단어들의 빈도
scale : 빈도가 가장 큰 단어와 가장 빈도가 작은 단어 폰트 사이
rot.per=0.1 : 90도 회전해서 보여줄 단어 비율
min.freq=3, max.words= 50 : 빈도 3이상, 50미만 단어 표현
random.order=F : False(빈도수가 큰단어를 중앙에 배치) / True(랜덤배치)
random.color=T : True(색상랜덤) / False(빈도수순으로 색상표현)
colors=brewer.pal(9 , "Set1") : 11은 사용할 색상개수, Set1은 색상타입 이름
family : 폰트

결과 Image

오류 #

KoNLP 설치시 rJAVA 오류 #
> Error: package or namespace load failed for 'KoLNP'

KoNLP는 자바 기반으로 만들어졌기 때문에 java 사이트에서 자신에 운영체제에 맞는 java를 설치 한 후 rJava를 로딩하고 KoNLP를 로딩해야함

install.packages("rJava")
library(rJava)

java를 깐 후에도 오류가 난다면 JAVA_HOME 의 경로를 인식하지 못한 경우임으로

Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jre1.8.0_241')

로 환경변수를 설정하여 준다.

웹으로 만드는 워드 클라우드 #

http://www.tagxedo.com/

Image

http://wordcloud.kr/

Image

Python으로 만드는 워드 클라우드 #

참고 #

Incoming Links #

Related People #

Related Articles #

0.0.1_20140628_0