이 포스트에서는 데이터마이닝에 구축에 대한 것을 배울 것이다.
데이터 마이닝이랑 아래와 같은 형태의 통계지표를 이야기한다.
관심빈도가 높을 수록 글자 크기가 크며, 낮을수록 작다.
통계 공공 포털 등에서 많이, 자주 활용하는 방법 중 하나이다.
먼저 분석할 데이터를 텍스트 형태로 워크스페이스에 넣는다.
실력만 있다면 다른형태의 데이터를 가져와서 가공해도 된다.
(참고서에서 가져온 데이터라, 내가 배포해도 되나 싶어서 첨부하지 않는다.)
데이터가 없다면 적당히 웹에서 긁어서 실습해보도록 하자.
다음으로 코드를 기록해보도록 하자
처음으로 관련 패키지를 다운받아야한다.
순서대로 설치하고 메모리에 올리자. 빠샤
KoNLP는 자바 가상머신을 활용하는 함수들을 포함하고 있기에
자바 환경이 구축되어 있어야한다.
만약 구축 환경에 path가 잘못되어 있다면 에러가 날 것이다.
이러면 path를 다시 잡아주도록 하고
귀찮다면 임시방편으로 Sys.setenv 함수를 이용하여 path를 잡아주도록 하자.
그 후 사전을 등록하고
아까 받아온 텍스트를 가져와서 저장한다.
잘 가져왔는 지 내용도 확인해보도록 하자
확인해보니 내 메모장에는 특수문자('\')가 포함되어 있다.
때문에 이를 제거해줘야 하므로, str_replace_all 함수를 통해 제거 해 줬다.
제거하고 결과를 비교했다.
위쪽은 제거하기 전
아래쪽은 제거한 후
다음은 가사에서 명사를 추출해보자
리턴타입은 리스트다
문자열의 집합으로 돌려주기 때문에 가공이 필요하다.
데이터를 보면 알겟지만 깔끔하게 명사만 뽑아주지는 않는다. (...)
한국어 데이터 마이닝의 한계인가 싶기도 하다..
어쨋든 이 리스트 타입의 데이터 덩어리를
리스트 벡터로 바꾸자.
unlist 함수를 사용하면 된다.
결과는 아래와 같다.
다음은 이 벡터를 table에 넣어서 숫자를 확인해보자
결과는 아래와 같다.
가공이 미흡해서 끔찍한 결과이다 (....)
우리는 하는 방법을 아려고 하는 것이니 그냥 넘어가자.
다음은 이렇게 만들어진 데이터를 데이터 프레임으로 바꾼다.
variable의 위치를 조정하기 위해 stringAsFactors 를 사용했다.
결과다.
다음은 데이터의 빈도수를 솎아내서 상위 20개의 데이터만 출력해보자
뽑아봤더니 한글자 데이터가 너무 많다 (....)
한국어 데이터 가공의 한계인거같다.
두글자 데이터만 걸러내도록 하자
위의 처리를 하면 두글자인 데이터만 df_word 데이터 프레임에 저장되게 된다.
본격적으로 워드 클라우드를 만들기 위해
관련 패키지를 깔아주고 메모리에 로드한다.
그리고 색상 데이터를 pal에 저장하고
난수를 설정한다.
설명은 다 주석에 달아놨다.
실행해보면 완성이다.
데이터가 별로라서 양질의 결과는 나오지 않았지만
(데이터가 별로라기 보단 처리과정에 사용할 수 있는 알고리즘이 불완전한듯 하다. 아니면 내 실력이 ㅡㅡ;)
영어 데이터나, 명사만 깔끔하게 잘라나온 데이터가 있다면
훌륭한 결과를 뽑아낼 수 있을 것이라 예상된다.
-------------------- plus --------------------
영화 어바웃타임과 미비포유 비긴어게인 스크립트를 넣고 돌리니 이런 결과가 나왔다.
명사만 뽑아내기는 죽어도 싫은가보다 (....)
will 위에 깨알같은 clark
'프로그래밍 > R' 카테고리의 다른 글
R에서 Matrix(매트릭스)와 DataFrame(데이터 프레임) 등 (0) | 2017.11.30 |
---|---|
R에서 벡터(테이블, 행,열) / seq, rep 함수 이용 (0) | 2017.11.30 |
R 변수 선언과 데이터 출력 (0) | 2017.11.30 |