본문 바로가기
AI/딥러닝

자연어 처리(Natural Language Processing)와 토큰화(tokenization)란?

by 남오공 2022. 5. 4.
728x90

자연어(NLP: Natural Language Processing)란?

  • 자연어는 사람들이 일상적으로 사용하는 언어(자연어)와 인공적으로 만들어진 인공어와 구분하여 부르기 위한 개념이다.
  • 자연어를 통해선 다양한 일을 할 수 있는데 분류, 추론, 독해, 질의 응답, 품사 태깅, 개체명 인식..등이 있다 
  • 이러한 용어들을 자연어 이해(Natural Language Understanding)라고 하며  
  • 자연어 이해를 통해 만들어진 결과물을 자연어 생성(Natural Language Generation)이라 한다.
  • 자연어 처리에서 크롤링 등으로 얻어낸 데이터가 필요에 맞지않게 전처리가 안된 상태라면
    데이터를 사용하고자 하는 용도에 맞춰 
    토큰화, 정제화, 정규화 작업이 필요하다.
간단한 용어 몇 가지들을 정리해보자
말뭉치(Corpus) : 특정한 목적을 가지고 수집한 텍스트 데이터
문서(Document) : 문장(Sentence)들의 집합
문장(Sentence) : 여러 개의 토큰(단어, 형태소 등)으로 구성된 문자열. 마침표, 느낌표 등의 기호로 구분
어휘집합(Vocabulary) : 코퍼스에 있는 모든 문서, 문장을 토큰화한 후 중복을 제거한 토큰의 집합

토큰화(Tokenization)란?

  • 주어진 코퍼스(Copus)에서 토큰이라고 불리는 단위로 나누는 작업을 토큰화라고 한다. 토큰화의 단위는 주어진 상황에 따라 다르지만 일반적으로는 의미있는 단위로 토큰을 정의한다. 
  • 단어, 문장의 토큰화 : 토큰의 기준을 단어로 하는 경우를 단어 토큰화(Word tokenization)라고하며 코퍼스 내에서 문장 단위로 구분하는 작업은 문장 토큰화(Sentence Tokenization)라 한다.  

벡터화(Vectorize)란?

  • 컴퓨터는 자연어를 이해하지 못하기 때문에 컴퓨터가 이해할 수 있도록 벡터를 통해 자연어를 이해하도록 만들어 주어야 하는데 이러한 과정을 벡터화라고 한다.
  • 등장 횟수 기반의 단어 표현으로 하는 TF-IDF, Bag-of-Words 방법이나 
    분포 기반의 단어 표현으로 하는 Word2Vec, fastText, GloVe 방법 등이 예시로 있다.

텍스트 전처리(Text Preporcessing)

  • 텍스트 데이터를 전처리하는 것은 자연어 처리의 대부분을 차지한다는 말이 과언이 아닐정도로 중요하다고 한다.
  • 전처리 방법은 내장 메서드 사용, 정규표현식, 불용어 처리, 통계적 트리밍, 어간 추출, 표제어 추출 등이 있다.
  • 전처리를 해야 하는 이유는 굉장히 많은 이유들이 있는데, 그 중 대표적인 예시를 들자면 차원의 저주가 있다.
차원의 저주(Curse of Dimensionality)
데이터의 학습을 위해 차원이 증가하면서(=변수의 수가 증가) 학습데이터 수가 차원의 수보다 적어져 성능이 저하하는 현상(모델의 성능이 안좋아진다는 것을 의미)
특성(feature)의 개수가 선형적으로 늘어날 때 동일한 설명력을 가지기 위해 필요한 *인스턴스(instance)의 수는 지수적으로 증가한다. 
간단하게 말하여 데이터의 학습을 위해 용량이 커지면서 불필요한 샘플이 많아지는 것을 뜻한다.
즉 관측치 수보다 변수의 수가 많아지면 발생하는 문제이다.

 

*인스턴스(Instance) : 예측하려는 대상물(object) 

 

 

댓글