본문 바로가기

그냥, 코딩

[개발자를 위한 머신러닝&딥러닝] 임베딩을 사용한 감성 프로그래밍

반응형

지난 포스팅

https://jamjamzo.tistory.com/124

 

[개발자를 위한 머신러닝&딥러닝] 자연어 처리 소개

지난 포스팅 https://jamjamzo.tistory.com/123 [개발자를 위한 머신러닝&딥러닝] 텐서플로 데이터셋으로 공개 데이터셋 사용하기 지난 포스팅 https://jamjamzo.tistory.com/122 [개발자를 위한 머신러닝&딥러닝]..

jamjamzo.tistory.com

 

참고

https://github.com/rickiepark/aiml4coders

 

GitHub - rickiepark/aiml4coders: <개발자를 위한 머신러닝&딥러닝> 도서의 코드 저장소

<개발자를 위한 머신러닝&딥러닝> 도서의 코드 저장소. Contribute to rickiepark/aiml4coders development by creating an account on GitHub.

github.com

 

6장 임베딩을 사용한 감성 프로그래밍

 5장 내용은 단어를 토큰으로 인코딩하는 방법이다. 신경망 훈련에 사용 가능한 데이터 형태를 갖추도록 적절하게 시퀀스에 패딩을 추가하거나 길이를 줄였다. 하지만 모델링을 하는 방법은 아니었다. 토큰별로 나누어 인코딩을 했지만, 단어의 의미를 절대적인 수치로 인코딩하는 방법은 없다

 하지만, 단어의 의미를 상대적인 수치로 인코딩하는 고차원 공간의 벡터로 단어를 표현하는 임베딩에 대해 다룬다. 말뭉치에서 단어가 사용되는 방식을 기반으로 벡터의 방향을 학습시킬 수 있다. 

  • 사용하게 될 데이터셋: Scrcasm 데이터셋

 

 


6.1 단어의 의미 구축하기

 고차원 임베딩 벡터를 만들기 전 간단한 예제를 통해 숫자에서 의미를 유도하는 방식 시각화

6.1.1 간단한 방법: 양수와 음수

  • 빈정거리는 헤드라인: 각 단어마다 1을 부여
    • Christian bale given neutered male statuette named oscar
    • (크리스천 베일이 오스카라는 중성의 남성 조각상을 받았다.)
  • 평범한 헤드라인: 각 단어마다 -1을 부여
    • Gareth bale scores wonder goal against germany.
    • (개러스 베일이 독일을 상대로 놀라운 골을 넣었다.)
  • 중복되는 단어: 0, 빈정거리는 헤드라인에만 있는 단어: 1, 평범한 헤드라인에만 있는 단어: -1

 

6.1.2 조금 더 어려운 방법: 벡터

  • 6.1.1에 나온 방법으로 보면 컴퓨터가 개별 단어의 의미를 이해하지 못한다.
  • 차원을 증가하는 방법?
    • 제인 오스틴의 『오만과 편견』에 나오는 등장인물을 성별과 귀족 차원으로 생각해보자. 
    • x축: 성별
    • y축: 귀족
    • 벡터의 길이: 각 등장인물의 재산

출처: [개발자를 위한 머신러닝&딥러닝] 6장 임베딩을 활용한 감성 프로그래밍

 

※ 나머지 내용은 colabortory notebook을 참고하십시오. 

https://colab.research.google.com/drive/14bgWd-NXHveDI5UKdIHtvk0MhG-W_Zdx?usp=sharing 

 

개발자를 위한 머신러닝&딥러닝_6장 임베딩을 사용한 감성 프로그래밍.ipynb

Colaboratory notebook

colab.research.google.com

 

반응형