텍스트 분석텍스트 분석이란 비정형 데이터인 텍스트에서 의미있는 정보를 추출하는 작업이다. 텍스트 분석의 종류로는 텍스트 분류, 감성 분석, 요약, 군집화와 유사도 측정 등이 있다. 텍스트 분석의 순서는 다음과 같이 이루어진다.
위의 과정 중 문장을 단어로 나누는 작업은 영어의 경우라면 띄어쓰기 만으로 충분히 처리할 수 있다. 하지만 한국어의 경우 같은 단어라도 다양한 형태로 나타나기에 띄어쓰기로 나누지 못하고, 대신 특정 라이브러리를 사용하여 형태소를 기반으로 나누어야 한다. 이 때 사용되는 라이브러리가 바로 Konlpy이다.
오늘은 Konlpy를 사용한 문장을 단어로 나누는 방법과, 이를 토대로 시각화 하는 방법을 실습해볼 것이다. 우선 데이터 셋이 필요한데, 이는 옛날에 네이버 뉴스를 파싱해 만든 데이터를 사용할 것이다. https://github.com/123okk2/Naver_News_title_classification/blob/main/data/eco.csv GitHub - 123okk2/Naver_News_title_classification: 네이버 뉴스 제목 파싱 후 제목에 따라 뉴스 주제 분류 (정 네이버 뉴스 제목 파싱 후 제목에 따라 뉴스 주제 분류 (정치, 경제, 사회, 생활, IT) - GitHub - 123okk2/Naver_News_title_classification: 네이버 뉴스 제목 파싱 후 제목에 따라 뉴스 주제 분류 (정치, 경제, 사 github.com eco.csv 0.02MB 그리고 시각화에는 wordcloud 라는 라이브러리를 사용할 것인데, 텍스트를 시각화하는 작업을 할 것이다보니 필연적으로 한글이 들어가야 한다. 하지만 워드 클라우드는 matplotlib과 마찬가지로 기본적으로 한글이 사용되지 못하기 때문에 한글을 별도로 지정해줘야 한다. 윈도우는 그냥 설정해줄 수 있고, 코랩은 다음 과정을 거친다.
위의 명령어를 사용하여 폰트를 다운받은 후 아래와 같이 font_path 파라미터를 통해 지정을 해주면 끝이다.
그 후 Kkma를 사용하여 텍스트를 분석하는 과정은 다음과 같다. 순서는 위에서 설명한 것과 같이 구성하였다.
위의 코드를 실행시키면 명사들의 빈도수에 따라 집계된 통계가 다음과 같이 시각화 된다. 참고로 워드 클라우드에는 재미있는 기능이 있는데, 바로 이미지 지정이다. 이미지를 지정하면 위와 같이 사각형이 아닌 지정한 이미지대로 출력이 된다. 무슨 말이냐 싶을 수 있는데, 사실 말로 하는 것보다는 보는 것이 좋으니 한 번 보도록 하자. 아까의 코드에서
마스크 지정은 바로 위와 같이 특정한 형태로 시각화를 하는 작업이라고 보면 된다. 또한 워드 클라우드는 보는 것만으로는 정량적인 판단이 어렵다는 단점이 있다. 그렇기에 가능하다면, 아래와 같이 워드 클라우드 그림을 단일로 사용하기 보다 그래프와 함께 출력하여 주는 것이 좋다. 워드 클라우드의 단점은 정량적인 판단이 어렵다는 점이다. 그렇기에 워드 클라우드의 그림은 그래프와 함께 나타내는 것이 좋다. |