상세 컨텐츠

본문 제목

[EXPLORATION 4] 작사가 인공지능 만들기

AIFFEL👩🏻‍💻

by 올앤지 2022. 1. 13. 15:36

본문

Intro: NLP

  • GPT-2, GPT-3
  • NLP에서 중요한 것은 인공지능이 문장을 이해하는 방식, 작문을 학습하는 법

 

시퀀스 Sequence

  • Python: 값이 연속적으로 이어진 자료 총칭(sequence type)
  • 텍스트, 시계열 수치 등도 모두 sequence다.

📌 인공지능이 예측하려면 sequence 요소들 사이의 연관성이 있어야함. (막무가내로 예측할 순 없음!)
but, 문법으로 예측하는 건 한계(규칙을 일일이 다 입력하기 어렵고, 예외도 너무 많다)
따라서 통계에 기반한 방식으로 접근한다!



순환신경망 RNN

  • output 값이 다시 input이 되는 순환의 구조

 

sentence = " 나는 밥을 먹었다 "

source\_sentence = "<start>" + sentence  
target\_sentence = sentence + "<end>"

print("Source 문장:", source\_sentence)  
print("Target 문장:", target\_sentence)

 

즉, n-1번째까지의 단어 sequence를 x_train으로, 그리고 마지막 n번재 단어를 y_train으로 하는 데이터셋으로 학습을 시키면 언어 모델을 만들 수 있다.



예제: 연극 대사를 만드는 모델

 

 

 

토큰화(Tokenize): 문장을 단위로 나누는 것

 

여기서는 단어를 단위로 토큰화할 것이다.

 

strip() 함수

근데 왜... strip해도 단어 간의 공백은 남아있지????? 왜죠????

..한참 혼란스러워 하다가 찾아봤더니 strip()함수는 아무런 인자를 주지 않았을 땐 문자열 앞 뒤의 공백만 제거해 준다.
즉 "I love you"라는 문자열이 있으면 strip()을 해도 Iloveyou 이렇게 나오는 게 아니다.
다만 " I love you "라는 문자열을 strip()하면 "I love you"가 되는 것!

 

(분명 펀더먼털 노드에서 배웠을 건데.. 그새 까먹다니! 오늘도 문어보다 멍청한 하루)

 

아무튼 이제 문장 데이터를 토큰화했으니 정제된 데이터셋을 구축해준다.

 

 

관련글 더보기