목록Deep Learning/NLP (23)
Note
표제어 추출은 기본 사전형 단어라는 의미를 가지고 있다. 한 단어에서 여러 개의 파생 단어가 나왔을 경우 그 뿌리를 찾아가는 과정이라고 할 수 있다. 어간 추출과는 다르게 단어의 형태가 보존되어 출력되는 것이 특징이다. 하지만 표제어 추출도 완벽하지 않은데 그 이유 중 하나로 해당 단어에 대한 품사 정보가 부족하기 때문이다. 이와 같은 현상을 막기 위해 품사 형태를 지정해주는 방법이 있다. Lemmatization 예시 am → be, the going → the going, having → have 예시를 보면 이전 포스팅한 어간 추출과는 다르게 대부분의 형태가 잘 유지된 것을 볼 수 있다.

어간 추출은 말 그대로 어간을 추출하는 작업이다. 정해진 규칙을 보고 단어의 어미를 자르는 작업이라고도 볼 수 있다. 어간 추출 속도는 표제어 추출보다 빠르다. 영어권 언어를 자연어 처리하는 과정에서 어간 추출을 해야 한다면 보통 포터 알고리즘을 많이 사용한다. Stemming 예시 am → am, the going → the go, having → hav 예시처럼 정해진 규칙을 보고 어미를 자르기 때문에 정확도가 높은 작업은 아니며, 사전에 없는 단어일 가능성도 있다.

불용어란 큰 의미가 없는 단어 토큰을 의미하며, 제거하기 위한 작업을 불용어 제거라고 한다. 영어권 언어에서는 i, me, my 같은 단어들이 있다. NLTK 패키지에서 영어권 언어에 대한 불용어들을 간단히 확인해보면 i, me, my, myself, we, you 등이 있다. 한국어에서 불용어는 불용어 사전을 구축해서 사용하는 것이 좋다. 주로 조사, 접속사가 해당되지만 때에 따라 명사나 형용사가 되기도 한다. 출력된 결과를 보면 위에 문장에서 불용어가 제거된 문장이 아래 문장이다. 아래 문장에서는 he, is, an 이 불용어 처리된 것을 볼 수 있다.
정제 (Cleaning) : 자연어 처리에서 정제는 가지고 있는 말뭉치로부터 노이즈 데이터를 제거하는 것을 말한다. 정규화 (Normalization) : 자연어 처리에서 하나의 뜻을 가진 단어도 여러 개의 표현 방법이 존재하는데 이를 통합시켜 같은 단어로 만들어주는 작업을 말한다. 1. 표기가 다른 단어의 통합 US나 USA 같은 단어들은 같은 뜻이지만 표기가 다르다. 이를 하나로 통합해주는 과정이다. 2. 대문자와 소문자 영어는 문장 시작이 대문자로 시작하나 대문자는 큰 의미가 없는 대문자일 확률이 크다. 또는 특정 상황에서만 쓰이기 때문에 대부분 소문자로 변화시켜 통합한다. 하지만 국가명이나 회사 혹은 사람 이름과 같은 대문자를 구분해야 하는 경우는 구분을 해주어야 한다. 3. 등장 빈도가 적은 단..
토큰(Token)이라고 불리는 단위로 나누는 작업을 토큰화(Tokenization)라고 한다. 자연어 처리에서 토큰화는 단어 토큰화와 문장 토큰화가 있다. 토큰화를 통한 전처리 단계에서 생각해야 할 것들이 있다. 첫째, 특수 문자나 기호를 단순히 다 제거할 것인가?에 대한 고민이다. 특수 문자 자체가 의미를 가지는 경우에는 제거하지 말아야 한다. 예를 들어 화폐를 나타내는 단위나 숫자 표현 등이 있다. 둘째, 줄임말과 단어 내 띄어쓰기가 있는 경우에 대한 고민이다. 대체로 자연어처리 패키지 관련해서 영어가 잘 되어있는데 영어는 줄임말이 많고 띄어쓰기를 포함한 한 단어가 있기 때문에 전처리 과정에서 고려를 해야 한다. 이러한 토큰화는 한국어에서 많은 어려움이 있다. 한국어는 띄어쓰기가 되어 있지 않아도 글..