데이터 전처리
자연어 처리에서 크롤링 등으로 얻어낸 코퍼스 데이터가 필요에 맞게 전처리되지 않은 상태라면, 데이터를 사용하고자하는 용도에 맞게 토큰화(tokenization) & 정제(cleaning) & 정규화(normalization)하는 일을 해야 합니다.코퍼스에서 용도에 맞게 토큰을 분류하는 작업을 토큰화(tokenization)라고 하며, 토큰화 작업 전, 후에는 텍스트 데이터를 용도에 맞게 정제(cleaning) 및 정규화(normalization)하는 일이 항상 함께합니다.
토큰화(tokenization): 코퍼스(corpus)에서 토큰(token)이라 불리는 단위로 나눔, 이때 토큰은 용도에 따라 나눠짐
정제(cleaning): 코퍼스의 노이즈 데이터를 제거
정규화(normalization): 표현 방법이 다른 단어들을 통합시켜서 같은 단어로 만듬
1. 규칙 기반한 표기가 다른 단어의 통합
표기는 다르지만, 같은 의미를 갖는 단어를 규칙에 따라 같은 단어로 정의합니다.EX) USA, US
2. 대, 소문자 통합
영어권 언어에서 대, 소문자를 통합하는 것은 단어의 개수를 줄일 수 있는 또 다른 정규화 방법입니다.Automobile와 automobile를 소문자로 변환하면 automobile 질의로 둘 다 찾을 수 있습니다.
그러나 US(미국)와 같이 대문자로 유지해야 하는 경우도 있습니다(us와 구분 안됨).
3. 불필요한 단어의 제거(Removing Unnecessary Words)
노이즈 데이터(noise data)란 무 의미도 갖지 않는 글자들(특수 문자 등) 또는 분석하고자 하는 목적에 맞지 않는 불필요 단어들을 말합니다.(1) 등장 빈도가 적은 단어(Removing Rare words)
때론 텍스트 데이터에서 너무 적게 등장해서 자연어 처리에 도움이 되지 않는 단어들이 존재합니다.(2) 길이가 짧은 단어(Removing words with very a short length)
영어권 언어에서 어느정도 효과를 볼 수 있다고 알려져 있습니다.(3)불용어(Stopword)
불용어란 데이터 분석에 큰 도움이 되지 않는 단어를 말합니다.예를 들면, I, my, me, over, 조사, 접미사 같은 단어들은 문장에서는 자주 등장하지만 실제 의미 분석에는 크게 도움이 되지 않습니다.
NLTK에서는 영어 단어들의 불용어를 패키지로 정의하고 있습니다.
한국어 불용어 리스트는 https://www.ranks.nl/stopwords/korean 에서 확인할 수 있습니다.
(4)정규 표현식(Regular Expression)
코퍼스에서 노이즈 데이터의 특징을 잡아낼 수 있다면, 정규 표현식을 통해서 이를 제거할 수 있습니다.Ex) 크롤링으로 수집한 데이터에서 html tag를 제거
토큰화는 아래에서 확인할 수 있습니다.
https://sungwoony.blogspot.com/2020/04/tokenization.html
감사합니다.
Reference: https://wikidocs.net/21698
댓글
댓글 쓰기