데이터 출처 : www.kaggle.com/cosmos98/twitter-and-reddit-sentimental-analysis-dataset?select=Twitter_Data.csv
Twitter and Reddit Sentimental analysis Dataset
Tweets and Comments extracted from Twitter and Reddit For Sentimental Analysis.
www.kaggle.com
ipynb File :github.com/sangHa0411/DataScience/blob/main/Twitter%20Sentiment%20Analysis_GloVe.ipynb
sangHa0411/DataScience
Contribute to sangHa0411/DataScience development by creating an account on GitHub.
github.com
Part1 에서는 데이터 분석 및 전처리하고 양방향 LSTM을 이용해서 트위터 감정 분석을 할 수 있는 Deep Learning 모델을 만들어 보았습니다.
Part2에서는 미국의 Stanford 대학에서 만든 GloVe Word Embedding Layer를 사용하는 방법과 사용한 모델과 Part1의 모델의 성능을 비교해보도록 하겠습니다.
데이터 전처리과정은 Part1과 동일하게 진행하였습니다.
X_train 및 X_test는 Keras를 이용해서 단어를 정수 인코딩하고 최대 백터의 길이로 동일하게 맞추어 주었습니다.
Y_train 와 Y_test 긍정, 중립 , 부정 총 3개의 클래스 이므로 one hot 인코딩을 해주었습니다.
이제 GloVe Embedding Layer를 만들어 보겠습니다.
제가 사용한 Glove Embedding Layer 파일은 아래의 주소에서 다운 받으실 수 있습니다.
www.kaggle.com/bertcarremans/glovetwitter27b100dtxt
glove.twitter.27B.100d.txt
www.kaggle.com
txt 파일을 불러온다음에 각 줄을 읽어서 단어와 사전에 훈련된 vector를 파악하고 Dictonary 자료 구조에 저장합니다.
Key는 단어가 되고 Value는 길이가 100인 Vector가 됩니다.
이제 이를 이용해서 numpy array를 만듭니다.
원래는 정수 인코딩을 하였으므로 단어가 정수로 만들어지는데 이 과정을.통해서 단어가 길이가 100인 vector가 됩니다.
위 embedding_Dict에 없는 단어는 0 vector로 설정합니다.
사전에 만든 numpy array를 이용해서 embedding layer을 만듭니다. 여기서 주의해야 할 것은 해당 layer는 값들이 변경할 수 없게 훈련 불가능하도록 설정해야 한다는 것입니다.
학습 방법은 ReduceROnPlateau로 만듭니다.
아래의 주소에 가시면 위 학습 방법에 대해서 쉽게 설명되어 있습니다.
참고 자료 : teddylee777.github.io/tensorflow/keras-콜백함수-vol-01
[Keras] 콜백함수 (1) - 학습률(learning rate): ReduceLROnPlateau
[Keras] 콜백함수 (1) - 학습률(learning rate): ReduceLROnPlateau에 대하여 알아보겠습니다.
teddylee777.github.io
아래는 학습 과정입니다.
위에 만든 Model을 이용해서 테스트 데이터를 대상으로 성능을 측정해보겠습니다.
그래프를 보면 정확도가 대략 90%가 넘는 것을 확인할 수 있습니다.
또한 Loss는 0.3보다 낮은 것을 확인할 수 있습니다.
최종적인 테스트 결과는 다음과 같습니다.
테스트 데이터를 기반으로 성능 측정 결과 Word Embedding Layer를 직접 만들어서 학습시키는 것보다 정확도가 2%정도 더 증가된 91%된 것을 확인할 수 있습니다.
'Deep Learning' 카테고리의 다른 글
Deep Learning - Netflix 연관 컨텐츠 파악하기 Part2 (0) | 2020.10.06 |
---|---|
Deep Learning - Netflix 연관 컨텐츠 파악하기 Part1 (0) | 2020.10.06 |
Deep Learning - 메이크업 노메이크업 구별하기 Part3 (0) | 2020.10.06 |
Deep Learning - 메이크업 노메이크업 구별하기 Part2 (0) | 2020.10.06 |
Deep Learning - 메이크업 노메이크업 구별하기 Part1 (0) | 2020.10.06 |