데이터 사이언스/자연어 처리

1. 자연어처리(NLP) 입문하기

내일의승기 2022. 6. 28. 22:39

우리가 일상에서 사용하는 자연어는 컴퓨터 프로그래밍 언어와 다르다.

컴퓨터의 모든 정보는 0과 1, 이진화된 수로 저장된다. 컴퓨터의 언어 또한 이것을 수학적으로 풀어갈 것을 염두하고 설계된다.

하지만 사람의 언어는 그렇지 않다. 우리가 구사하는 언어, 즉 자연어에는 C나 Python같은 컴파일러나 인터프리터가 없다.

자연어는 사람 간 정보를 공유하기 위해 쓰인다.

따라서, 컴퓨터가 자연어를 처리할 수 있도록 하기 위해서는, 기술이 필요하다. 그 기술이 NLP, Natural Language Processing이다.

 

이 NLP 모델은, 흔히 '데이터'하면 떠올리는 정수, 혹은 실수 형의 데이터를 사용하지 않는다.

물론 개별 단어들을 토큰화하고 정수 인코딩(대표적으로 one hot encoding)을 통한 벡터화를 하지만,

그 전에 먼저 단어 형태소를 어떻게 나눌 것인지, 어떠한 단어에 가중치를 둘 것인지, 몇 개의 단어로 묶어서 중요도를 볼 것인지 등을

처리해야 한다.

 

이렇게 Tokenizaion, Vectorization, 이후 단어 사이의 관계를 Embedding하고 나면, 그 이후에 비로소

자연어 학습 모델을 만들 수가 있게 된다.

 

아직 그 전체 과정을 제대로 숙지하지 못했고, 그 과정에서 나오는 tf-idf, n-gram, LDA, BoW, 유사도 등등,

등장하는 모든 단어들이 그저 생경하기만 하다.

 

따라서, 이 카테고리 내에서는 자연어 처리의 과정과, 그 안에서 사용되는 기법, 그리고 그러한 기법이 왜 사용되는지, 다른 좋은 대안은 없는지 등을 공부하며 정리하고자 한다.