전공 이론 공부/자연어처리

텍스트 전처리 (Text Preprocessing)

쿠몬e 2024. 6. 25. 16:33

텍스트 전처리 (Text Preprocessing): 주어진 텍스트에서 노이즈와 같이 불필요한 부분을 제거하고, 문장을 표준 단어들로 분리, 각 단어의 품사를 파악하는 것까지 포함되는 사전 작업들

 

텍스트 전처리 단계

1. 정제 (cleaning): 불필요한 노이즈 제거, 불용어 (stopword) 제거

2. 토큰화 (Tokenization): 주어진 텍스트를 원하는 단위(토큰)으로 나누는 작업 (i.e., sentence tokenization, work tokenization)

3. 정규화: 같은 의미를 가진 동일한 단어임에도 불구하고 다른 형태로 쓰여진 단어들을 통일시켜 표준 단어로 만드는 작업 (i.e., go = goes), 방법에 따라 어간 추출표제어 추출로 나뉨.

4. 품사 태깅: 단어를 문법적인 기능 (명사, 대명사, 동사, 형용사 ..) 에 따라 분류하는 것

 

 

각각에 대해 자세히 알아보자

*nltk: 교육용으로 개발된 자연어 처리 및 문서 분석 용 파이썬 패키지


 

 

1. 정제 (Cleaning)

  • NLTK에서는 stopwords라는 라이브러리를 이용해 언어별 불용어 사전을 제공함.

 

2. 토큰화 (Tokenization)

  • sent_tokenize(), word_tokenize, WordPunctTokenizer 등 사용
  • 더 세밀하게 토큰화하기 위해서는 정규표현식을 사용할 수 있음. 

 

3. 정규화

 

1) 어간 추출 

  • 어형이 변형된 단어로부터 접사 드을 제거하고 그 단어의 어간을 분리해내는 작업
  • 어간: '간다', '갔다' 등의 단어에서 '가' / '작다', '작고', '작으니' 등의 단어에서 '작'
  • 어간 추출 알고리즘
    • Porter Stemmer: 단어가 변형되는 규칙을 사용해 원형을 찾으므로, 그 결과가 항상 사전에 있는 올바른 단어가 되지는 않음. 그러나 모든 단어가 같은 규칙에 따라 변환되기 때문에 분석시 문제는 없음. 
    • Lancaster Stemmer

2) 표제어 추출 (Lemmatization)

  • 주어진 단어를 기본형으로 변화하는 것
  • nltk에서 WordNetLemmatizer 지원

 

4. 품사 태깅

  • nltk.pos_tag(): 토큰화된 결과에 대한 품사 태깅해 (단어, 품사)로 구성된 튜플의 리스트로 품사 태깅 결과를 반환함.
반응형