목록DL/NLP (28)
rueki

본문은 https://wikidocs.net/21668 을 참고하여 작성한 글입니다. 언어 모델은 자연어 생성의 기반으로, 단어의 시퀀스의 확률을 예측하는 모델이다. 음성 인식, 기계 번역, OCR, 검색어 자동 완성 등과 같은 것은 전부 언어 모델을 통해 이루어진다. 만드는 방법으로는 아래와 같다. 1) 통계를 이용한 방법 2) 인공 신경망을 이용한 방법 언어 모델은 문장의 확률을 예측하는 일이다. 예측에 앞서, 단어들이 주어졌을 때 다음 단어가 나올 확률을 예측해야 한다. 그래서 문장의 확률은 왜 예측해야 할까? 예를 들어서 한 번 살펴보자 a. 기계번역(Machine Translation) P(나는 버스를 탔다) > P(나는 버스를 태운다) :언어 모델은 좌측의 문장의 확률이 더 높다고 판단 b. ..
본문은 https://wikidocs.net/22647 참고해서 작성한 글입니다. 원-핫 인코딩은 문자를 숫자로 바꾸는 기법 중 하나이며, 단어를 표현하는 가장 기본적인 방법이다. 원-핫 인코딩을 하기 앞서 단어집합을 만들어야하는데, 단어 집합은 서로 다른 단어들의 집합으로서, 중복값이 ㅇ없어야 한다. 단어집합의 크기를 벡터의 차원으로 하고, 표현하고 싶은 단어의 인덱스에 1의 값을 부여하고, 다른 인덱스에는 0을 부여하는 단어의 벡터 표현 방식이다. 1) 각 단어에 고유 인덱스 부여(정수 인코딩) 2) 표현하고자 하는 단어의 인덱스 위치에 1을 부여, 나머지 위치에는 0을 부여 한국어 문장에 원-핫 인코딩 진행을 해보자 from konlpy.tag import Okt okt = Okt() token =..
본문은 https://wikidocs.net/31766 를 참고해서 작성한 글입니다. 컴퓨터는 텍스트보다는 숫자를 처리하기가 더 쉽다. 그래서 텍스트를 숫자로 바꾸는 것이 필요하며, 중요하다. 바꾸기 전에, 먼저 고유 숫자로 매핑시키는 작업이 필요할 때가 있다. 1000개의 단어가 있으면, 각 단어에 0부터 999까지 인덱스 번호를 부여하는 것이다. 인덱스 부여 기준은 보통 단어에 대한 빈도수로 정렬한 뒤에 부여한다. from nltk.tokenize import sent_tokenize text = "A barber is a person. a barber is good person. a barber is huge person. he Knew A Secret! The Secret He Kept is hu..
본문은 https://wikidocs.net/22592 를 참고해서 작성한 글입니다. 머신 러닝을 이용한 자연어 처리의 목표는 기계가 사람만큼, 또는 사람 이상의 성능을 내길 기대하는 것이다. 그러나 기계에게 모든 단어를 다 알려주고 원하는 결과를 기대하기에는 무리이다. 그래서 단어 분리는 기계가 아직 배운적 없는 단어라도 배운 것처럼 대처할 수 있도록 도와주는 방법이다. 기계 번역 등, 주요 전처리로 사용되고 있다. 기계가 알고있는 단어들의 집합을 Vocabulary(단어 집합)이라고 한다. 기계가 못 배운 단어들은 OOV(Out Of Vocabulary) 또는 UNK(Unknwon word)라고 한다. 왜 단어 분리를 하는가? 단어분리(Subword Segmentation)는 단어를 여러 단어로 분리..