Deep Learning

Deep Learning - Corona Tweets 분석하기 Part2 : 텍스트 전처리하기

electronicprogrammer 2020. 10. 19. 16:14

데이터 출처 : www.kaggle.com/datatattle/covid-19-nlp-text-classification

 

Coronavirus tweets NLP - Text Classification

Corona Virus Tagged Data

www.kaggle.com

github 주소 : github.com/sangHa0411/DataScience/blob/main/Corona_Tweets.ipynb

 

sangHa0411/DataScience

Contribute to sangHa0411/DataScience development by creating an account on GitHub.

github.com

 

Part2에서는 Deep Learning에 입력으로 넣기 이전에 노이즈가 상당히 많은 Text인 Tweet Text를 전처리 해보고 전처리 된 Text를 이용해서 Wordcloud로 만들어 보겠습니다.

먼저 Tweet 데이터를 하나 골라서 확인해보곘습니다.

https:// 등의 url이 있는 것을 확인할 수 있고 #mania 등의 hashtag등도 있는 것을 확인할 수 있습니다.

여기서 정규표현식을 이용해서 Text를 전처리 해보도록 하겠습니다.

순서는 다음과 같습니다.

먼저 https:// 등의 url 를 먼저 제거합니다.

그리고 #hashtag 등을 제거합니다.

그리고 hasn't 에서와 같이  '를 제거합니다.

그리고 알파벳을 제외한 특수문자를 모두 제거합니다.

이렇게 제거하면서 생긴 공백이 여러개 있으면 이를 1개의 공백으로 줄여줍니다.

 

이제 이를 하나의 함수로 정의합니다.

 

여기서 추후에 훈련시킬 LSTM의 성능을 증가시키기 위해서 Extremely Negative 와 Negative 그리고 Extremely Positive 와 Positive 데이터를 합칩니다.

 

 

이제 분할된 데이터의 Text를 전처리해보겠습니다.

 

이제 각 감정별로 전처리 된 텍스트의 길이에 대해서 Histogram을 만들어보겠습니다.

 

Part1에서 확인해보았듯이 Neutral에서 보다 감정이 있는 경우 Clean Text의 길이가 상당히 긴 것을 확인할 수 있습니다.

이제 여기서 Clean Text의 길이가 10이하 인 것 감정 분석을 파악하기 힘들다고 생각해서 해당된 데이터를 모두 삭제합니다.

 

이제 각 감정별로 Wordcloud를 만들어보았습니다.

 

Supermarket , people 등 평범한 단어가 많이 있는 것을 확인할 수 있습니다.

 

다음은 Negative 데이터의 WordCloud입니다.

간간히  risk , panic , crisis , virus 등과 같은 단어를 확인할 수 있습니다.

 

다음은 Positive 데이터에 대한 WordCloud입니다.

 

help , thank 및 good과 같은 단어가 있는 것을 확인할 수 있습니다. 

 

Part3에서는 전처리된 데이터를 바탕으로 해서 LSTM을 학습시키고 이를 이용해서 코로나 관련 트위터의 감정 분석을 해보도록 하겠습니다.