728x90
[NLP] 제목 - 강의 정리
해당 게시물은 '박조은'강사님의 인프런 강의, [NLP] IMDB 영화리뷰 감정 분석을 통한 파이썬 텍스트 분석과 자연어 처리를 정리한 게시글입니다.
Word2Vec 의 경우 단어간의 문맥을 함께 고려하기때문에 불용어 처리(StopWord)는 False 해준다. (불용어도 함께 고려하여 모델 학습)
데이터 전처리
Word2Vec 모델을 학습
전처리를 거쳐 파싱된 문장의 목록으로 모델을 학습시킬 준비가 되었다.
Gensim
젠심 사이트에 가면 튜토리얼 해볼 수 있당
Word2Vec 모델의 파라메터
- 아키텍처 : 아키텍처 옵션은 skip-gram (default) 또는 CBOW 모델이다. skip-gram (default)은 느리지 만 더 나은 결과를 낸다.
- 학습 알고리즘 : Hierarchical softmax (default) 또는 negative 샘플링. 여기에서는 기본값이 잘 동작한다.
- 빈번하게 등장하는 단어에 대한 다운 샘플링 : Google 문서는 .00001에서 .001 사이의 값을 권장한다. 여기에서는 0.001에 가까운 값이 최종 모델의 정확도를 높이는 것으로 보여진다.
- 단어 벡터 차원 : 많은 feature를 사용한다고 항상 좋은 것은 아니지만 대체적으로 좀 더 나은 모델이 된다. 합리적인 값은 수십에서 수백 개가 될 수 있고 여기에서는 300으로 지정했다.
- 컨텍스트 / 창 크기 : 학습 알고리즘이 고려해야하는 컨텍스트의 단어 수는 얼마나 될까? hierarchical softmax 를 위해 좀 더 큰 수가 좋지만 10 정도가 적당하다.
- Worker threads : 실행할 병렬 프로세스의 수로 컴퓨터마다 다르지만 대부분의 시스템에서 4에서 6 사이의 값을 사용하다.
- 최소 단어 수 : 어휘의 크기를 의미있는 단어로 제한하는 데 도움이 된다. 모든 문서에서이 여러 번 발생하지 않는 단어는 무시된다. 10에서 100 사이가 적당하며, 이 경진대회의 데이터는 각 영화가 30개씩의 리뷰가 있기 때문에 개별 영화 제목에 너무 많은 중요성이 붙는 것을 피하기 위해 최소 단어 수를 40으로 설정한다. 그 결과 전체 어휘 크기는 약 15,000 단어가 된다. 높은 값은 제한 된 실행시간에 도움이 된다.
코드
모델 저장
모델 결과 탐색
- 유사도가 없는 단어 추출
man woman child kitchen
단어에서 Kitchen 이라는 단어는 나머지 단어들과 달리 유사도가 없음
나라 이름과 도시 이름 (베를린은 나라가 아님)
- 가장 유사한 단어를 추출
스태밍 된 단어로 추출되는 모습을 볼 수 있다
Word2Vec으로 벡터화 한 단어를 t-SNE 를 통해 시각화
피쳐값은 총 11986개임을 알 수 있음
각 단어가 어디 위치하는지 xy좌표로 찍는다
단어의 좌표를 시각화해본다
마이클 - 잭슨 과 같이 있는 것,,, 등 단어 주변을 보면 유사한 것들 끼리 묶인 것을 볼 수 있다..
728x90