텍스트 마이닝
#
Find similar titles
- 최초 작성자
- 최근 업데이트
Structured data
- Category
- Database
Table of Contents
텍스트 마이닝 #
정의 #
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 : 폰트
결과
오류 #
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')
로 환경변수를 설정하여 준다.
웹으로 만드는 워드 클라우드 #
Python으로 만드는 워드 클라우드 #
참고 #
- https://m.blog.naver.com/PostView.nhn?blogId=2035icck&logNo=220784000304&proxyReferer=https%3A%2F%2Fwww.google.com%2F
- https://en.wikipedia.org/wiki/Text_mining
- https://ko.wikipedia.org/wiki/%ED%83%9C%EA%B7%B8_%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C
- R과 빅데이터 이해 이동수 저 자유 아카데미
Incoming Links #
Related People (Person 0) #
Related Articles (Article 1) #
Suggested Pages #
- 0.375 공문서 작성법
- 0.258 한글 맞춤법
- 0.075 Bayesian statistics
- 0.072 Suggest
- 0.054 삭제요청
- 0.034 데이터 시각화
- 0.031 펄
- 0.028 pcr
- 0.023 Substitution matrix
- 0.013 Non-negative matrix factorization
- More suggestions...