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

2. 자연어처리 - 토큰화, 벡터화, TF-IDF

자연어 처리를 위한 전처리 과정은, 일반적인 데이터 형식에서 쓰이는 정수, 실수, 문자열의 전처리 과정과 차이가 있다. 정수, 실수로 이루어져있는 데이터프레임을 다룬다고 하면, 보통 결측값을 채워주고, 정규화 혹은 표준화를 하고, 그 외에 특성 공학을 이용하여 차원을 확장하거나 축소할 것이다. 문자열이라면 원 핫 인코딩을, 범주형 데이터라면 ordinal 인코딩을 또 할 수 있을 것이다. 자연어는 다르다. 문장으로 이루어진 데이터를 처리하기 위해서는, 각 단어들을 벡터 공간 안에 할당해야 한다. 그렇다고 해서, '나는 자연어 처리를 하고 있습니다.' 라는 문장을 ['나는', '자연어', '처리를', '하고', '있습니다']와 같이 할당해서는 안되는데, 내가 이해한 바로는 그 이유는 두 가지가 있다. 첫째..

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

우리가 일상에서 사용하는 자연어는 컴퓨터 프로그래밍 언어와 다르다. 컴퓨터의 모든 정보는 0과 1, 이진화된 수로 저장된다. 컴퓨터의 언어 또한 이것을 수학적으로 풀어갈 것을 염두하고 설계된다. 하지만 사람의 언어는 그렇지 않다. 우리가 구사하는 언어, 즉 자연어에는 C나 Python같은 컴파일러나 인터프리터가 없다. 자연어는 사람 간 정보를 공유하기 위해 쓰인다. 따라서, 컴퓨터가 자연어를 처리할 수 있도록 하기 위해서는, 기술이 필요하다. 그 기술이 NLP, Natural Language Processing이다. 이 NLP 모델은, 흔히 '데이터'하면 떠올리는 정수, 혹은 실수 형의 데이터를 사용하지 않는다. 물론 개별 단어들을 토큰화하고 정수 인코딩(대표적으로 one hot encoding)을 통한..