텍스트마이닝(Text Mining) 2번째 수업
: 25,000건 영화 리뷰 데이터 텍스트마이닝
Large Movie Review Dataset
1) Large Movie Review Dataset v1.0 다운로드 받기
2) 다운받은 파일명 : aclImdb_v1.tar.gz
3) 알집 또는 반디집으로 압축풀기
4) train > unsup폴더 삭제
5) aclImdb 폴더를 파이썬 작업폴더내로 복사하기
6) pandas, numpy, matplotlib 라이브러리 import하기
1. 문제정의 및 데이터 수집
- from sklearn.datasets import load_files
- train, test 데이터 reviews_train, reviews_test 변수에 담아주기
2. 데이터 전처리
- 일반 정형화 데이터 : 결측치, 스케일링, 특성공학, 이상치 처리
- 텍스트 데이터 : 오탈자 제거, 띄어쓰기 교정, 이모티콘 수정, 불필요한 글자 제거
- 데이터정형화 : 토큰화, 수치화
- replace함수를 사용하여 데이터 내에 "<br /><br />" 태그를 찾아 b" "로 변경해주기 위해나 코드작성
: text_train = [ txt.replace(b"<br />", b" ") for txt in reviews_train.data]
1. 문장을 띄어쓰기(단어) 기준으로 잘라주는 토큰화
- 나는 / 오늘 / 찜닭을 / 먹었다.
-> 나는, 오늘, 찜닭을, 먹었다.
- 나는 오늘 아메리카노를 먹었다.
-> 나는, 오늘, 아메리카노를, 먹었다.
---> 나는 2개, 오늘 2개, 찜닭을 1개, 아메리카노를, 먹었다 2개
2. 토큰화 : 문장을 띄어쓰기(글자) 기준으로 잘라주는 토큰화
- 나/는 / 오/늘 / 찜/닭/을 / 먹/었/다.
3. n-gram 단위 토큰화
- n개의 연속된 단어를 하나로 취급
예) 러시아 월드컵 ---> 하나의 토큰으로 취급
토큰화 ---> 수치화
BOW(Bag of word) --> 원핫인코딩과 비슷한 의미
: 문장을 단어단위, 글자단위, 형태소단위 등으로 토큰화 한후 중복없이 단어사전 구축
25,000건의 영화 리뷰 데이터에서 단어를 기준으로 토큰화를 진행한후 중복단어를 제거하여 단어사전을 구축하여 단어74,849개의 단어사전이 만들어졌다.
len(movie_count.vocabulary_)
74849
토큰화 후 수치데이터로 변경하기
3. 모델선택, 훈련, 평가
선형 모델 - 특성이 많은(고차원) 데이터에서 성능이 괜찮은 편인 LogisticRegression 모델선택
4. 모델 하이퍼파라미터 튜닝
- CountVectorizer
- min_df : 전체 문서중에 등장해야하는 빈도의 최소치 설정
- max_df : 전체 문서중에 등장해야하는 빈도의 최대치 설정
- n_gram : 토큰을 묶는 숫자 설정
(유니그램-단어1개 , 바이그램-단어2개, 트라이그램-단어3개)
- LogisticRegression
- C(규제) : 선형모델의 가중치를 규제하는 정도 설정
그동안 모델학습은 단일 모델으로 학습을 진행해왔는데 "pipe line" 모델은 2개의 모델을 셋트로 묶어서 동시에 학습을 시킬수 있고 하이퍼파라미터 또한 두개 모델에 동시에 튜닝을 실시 할수 있다.
그동한 여러가지 데이터로 모델링을 해봤지만 "pipe line" 모델은 데이터량도 많고 2개의 모델을 셋트로 학습을 시키다 보니 시간이 가장 많이 걸렸다. 추후엔 튜닝후 모델링을 할때 충분한 시간을 확보하여 진행해야 할것 같다.
현재 20분이 지났는데도 모델학습이 완료되지 않아 하교시간이 다가와 내일 확인해봐야겠습니다.
속성 __ 파라미터 ---> "__" 언더바가 2개이니 잘 체크필요
'countvectorizer__max_df' : [15000, 20000, 23000],
'countvectorizer__min_df' : [3, 5, 7],
'countvectorizer__ngram_range' : [(1,1),(1,2),(1,3)],
'logisticregression__C' : [0.01, 0.1, 1, 10, 100]
스마트인재개발원 : https://www.smhrd.or.kr/
'Learn Coding > AI(인공지능)' 카테고리의 다른 글
텍스트마이닝(Text Mining)-영화 리뷰 데이터#1(스마트인재개발원) (0) | 2021.12.08 |
---|---|
텍스트 마이닝(Text Mining) 개념정리(스마트인재개발원) (0) | 2021.12.06 |
스마트인재개발원 - 전자상거래 물품 배송예측 대회 (0) | 2021.12.06 |
댓글