- 전처리 과정
● 결측치 확인
결측치는 표의 성춘향에 대한 ‘몸무게’처럼 주어진 데이터셋에서 데이터가 없는(Nan) 것이다.
이외에도 다음 방법들로 결측치를 처리할 수 있다.
데이터에 하나라도 NaN 값이 있을 때 행 전체를 삭제
데이터가 거의 없는 특성(열)은 특성(열) 자체를 삭제
최빈값 혹은 평균값으로 NaN 값을 대체
- 토큰화(tokenization)
토큰화는 주어진 텍스트를 단어/문자 단위로 자르는 것을 의미.
따라서 토큰화는 문장 토큰화와 단어 토큰화로 구분된다.
예를 들어 ‘A cat is on the sofa’라는 문장이 있을 때 단어 토큰화를 진행하면 각각의 단어인 ‘A’, ‘cat’, ‘is’, ‘on’, ‘the’, ‘sofa’로 분리된다.
- 불용어(stop word)
불용어란 문장 내에서 빈번하게 발생하여 의미를 부여하기 어려운 단어들을 의미한다.
예를 들어 ‘a’, ‘the’ 같은 단어들은 모든 구문(phrase)에 매우 많이 등장하기 때문에 아무런 의미가 없다.
특히 불용어는 자연어 처리에 있어 효율성을 감소시키고 처리 시간이 길어지는 단점이 있기 때문에 반드시 제거가 필요.
- 어간추출(stemming)
어간 추출과 표제어 추출(lemmatization)은 단어 원형을 찾아 주는 것.
예를 들어 ‘쓰다’의 다양한 형태인 writing, writes, wrote에서 write를 찾는 것이다.
어간 추출은 단어 그 자체만 고려하기 때문에 품사가 달라도 사용 가능하다.
• Automates, automatic, automation → automat
반면 표제어 추출은 단어가 문장 속에서 어떤 품사로 쓰였는지 고려하기 때문에 품사가 같아야 사용 가능하다.
• am, are, is → be
• car, cars, car’s, cars’ → car
즉, 어간 추출과 표제어 추출은 둘 다 어근 추출이 목적이지만,
어간 추출은 사전에 없는 단어도 추출할 수 있고 표제어 추출은 사전에 있는 단어만 추출할 수 있다는 점에서 차이가 있다.
일반적으로 어간 추출보다 표제어 추출의 성능이 더 좋다.
품사와 같은 문법뿐만 아니라 문장 내에서 단어 의미도 고려하기 때문.
하지만 어간 추출보다 시간이 더 오래 걸리는 단점이 있다.
- 정규화(nomalization)
정규화는 표현 방법이 다른 단어들을 통합시켜서 같은 단어로 만들어 주는 것이다.
예를 들어 USA와 US는 의미가 같으므로, 같은 의미로 해석되도록 만들어 주는 과정이다.