230106 NLP 1. 텍스트 데이터 다루기

문소정·2023년 1월 6일
0

AIFFEL

목록 보기
66/66

자연어와 프로그래밍 언어

  • 자연어 : 문맥의존 문법(Context-sensitive Grammar)
  • 프로그래밍 언어 : 문맥자유 문법(Context-free Grammar)
    • 컴파일러 구조 : 원시 프로그램 -> (1)렉시칼 분석 -> 구문 분석 -> 의미 분석 -> 코드 생성 -> 목적 프로그램
  • 분산 표현(distributed representation)
    • 임베딩 레이어 : 각 단어가 몇 차원의 속성을 가질지 정의하는 방식
    • 우리가 일일이 정의할 수 없는 어떤 추상적인 속성들이 256차원 안에 골고루 분산되어 표현 => 컴퓨터에게 단어사전이 됨
  • 희소 표현(Sparse representation)
    • 단어를 고차원 벡터로 변환하여 속성값을 임의로 지정하는 방식
    • 적어도 2차원이상의 벡터가 필요
  • 단어간의 유사도 : 코사인 유사도(Cosine Similarity)를 사용
  • OOV(Out-Of-Vocabulary)
  • WordPiece Model
    • SentencePiece : Subword 기반 토큰화
      • Google에서 제공하는 오픈소스 기반 Sentence Tokenizer/Detokenizer
      • BPE와 unigram 2가지 subword 토크나이징 모델 중 하나를 선택해서 사용할 수 있도록 패키징한 것
      • 최근 pretrained model들이 거의 대부분 SentencePiece를 tokenizer로 채용

토큰화(Tokenization)

  • 자연어를 의미 단위로 쪼개는 기법
  • 자연어처리 모델의 성능에 결정적 영향을 주는 요인

토큰화 기법

  1. 공백 기반 토큰화
    • 단점 : 유사한 의미를 지니고 있음에도 전혀 다른 단어로 분류 -> 불필요하게 큰 단어 사전을 가지게 되어 연산량 증가로 이어짐
  2. 형태소 기반 토큰화
    • 형태소 : 뜻을 가진 가장 작은 말의 단위
    • 한국여 형태소 분석기 : KoNLPy 등
  3. Wordpiece Model(WPM)
    • 한 단어를 여러 개의 Subword의 집합으로 보는 방법
    • 구글에서 BPE를 변형해 제안한 알고리즘
  4. Byte Pair Encoding(BPE)
  5. soynlp
    • 한국어를 위한 토크나이저
    • 토크나이저 외에 단어 추출, 품사 판별, 전치리 기능 제공

단어 임베딩

  • 분산 표현을 이용하여 단어 간 의미적 유사성을 벡터화하는 작업
  • word2vec
    • CBOW, Skip-gram
  • fasttext
  • elmo

https://wikidocs.net/22660

0개의 댓글