본문 바로가기
ML 관련/자연어 처리 관련

NLP(Natural Language Process) - 필수 용어 및 개념 정리(1)

by 탶선 2024. 1. 15.
반응형

자연어 처리

  • 사람이 이해하는 자연어를 컴퓨터가 이해할 수 있는 값으로 변환하는 과정
  • 컴퓨터가 이해하는 값을 사람이 이해할 수 있도록 다시 바꾸는 과정까지 포함

 

한국어 자연어 처리의 어려움

  • 모호성
    • ex) 차를 마시러 공원에 가는 차 안에서 나는 그녀에게 차였다.
  • 띄어쓰기가 지켜지지 않는다
    • ex) 띄어쓰기를하지않아도읽을수있습니다.
  • 교착어
    • 어간과 어미가 명백하게 분리되는 언어
    • 하나의 형태소가 하나의 문법적인 기능을 하는 언어
      • ex) '그'라는 단어 하나에도 '그가', '그를', '그와', '그는'과 같이 다양한 조사가 '그'라는 글자 뒤에 띄어쓰기 없이 바로 붙게 됨
      • 같은 단어임에도 서로 다른 조사가 붙어서 다른 단어로 인식이 되면 자연어 처리가 힘들고 번거로워지는 경우가 많음
      • 어간에 접사가 붙어, 단어를 이루고 의미와 문법적 기능이 정해짐
    • 같은 정보를 다르게 표현하기(Paraphrase)
      • ex)
        • 문장 1 : 여자가 김치를 어떤 남자에게 집어 던지고 있다.
        • 문장 2 : 여자가 어떤 남자에게 김치로 때리고 있다.
        • 문장 3 : 여자가 김치로 싸대기를 날리고 있다.
        • 문장 4 : 여자가 배추 김치 한 포기로 남자를 때리고 있다.

embedding(임베딩)

  • 임베딩: 자연어를 벡터로 바꾸는 과정 및 결과
  • 역할
    • 단어 / 문장 간 관련도 계산
    • 의미적 / 문법적 정보 함축
    • 전이 학습(Transfer learning)
  • 선택 해야 하는 embedding모델
    1. **Word2Vec, GloVe(**단어 기반 임베딩 모델)
      • 고전적 모델
      • 의미론적 유사성 잘 찾음
      • 문맥상의 뉘앙스는 잘 못 찾음
      • 계산량이 적음
      • 일반 텍스트 요약 시 적합
      • 기술적인 내용에 부적합
    2. Doc2Vec (문장 임베딩)
      • 문장 또는 문서 수준에서 의미를 포착
      • 문장 구조가 복잡하고 의미가 있을 때 유용
      • 추출적 요약에 자주 사용 됨
    3. BERT, GPT-2, RoBERTa와 같은 transformer
      • 깊은 맥락 관계 포착 및 맥락, 상호 참조 및 기타 언어적 뉘앙스 이해 필요 작업에 탁월
      • 많은 양의 컴퓨팅 처리 능력과 메모리 필요 (they are computationally intensive.)

 

tokenizer(토크나이저)

  • 토큰 : 문장을 일정한 의미가 있는 가장 작은 정보 단위
    • ex)
      • BOS("</s>") : 문장의 시작을 나타내는 token
      • EOS("</s>") : 문장의 끝을 나타내는 token
      • PAD("<pad>) : 동일한 batch 내에서 입력의 크기를 동일하게 하기 위해서 사용해는 token
      • UNK(”unk_token”) : 모르는 단어를 나타내는 token
      • SEP(”seperate” token”) : 두 개의 시퀀스를 나눠주는 token
  • 토크나이저 : 문장 형태의 데이터를 토큰 단위로 나누는 것
    • 문장 형태의 데이터 처리를 위한 가장 기본적이고 중요한 작업
    • 언어의 특성과 문법에 따라 다양한 방법이 필요
    • 한글과 영어는 구성 요소가 다르기 때문에 같은 토크나이징 방법 사용 X
      • 한글 - 조사를 제외
      • 영어 - apostrophe를 원래 의미로 전환해주는 등의 작업 필요
  • 대표적 라이브러리
    • KoNLPy(코엔엘파이)
      • 대표 함수 - 아래 3개의 형태소 분석기 동일하게 사용
        • morphs(phrase) :
          • 인자로 입력한 문장을 형태소 단위로 토크나이징
          • 토크나이징된 형태소들은 리스트 형태로 반환
        • nouns(phrase) :
          • 인자로 입력한 문장에서 품사가 명사인 토큰 추출
        • pos(phrase, flatten=True) :
          • POS tagger라 부르며, 인자로 입력한 문장에서 형태소 추출 후 품사 태깅
          • 추출된 형태소와 그 형태소의 품사가 튜플 형태로 묶어 리스트로 반환
        • sentences(phrase) :
          • 인자로 입력한 여러 문장을 분리해주는 역할
          • 분리된 문장은 리스트 형태로 반환
      • Kkma(꼬꼬마) 형태소 분석기
        • 장점 :
          • 분석 품질 우수
          • 지원하는 품사 수 다양
        • 단점 :
          • 느린 분석 속도
          • 사용자 사전에 추가한 복합 명사 분석 불완전
      • Komoran(코모란)
        • 장점 :
          • 자소가 분리된 문장, 오탈자에 강함
          • 사용자 사전 관리 용이
        • 단점 :
          • 적당한 분석 품질과 분석 속도
      • Okt
        • 장점 :
          • 매우 빠른 분석 속도
          • 오타 수정과 정규화 기능 지원
        • 단점 :
          • 사용자 사전 관리가 어렵고 용언 분석에 일관성 부족
            • 용언 : 문장에서 서술어의 기능을 하는 동사와 형용사를 아울러 이르는 말
반응형

댓글