Pytorch로 시작하는 딥러닝 입문(09-02. 텍스트 데이터의 정제와 정규화)

2024. 3. 26. 22:50딥러닝 모델: 파이토치

코퍼스에서 용도에 맞게 토큰을 분류하는 작업을 토큰화(tokenization)이라고 하며, 토큰화 작업 전, 후에는 텍스트 데이터를 용도에 맞게 정제(cleaning) 및 정규화(normalization)하는 일이 함께한다. 정제 및 정규화의 목적은 다음과 같다. 

 

1. 정제(cleaning): 갖고 있는 코퍼스로부터 노이즈 데이터를 제거한다. 

2. 정규화(normalization): 표현 방법이 다른 단어들을 통합시켜서 같은 단어로 만든다. 

 

정제 작업은 토큰화 작업에 방해가 되는 부분들을 배제시키고 토큰화 작업을 수행하기 위해서 토큰화 작업보다 앞서 이루어지기도 하지만, 토큰화 작업 이후에도 여전히 남아있는 노이즈들을 제거하기위해 지속적으로 이루어지기도 한다. 

 

♣ 규칙에 기반한 표기가 다른 단어들의 통합

 

같은 의미를 갖고 있음에도 표기가 다른 단어들을 하나의 단어로 정규화할 수 있다. 예를 들어 USA와 US는 같은 의미를 가지므로 하나의 단어로 정규화할 수 있다.

 

 

♣ 대, 소문자 통합

영어권 언어에서 대, 소문자를 통합하는 것은 단어의 개수를 줄일 수 있는 정규화 방법 중 하나이다. 대부분의 글은 소문자로 작성되기 때문에 대, 소문자 통합 작업은 대부분 대문자를 소문자로 변환하는 작업으로 이뤄진다. 

 

모든 토큰을 소문자로 만드는 것은 아니다. US와 us 같은 경우, 서로 다른 의미를 가지고 있다. 조건에 따라 대문자의 일부만 소문자로 변환시키는 방법도 있다.

 

예) 문장의 맨 앞에 나오는 단어의 대문자만 소문자로 바꾸고 다른 단어들은 대문자로 두기

 

 

♣ 불필요한 단어 제거

불필요한 단어들을 제거하는 방법으로는 불용어 제거, 등장 빈도가 적은 단어, 길이가 짧은 단어들을 제거하는 방법이 있다. 불용어 제거는 다음 챕터에서 자세하게 다루고, 여기서는 등장 빈도가 적은 단어와 길이가 짧은 단어를 제거하는 경우에 대해서 설명한다. 

 

1. 등장 빈도가 적은 단어

 

텍스트 데이터에서 너무 적게 등장해서 자연어 처리에 도움되지 않는 단어들이 존재한다. 예를 들어 입력된 메일이 정상 메일인지 스팸 메일인지를 분류하는 스팸 메일 분류기를 설계한다고 가정해보자. 총 100,000개의 메일을 가지고 정상 메일에서는 어떤 단어들이 주로 등장하고, 스팸 메일에서는 어떤 단어들이 주로 등장하는지를 가지고 설계하고자 한다. 그런데 이때 100,000개의 메일 데이터에서 총 합 5번 밖에 등장하지 않은 단어가 있다면 이 단어는 직관적으로 분류에 거의 도움이 되지 않을 것임을 알 수 있다.

 

 

2. 길이가 짧은 단어

https://wikidocs.net/217238

 

03-02 텍스트 데이터의 정제와 정규화

코퍼스에서 용도에 맞게 토큰을 분류하는 작업을 토큰화(tokenization)라고 하며, 토큰화 작업 전, 후에는 텍스트 데이터를 용도에 맞게 정제(cleaning) 및 정규화(…

wikidocs.net