R로 하는 텍스트마이닝(2016_08_15 대통령 광복절 기념사 분석)  

 

 

제이콥입니다.

 

얼마 전 대한민국 최대 기념일 8월 15일 '광복절'이었죠. 모두 집에 태극기 달으셨나요? :)

 

역사 공부를 할때마다 대한민국이 주변 강대국에게 당하면서 살았던 것이 항상 분했었는데요.

 

지금 이렇게 강대국이 되었다는 것에 대해 너무나 기쁘고 가슴이 벅차오릅니다.

 

그리고 8월 15일, 광복절에 박근혜 대통령이 광복절 기념사를 하셨는데요.

 

제가 정치에 대해서 잘 알지는 못하나, 역사적인 날을 기념하는 큰 공식적인 자리에서

 

팩트를 잘못 연설하신 것에 대해선 좋은 기념사는 아니었다고 말하고 싶네요^^;

 

 

 

 

 

말이 길어졌네요.

 

오늘은 박근혜 대통령의 광복절 기념사를 텍스트마이닝 해보려고 하는데요.

 

텍스트마이닝의 의미는 무엇을 의미하는걸까요?

 

 

 

텍스트 마이닝(text mining)이란 대규모의 문서(text)에서 의미 있는 정보를 추출하는 것을 말한다.

(NAVER 지식백과)

 

 

텍스트 마이닝은 분석 분석 대상이 형태가 일정하지 않고 다루기 힘든 비정형 데이터이므로

 

인간의 언어를 컴퓨터가 인식해 처리하는 자연어 처리 방법과 관련이 깊다고 하는데요.

 

간단하게 말씀드리면, 저는 마케팅에 관심이 많습니다.

 

그래서 지인들과 업무 또는 그에 관련된 얘기를 할 때마다 마케팅에 관한 이야기를 많이하게 되죠.

 

그리고 제가 했던 말들을 분석하면 '마케팅'이란 단어 또는 그에 관련된 단어를 많이 사용했을 것입니다.

단어 빈도수는 간접적으로 제가 마케팅에 관심있다는 것을 알 수 있게 해주는 척도라고 할 수 있죠.

 

참으로 신통방통한 기법입니다. 마케팅하는 사람들에겐 VOC수집하고 분석하면 큰 도움이 되겠네요 :)

네이버 블로그에도 빅데이터 기술이 적용되는 것을 볼 수 있었죠.

 

그럼 지금부터 텍스트마이닝 하는 방법에 대해 알아보도록 하겠습니다.

 

(박근혜 대통령 광복절 기념사는 파일첨부 해놓았습니다. 다운받아서 실습해보세요.)

 

 

 

 

 

텍스트 마이닝을 실행하기 위한 패키지를 우선 설치하셔야 하는데요.

 

KoNLP, data.table, plyr, RColorBrewer, wordcloud 총 5개 패키지를 사용합니다. 패키지를 모두 설치해주세요:)

 

 

 

 

1. 파일 불러오기(.txt)

 

 

'2016_박근혜 대통령 광복절 기념사'파일을 readLines함수로 불러옵니다.

 

 

txt에 제대로 담겨졌는데 확인해보세요:)

 

 

 

 

 

2. 단어 추출 및 데이터 구조 변경

 

 

txt파일의 단어를 추출해보도록 하겠습니다.

 

 

txt2를 확인해보시면 아래와 같이 단어가 추출된 것을 보실 수 있습니다.

 

 

txt 파일에서 단어를 추출하면서 데이터 구조가 character에서 list로 변환되었습니다.

 

이 구조를 다시 character로 바꿔주기 위해 다시 한번 함수를 사용합니다.

 

 

한 번 확인해볼까요?

 

 

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

자, character로 변환이 되었네요.

 

 

 

 

 

3. 두 단어 이하 제외

 

 

두 단어 이하로 된 단어를 제외하려고 합니다.

 

이때는 Filter 함수를 사용합니다.

 

 

 

두 단어 이하로 이루어진 단어를 모두 제외시켰습니다.

 

 

 

 

 

4. 데이터 테이블로 변형

 

 

단어 형태를 바꾸기 위해 데이터 테이블로 만들어줍니다.

 

 

그리고 빈도수를 세어보도록 합시다.

 

 

그리고 확인!

 

 

 

 

 

 

5. 색 지정

 

출력 될 wordcloud 단어색을 지정해주는 단계입니다.

 

 

 

 

 

 

6. wordcloud 출력

 

아래 코드를 따라 입력해줍니다.

 

 

wordcloud(names(wordcount), freq=wordcount, scale=c(3,0.3), rot.per=0.25, min.freq=1,random.order=F, random.color=T, colors=ccolour)

(퍼가기하시면 블라인드처리 된 코드를 보실 수 있습니다.) 

 

위와 같은 결과가 나왔습니다.

 

하지만 부분부분 제외하고 싶은 단어가 보입니다. 마지막으로 제외하고 싶은 단어를 제외합니다.

 

 

7. 단어 제외

 

 

txt3 <- gsub("\d+","", txt3)
txt3 <- gsub("
\n","", txt3)

txt3 <- gsub("[A-z]", "", txt3)

txt3 <- gsub("[[:cntrl:]]", "", txt3)

 

첫 번째는 날짜를 제외하는 것을 의미하며, 두 번째는 new line 문자 없애는 것을 의미합니다.

또한 세 번째는 영문 제거이며, 마지막으로 네번째는 특수문자 제거입니다.

 

이외에도 제외하고 싶은 단어는 제외해줍니다.

다시 한번 입력해 준 코드를 실행해주면, 이런 예쁜 그림이 나오게 되죠.

 

2016년 광복절 기념사에는 "여러분"이란 단어와 "신산업","자신감","규제개혁","교육개혁","공동체"등의 단어가 눈에 많이 띄네요.

 

박근혜 대통령은 이런 분야에 관심이 많다고 할 수 있겠습니다.

 

확인해본 결과 빈도수는 이러합니다.

 

 

여러분이라는 단어를 15번이나 말씀하셨네요.​

이 뿐만 아니라 텍스트 마이닝 기법을 사업 또는 마케팅에 대입하면 더 좋은 인사이트를 뽑을 수 있겠죠?

 

수고하셨습니다:)

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
공지 오라클 기본 샘플 데이터베이스 졸리운_곰 2014.01.02 86162
공지 [SQL컨셉] 서적 "SQL컨셉"의 샘플 데이타 베이스 SAMPLE DATABASE of ORACLE 가을의 곰을... 2013.02.10 78656
공지 [G_SQL] Sample Database 가을의 곰을... 2012.05.20 95391
27 [java dbms][database] [컴] Apache Derby 사용하기 - 4 - in-memory DB 졸리운_곰 2021.04.15 1560
26 [java dbms][database] [컴] Apache Derby 사용하기 - 3 - Apache Derby Network Server 졸리운_곰 2021.04.15 1634
25 [java dbms][database] [컴] Apache Derby 사용하기 - 2 - sql script tool ij 사용하기 졸리운_곰 2021.04.15 1823
24 [java dbms][database] [컴] Apache Derby 사용하기 - 1 - Derby 설치 file 졸리운_곰 2021.04.15 1153
23 실습 2 - GROUP 졸리운_곰 2020.09.30 1550
22 [SQL 가이드] 데이터베이스 모델의 이해 (Understanding Database model) file 졸리운_곰 2020.06.13 2483
21 [SQL 가이드] 식별자(Identification)의 개념 file 졸리운_곰 2020.06.13 2060
20 [SQL 가이드] 관계(relationship)의 개념 file 졸리운_곰 2020.06.13 1556
19 [SQL 가이드] 속성(attribute)의 개념 file 졸리운_곰 2020.06.13 1703
18 [SQL 가이드] 엔티티의 개념 file 졸리운_곰 2020.06.13 2201
17 [SQL] join의 on절과 where절 차이 졸리운_곰 2020.05.16 1304
16 JOIN*(3개 테이블) and GROUP BY*(보이지않더라도 key칼럼으로) and ORDER BY 졸리운_곰 2020.05.16 1224
15 다중 테이블에서 데이터 검색 - JOIN file 졸리운_곰 2020.05.16 1596
14 IFNULL(MYSQL), ISNULL(MSSQL), NVL(ORACLE) 졸리운_곰 2018.07.24 1778
13 4 Ways to Join Only The First Row in SQL file 졸리운_곰 2018.07.03 1637
12 DBMS별 기존테이블 SELECT해서 새 테이블에 INSERT하여 데이터 ... file 졸리운_곰 2018.01.22 1592
11 SOL 개발자의 현주소 : 개발자가 SQL 작성시 고쳐야 하는 태도 file 졸리운_곰 2018.01.01 2159
10 오라클 운반 최소 단위 BLOCK file 졸리운_곰 2017.07.15 2035
9 재미있는 DB 이야기 ‘놀라운 마방진의 세계’ file 졸리운_곰 2017.07.15 2394
8 재미있는 DB 이야기 ‘사라진 날짜를 찾아라’ file 졸리운_곰 2017.07.15 2224
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED