[Aiffel] 아이펠 48일차, 49일차 개념 정리 및 회고

Gongsam·2022년 3월 17일
0

48일차

1. 텍스트 데이터 다루기

키워드

  • 토큰화
    • 공백 기반
    • 형태소 기반
    • Wordpiece
  • 유사도 계산: 코사인 기반
  • Distributed representation

1) 자연어와 인공어

자연어인공어
context sensitive languagecontext free language
context sensitive grammarcontext free grammar
  • 자연어를 다루는 것이 어려운 이유: parshing 에서의 어려움
  • 자연어 처리에서 중요한 것
    • 워드 벡터: 단어 의미를 의미 벡터 공간에 매핑하는 방법
      • 의미를 파악함으로써 파서를 이용해서 해결할 수 없었던 과정의 정확한 처리를 가능하게 함.
    • 토큰화: 자연어를 의미 단위로 쪼개는 기법
      • 토큰화에 따라 같은 문장으로 다른 워드 벡터 리스트를 생성할 수도 있음

2) Distributed representation

  • 단어를 벡터로 표현하기 위해선 고차원 벡터가 필요함
    • 단어 벡터의 차원을 결정
      # 100개의 단어를 256차원의 속성으로 표현
      embedding_layer = tf.keras.layers.Embedding(input_dim=100, output_dim=256)
  • 고차원 벡터 사이 유사도 판단: Cosine Similarity

3) 토큰화 기법

  1. 공백 기반
  2. 형태소 기반
    한국어 형태소 분석기 성능 비교

    공통 문제: OOV(Out-Of-Vocabulary)

  • input된 단어를 기반으로 단어 벡터 리스트를 생성하기 때문에 전혀 새로운 단어는 unknown token으로 치환해버리는 문제
  • Byte Pair Encoding(BPE): 압축을 위해 사용된 알고리즘. 이를 토큰화에 적용해 자주 등장하는 문자 쌍을 합쳐 접두어 / 접미어의 의미를 보고자 한 방법
  1. Wordpiece Model
  • WPM: 하나의 단어를 여러 subword의 집합으로 보는 방법
  • BPE와의 차이: _ 추가 여부, 빈도수 기반이 아닌 가능도를 증가시키는 방향으로 기능

4) 토큰 유사도 연산

  1. Word2Vec
  • 문장 안에 동시에 등장하는 단어의 경우 연관성이 있다는 전제를 가지고 있음
  • CBOW(Continuous Bag of Words)와 Skip-Gram 방식이 있음
  1. FastText
  • 텍스트의 최소 단위는 어휘를 구성하는 글자

공통 문제: 동음이의어 처리 불가

  • 해결: Contextualized Word Embedding
  1. ELMo - the 1st Contextualized Word Embedding

2. 회고

Going Deeper의 시작일이다. CV와 NLP로 나뉜 시점인데, 고민하다 그냥 처음 과정을 시작할 때의 생각대로 NLP를 선택했다. CV도 재밌긴 했는데 원래부터 문법 같은 언어학에도 관심이 있어서 NLP를 선택했다. 이렇게 보면 이제까지 배운 것들이 아예 쓸모없는 것들은 아니었구나 싶은 생각이 들기도 한다. 오늘은 NLP에서 쓰이는 전처리 기법에 대해 배웠는데 솔직히 어떨 때 어떤게 쓰인다 정도만 기억해도 좋을 거 같다. 지금 그냥 Word2Vec이 있다..만 기억날 거 같은 불안함이 있기 때문에.. 원리는 나중에도 나올테니 그때 가서 익히는 것으로 하자. 그땐 정말 미루면 안된다..

49일차

1. 단어 사전 만들기

1) 토큰화

  1. 한국어 토큰화를 진행할 땐 공백기반을 사용하면 안됨

2. 회고

Going Deeper 1일차에 배운 내용을 바탕으로 실습을 진행했다. 내용을 정리하려고 했는데 실습 페이지를 작성하는 데에 신경 쓰느라 따로 정리하진 않았다. 내일 오전시간까지 마무리라고 해서 아마 그때까지 시간을 다 쓸 거 같다.

profile
🐬 파이썬 / 인공지능 / 머신러닝

0개의 댓글