id sentiment review
"5814_8" 1 "With all this stuff going down at the moment with MJ i've started listening to his music, watching the odd documentary here and there, watched The Wiz and watched Moonwalker again. Maybe i just want to get a certain insight into this guy who i thought was really cool in the eighties just to maybe make up my mind whether he is guilty or innocent. Moonwalker is part biography, part feature film which i remember going to see at the cinema when it was originally released. Some of it has subtle messages about MJ's feeling towards the press and also the obvious message of drugs are bad m'kay.
Visually impressive but of course this is all about Michael Jackson so unless you remotely like MJ in anyway then you are going to hate this and find it boring. Some may call MJ an egotist for consenting to the making of this movie BUT MJ and most of his fans would say that he made it for the fans which if true is really nice of him.
The actual feature film bit when it finally starts is only on for 20 minutes or so excluding the Smooth Criminal sequence and Joe Pesci is convincing as a psychopathic all powerful drug lord. Why he wants MJ dead so bad is beyond me. Because MJ overheard his plans? Nah, Joe Pesci's character ranted that he wanted people to know it is he who is supplying drugs etc so i dunno, maybe he just hates MJ's music.
Lots of cool things in this like MJ turning into a car and a robot and the whole Speed Demon sequence. Also, the director must have had the patience of a saint when it came to filming the kiddy Bad sequence as usually directors hate working with one kid let alone a whole bunch of them performing a complex dance scene.
Bottom line, this movie is for people who like MJ on one level or another (which i think is most people). If not, then stay away. It does try and give off a wholesome message and ironically MJ's bestest buddy in this movie is a girl! Michael Jackson is truly one of the most talented people ever to grace this planet but is he guilty? Well, with all the attention i've gave this subject....hmmm well i don't know because people can be different behind closed doors, i know this for a fact. He is either an extremely nice but stupid guy or one of the most sickest liars. I hope he is not the latter."
id
sentiment
review
0
5814_8
1
With all this stuff going down at the moment w...
1
2381_9
1
"The Classic War of the Worlds" by Timothy Hi...
2
7759_3
0
The film starts with a manager (Nicholas Bell)...
3
3630_4
0
It must be assumed that those who praised this...
4
9495_8
1
Superbly trashy and wondrously unpretentious 8...
데이터는 "id", "sentiment", "review"로 구분되어 있어며, 각 리뷰('review')에 대한 감정('sentiment')이 긍정(1), 부정(0)인지 나와있다.
이제 다음과 같은 순서로 데이터 분석을 해보자.
데이터 크기
데이터 개수
각 리뷰 문자 길이 분포
많이 사용된 단어
긍정, 부정 데이터의 분포
각 리뷰의 단어 개수 분포
특수문자 및 대문자, 소문자 비율
데이터 크기
파일 크기 :
labeledTrainData.tsv 33.56MB
testData.tsv 32.72MB
unlabeledTrainData.tsv 67.28MB
전체 데이터가 인덱스로 구성됨에 따라 각 인덱스가 어떤 단어를 의미하는지 확인할 수 있어야 하기 때문에 단어 사전이 필요하다.
총 74,000개 정도의 단어 이다. 단어 사전뿐 아니라 전체 단어의 개수도 이후 모델에서 사용되기 때문에 저장해 둔다.
Shape of train data: (25000, 174)
패딩 처리를 위해 pad_sequences함수를 사용하였다. 최대 길이를 174로 설정한 것은 앞서 단어 개수의 통계를 계산했을 때 나왔던 중간값이다.
보통 평균이 아닌 중간값을 사용하는 경우가 많은데, 일부 이상치 데이터로 인해 평균값이 왜곡될 우려가 있기때문이다.
패딩 처리를 통해 데이터의 형태가 25,000개의 데이터가 174라는 길이를 동일하게 가지게 되었다.
Shape of label tensor: (25000,)
numpy 배열로 만든 후 라벨의 형태를 확인해 보면 길이가 25,000인 벡터임을 확인할 수 있다.
이렇게 라벨까지 numpy 배열로 저장하면 모든 전처리 과정이 끝난다.
원본 데이터를 벡터화하는 과정을 그림을 통해 이해해 보자. oorigin-vector
이제 전처리한 데이터를 이후 모델링 과정에서 사용하기 위해 저장을 하도록 하자.
test 데이터도 동일하게 저장하자. 다만 test 데이터는 라벨 값이 없기 때문에 라벨은 따로 저장하지 않아도 된다. 추가로 test 데이터네 대해 저장해야 하는 값이 있는데 각 리뷰 데이터에 대해 리뷰에 대한 id값을 저장해야 한다.
test 데이터를 전처리할 떄 한 가지 중요한 점은 토크나이저를 통해 인덱스 벡터로 만들 때 토크나이징 객체로 새롭게 만드는 것이 아니라, 기존에 학습 데이터에 적용한 토크나이저 객체를 사용해야 한다는 것이다. 만약 새롭게 만들 경우 Train 데이터와 Test 데이터에 대한 각 단어들의 인덱스가 달라져서 모델에 정상적으로 적용할 수 없기 때문이다.
지금까지의 결과를 아래와 같은 파일들에 각각 저장을 하였다.
단어 인덱스 사전 및 개수 : data_configs.json
훈련 데이터 : train_input.npy, train_label.npy, train_clean.csv
테스트 데이터 : test_input.npy, test_clean.csv, test_id.npy