본문 바로가기

텍스트 분석/시각화

텍스트 분석 - 네이버 카페(비건 디저트) : 상위빈도단어 시각화, wordcloud

반응형

https://steadiness-193.tistory.com/144

 

텍스트 분석 - 네이버 카페(비건 디저트) : 전처리, 형태소 분석(Komoran)

데이터 불러오기 여기서 필요한 것은 content와 reply뿐이다. content content를 문자열로 다 바꾸고 인덱스와 함께 리스트로 저장한다. 여기서 길이가 4 이상이어야 하는데 그 이유는 누락값은 NaN인데 �

steadiness-193.tistory.com

 

 

위 포스팅에서 만들어낸 mas 엑셀파일을 불러온다.

 

 

 

 

엑셀파일에 저장했다가 불러오면 다시 처리해야할 것이 있다.

 

엑셀로 저장했다가 불러오면

 

리스트까지 문자열로 보기 때문에

 

 

 

위 처럼 리스트를 ""로 감싸서 str로 나타내고 있다.

 

 

 

 

따라서 앞의 2글자와 뒤 2글자를 제외하고

 

 

 

 

 

 

박스 표시한 저 문자열로 split을 하면 다시 리스트로 만들 수 있다.

 

 

 

 

STOP_WORDS

 

 

텍스트 분석을 하다보면 크롤링 특성상

 

필요없는 문자열과 주소 등을 다 가져오기 때문에

 

해당 단어가 있다면 걸러내는 작업이 필요하다.

 

분석을 해보면서 소음이라고 판단되는 단어들을 모아둔다.

 

 

 

 

 

 

 

CHANGE_WORDS_SET

 

텍스트 분석을 하다보면 의미가 동일한 단어가

 

여러 표현으로 적힐때가 많다.

 

또는 작성자마다 글을 쓰는 스타일이 다르기 때문에

 

이를 최대한 한 단어로 통일시켜주는 것이 좋다.

 

예를 들면 인스타그램이 인스타, insta, instagram 등으로 다양하게 적히는 것이다.

 

 

 

 

이를 바꿔주기 위한 이중 리스트를 만들어 둔다.

 

 

 

 

 

 

 

 

 

mas_total

 

mas_noun 컬럼에서 STOP_WORDS에 해당되지 않고

 

CHANGE_WORDS_SET을 통과해낸 단어들을 모두 모아

 

mas_total에 넣어두자

 

 

 

 

 

이를 견뎌낸 단어들의 개수는 

 

총 374,541개이다.

 

 

 

 

 

 

Counter

 

collections 라이브러리를 이용해 

 

각 단어의 개수를 세주는 Counter를 가져와서 이용하자

 

 

 

개수가 상위 50개인 단어들을 뽑아봤다.

 

 

 

 

 

이를 시각화하기 위해 2개 컬럼의 데이터프레임을 만들자

 

 

 

 

위 데이터프레임의 시각화

 

 

어떤 단어들이 많이 사용되었는지 빈도수 별로 상위 단어를 파악할 수 있다.

 

 

 

 

 

 

 

 

wordcloud

 

상위 50단어 말고

 

단어의 개수를 다 찾아낸  mas_counts를 이용해

 

워드클라우드를 만들어보자

 

 

 

상위 50단어로는 놓칠 수 있었던 중요 단어들도 보인다.

 

 

 

반응형