[NLP]자연어 처리 흐름

지윤곽·2021년 1월 26일
0

NLP

목록 보기
2/6
  • 자연어 처리(NLP)
    = 자연어 이해(NLU):text->meaning + 자연어 생성(NLG):meaning->text

<자연어 처리 순서>
1. data & task - 감정분석, 요약, 기계번역, 질문응답, 품사예측...
2. Tokenization
3. Word Embedding
4. Model

1. data & task

data : 전자상거래 검색어 데이터 / task : 워드 임베딩으로 검색어를 feature화 하여 기존의 추천시스템의 성능을 향상시키기

2. Tokenization : 문자->숫자

  • unique한 Token에 index를 지정함.(띄어쓰기로 Token 구분)

Q. 띄어쓰기만으로 기계가 자연어를 인식할 수 있나? -> NO

문제점. OOV(Out of Vocabulary) : 내가 만든 사전에 해당 단어가 없는 경우
1. 없는 단어로 처리 2. 시전을 풍부하게 만듬 (이미 만들어 놓은 말뭉치 가져다 쓰기)

문제점. 띄어쓰기보다 더 효율적인 방법 필요 (특히 한글에서는 띄어쓰기 만으로 Token 만들 수 없음)
1) Character based Tokenization : 글자(ㄱ-ㅎ, 가-힣)를 토근으로
=> 문제점. 단어 의미 학습이 어려움
2) n-gram Tokenization : 글자보다는 긴 형태의 Token
=> 문제점. 1. 쓸모없는 조합이 많음(Token 사전의 크기가 커짐) 2. 한국어의 경의 어미 변화가 매우 다양함(의미는 비슷하지만 다른 토근이 많음)
> bi-gram 예시
3) BPE(Byte Pair Encoding) : 연속되는 패턴 치환 (n-gram의 문제점 해결 )

3. Word Embedding

1) 원-핫 인코딩
2) Frequency-based method (BoW : Bag of Words)
: 원-핫 인코딩 + Token 등장횟수 (TF: Term-Frequency=단어빈도를 이용한 방식)
TF-IDF : 쓸모없이 많이 나오는 단어 처리
=> 문제점. 단어의 순서 무시
3) Dense Representation : Word2Vec(관계를 연산으로 설명할 수 있는 벡터)
1. CBOW : Context->target (모든 Token의 Embedding Vector를 합해 하나의 hidden layer 만듬 -> 한번의 학습)
2. Skip-gram : target->Context (여러번의 학습-> 더 좋은 성능)
+Negative Sampling

4. Model

RNN, LSTM, GRU, BERT

profile
아는게 힘이다

0개의 댓글