본문 바로가기

자연어처리10

[NLP] FastText란? FastText란? Word Embedding 의 또 다른 방법이다. Word2Vec으로 돌아가보면 주어지는 corpus를 기반으로 학습을 진행한다. 문제는, 학습되지 않은 단어를 던져주면 Word2Vec에는 에러가 발생한다. 학습 되지 않은 단어에 대해 어떻게 보정을 해야할까에 대해 생각해 볼 수 있다. 이에 대한 보정을 고려한 것이 바로 페이스북에서 개발한 FastText이다. FastText가 학습하는 방법. FastText가, Word2Vec과 가장 큰 차이를 보이는 지점으로, FastText는 단어를 다시 n-gram으로 인식하여, 단어를 또 쪼개게 된다. (1) 단어의 앞에 를 추가한다. (2) 이 단어를 n-gram 값으로 쪼갠다. (3) 추가로, 전체 단어에 를 추가한 토큰을 추가한다. E.. 2022. 4. 30.
[NLP] ELMo란 무엇일까? ELMo가 나오게 된 배경은? Glove나 Word2Vec의 경우는 단어간의 위치나 동시 발생 빈도를 고려하여 임베딩을 해왔다. 이렇게 하면, 하나의 토큰에는 하나의 임베딩 벡터가 부여된다. 하지만 문맥을 잘 반영하기 위해서는 "동음이의어"에 대해서도 잘 고려해야 할 것이다. 현재까지의 방법론으로는 "동음이의어"에도 같은 임베딩 벡터를 출력하게 된다. ELMo의 구체적인 절차 ELMo는 pre-trained된 모델로, 우선 전체 문장을 활용하여 학습한다. 또한, 이미 학습된 양방향 LSTM 을 이용하여, 각 단어의 임베딩 벡터를 생성한다. 문장을 넣으면, 문장의 단어별로 임베딩 벡터를 뱉어주는 구조가 된다. 그러면 엘모가 어떻게 양방향 LSTM을 쓰고 있는지 확인해보자. 기본적으로, ELMo는 두 개의 .. 2022. 4. 28.
[NLP] N-gram, Word2Vec, Glove의 간단 개요. * 풀잎스쿨 사전학습을 위한, 이론 파악. * 각각에 대한 자세한 내용 보다도, 개괄적으로 어떤 부분이 이것을 만들었고 주요 모델의 특징에 대해 이해하고자 한다. NLP에서의 희소문제 등장 확률을 기반으로 하는, 통계적 언어 모델에서 만일 특정 단어나 어구가 corpus에 등장하지 않는다면, 그 확률은 당연히 0이 될 것이다. 문제는 수치적 확률은 0인데, 존재할 법한 단어나 문장이라면? 예측 성능에 문제가 될 것이다. 이에 대한 해결책에 대해 고민해야 할 것이다. 이를 개선할 수 있는 방법을 고려해보려고 한다. N-gram N-gram도 횟수를 사용하여 단어를 표현하는 방법이다. N-gram은 한 단어 이상의 단어 시퀀스를 분석 대상으로 삼게 된다. Ex) This is a sentence면 2-gra.. 2022. 4. 27.
[NLP] Word Embeddings - Basics * 풀잎스쿨 3주차 대비! 사전학습 Embedding이란? - 자연어를 컴퓨터가 이해할 수 있는 숫자 형태로 변환. 임베딩의 여러 방법 1. 희소 표현 기반 임베딩 : One-hot Encoding 2. 횟수 기반 임베딩 : TF-IDF 3. 예측 기반 임베딩 : Word2Vec, FastText 4. 횟수/예측 기반 임베딩 : Glove * 그 외 추가로, ELMO. * 좋은 임베딩이란? - 의미론적인 잘 차이를 보존할 수 있는지, - 유사한 관계에, 유사한 벡터 방향을 보여주는지 등등.. * One-hot Encoding의 단점 (1) 하나의 요소만 1 값을 가지고 나머지는 0을 가지기에, 내적을 구하면 무조건 모두 0이다. -> 단어끼리의 관계성을 표현할 수 없다. (2) 차원의 저주의 문제가 발생.. 2022. 4. 25.
[자연어] BERT 모델, 찍먹해보자. 참고자료 [1] https://ebbnflow.tistory.com/151 [2] https://wikidocs.net/115055 BERT란? 구글에서 만든 NLP 처리 기술이다. BERT는 기본적으로 '사전 훈련 언어 모델'이다. 단어를 Embedding하는 것이 NLP에서 중요한 문제인데 대표적인 방법으로는 - TF-IDF Vectorizer - Count Vectorizer - Word2Vec 이런 것들을 예시로 들 수 있다. TF-IDF, Count는 단어의 빈도수에 따른 단일 단어만 고려한다면, Word2Vec은 주변 단어, 즉 문맥을 고려할 수 있는 벡터화이다. 그러나 Word2Vec 역시 동음이의어 등에는 취약하다는 단점을 가지고 있다. BERT는 다른 모델을 쓰기 전, 사전 훈련을 통해 .. 2021. 9. 6.
[자연어] 트위터 문자 분류 문제를 통한 자연어 처리 실습(1) 트위터 문자 분류 문제를 통한 자연어 처리 실습. 캐글의 여러 노트북을 참고하여 따라해보았고, 개인적으로 진행 가능한 부분을 추가해보았다. 문제 설명 문제 출처 : https://www.kaggle.com/c/nlp-getting-started 트위터의 메세지를 보고, 해당 메시지가 재난에 관련된 내용인지 아닌지를 분류하는 간단한 문제이다. 먼저 간단한 전처리 이후, 나이브 베이즈를 활용하여 분류하는 방법을 알아보자. 탐색 및 전처리 과정 Train set 확인 댜음과같이 각 메세지별로 키워드와 작성 위치, text 내용이 적혀있다. 1일 경우 재난 관련 내용이, 0일 경우 재난이 아닌 내용이 담겨있다는 의미이다. 1과 0의 비율 확인을 해보면 다음과 같다. 데이터의 불균형은 크지가 않아, 크게 문제되지.. 2021. 9. 1.