본문 바로가기
R, Python

R을 이용한 텍스트 마이닝 및 워드 클라우드(word cloud) 만들기

by 방구석 몽상가 2018. 12. 7.
2018-12-07-text-mining-R-twice

트와이스에 대한 문서로 텍스트 마이닝을 해보자.

먼저, 트와이스 관련 문서를 pdf로 다운로드 받아준다.



위키피디아 페이지에서 Download as PDF로 들어가서 해당 페이지를 pdf로 다운로드할 수 있다.


1. PDF 파일을 단일 문자열로 만들기

pdftools를 이용해 pdf 파일을 불러오고 stringr 패키지를 이용해서 텍스트 분석을 할 것이다.

여기서 pdf 파일은 프로젝트 폴더 내에 위치시켜주면 된다. 현재 프로젝트 폴더 경로를 보려면 getwd() 명령어를 실행하면 된다.

 

2. 문자열 전처리

1. 불필요한 참고문헌 부분 제거

위 references 섹션은 텍스트 마이닝에 불필요한 정보이므로 전부 삭제한다.

결과

위 결과를 보면 references 단어가 위치하는 곳이 두 곳이라는 걸 알 수 있다. 하지만 지워주려는 references 섹션은 뒤에 위치하므로 두 번째 위치가 우리가 찾던 위치이다. 이 위치를 기준으로 오른쪽을 전부 지워준다.

2. 둘 이상의 공백 처리

3. 영어 이외의 문자(비 알파벳 문자) 제거

제거 전에 삭제될 문자들을 확인해준다.

결과

이제 해당 문자들을 공백 " "으로 대체하여 삭제해주자.


<잠깐!>

이쯤되면 뭔가 불편함을 느꼈을 수도 있다. 현재 매번 새 객체를 만들어 사용하고 이전에 썼던 객체명을 함수 인수로 계속 전달하고 있다. 이러한 과정을 편리하게 하는 dplyr 패키지를 사용해보자.

4. dplyr 패키지를 이용한 텍스트 데이터 전처리

구두점을 포함하고 있는 단어를 고려하여 별도의 처리들을 해주어야 하지만 여기선 무시하고 구두점을 제거하겠습니다.

dplyr을 사용하면 보다시피 훨씬 간단하고 빠르게 작업할 수 있게 됩니다. 이제 print(twice_processed)를 실행하면 토큰화된 단어들이 출력되는 것을 볼 수 있습니다.

 

3. WordCloud 생성하기

wordcloud 패키지를 사용하여 손쉽게 데이터 시각화를 할 수 있습니다.

위 코드를 실행시키면 다음과 같이 word cloud가 생성되게 됩니다.

생성된 word cloud를 자세히 보면 the, and, for와 같은 접속사, 전치사 등 의미없는 단어들이 포함되어있습니다. 이러한 것들을 불용어라고 합니다.

 

4. 불용어 처리

tm 패키지는 불용어 사전을 제공하는 패키지입니다. 이제 tm 패키지를 통해 불용어를 제거하도록 하겠습니다. tm 패키지가 제공하는 사전은 en, smart 사전 두 가지가 있는데 smart 사전이 훨씬 더 많은 단어를 담고 있으므로 smart 사전을 사용하도록 하겠습니다.

결과


이제 위와 같이 깔끔한 결과를 볼 수 있습니다.


댓글