석사만세 2023. 2. 17. 16:51

5. 자연어 처리
   - 텍스트가 입력되면 탐지된 언어를 기반으로 Tokenization, POS Tagging, Stop Word 등을 처리하게 된다. 텍스트 정규화는 텍스트의 형태를 일관되게 변형하는 작업으로 Tokenization과 Stemming이 대표적이다.
   - Tokenization은 텍스트를 특정한 의미 단위인 Token으로 분할하는 작업을 의미한다. 토큰화 작업은 언어별로 방법이 다른데 영어는 단순 공백을 기준으로 분할하지만 한국어는 공백이 아닌 품사 기준으로 토큰화를 하게 된다.
   - Stemming은 형태가 변형된 단어로부터 단어의 핵심인 어간을 추출하는 작업이다. Lemmatization은 문장 구조상 단어의 의미를 이해한 후에 기본형을 추출하는 것으로 Stemming과는 다르다. NLTK 패키지에는 대표적으로 PotterStemmer 라이브러리가 있어서 간단하게 어근 동일화를 수행할 수 있다. 이외에도 LancasterStemmer, RegexpStemmer 라이브러리가 있다. 다만 한국어의 경우는 아직 이러한 라이브러리가 존재하지 않아서 어쩔 수 없이 형태소 분석기를 사용해야 한다.
   - POS(Part of Speech) Tagging은 Token의 품사 정보인 형태소를 파악하는 과정이다. POS Tagging은 토큰으로 구분된 단어를 품사로 매칭되는 구조로 구분하고 이를 기반으로 개체의 의미를 구분한다. 이것은 품사가 문장 내에서 의미를 파악하는데 중요한 역할을 하기 때문이다. 파이썬에서 한국어 품사 분석을 위해서는 KoNLPy 패키지를 사용한다.  
   - 빈번하게 사용되지만 구체적인 의미를 가지기 어려운 단어들을 불용어라고 한다. 불용어(Stopword) 처리는 문장의 구성에서 큰 의미를 지니지 않는 텍스트 요소를 제거하는 것으로 영어에서 인칭 대명사와 관사가 대표적이다. 파이썬에서 가장 많이 사용하는 텍스트 마이닝 패키지인 NLTK는 언어별로 불용어 리스트를 제공한다.