[python] NLTK를 사용해 텍스트 전처리를 어떻게 할 수 있나요?

텍스트 데이터의 전처리는 자연어 처리(NLP) 작업에서 매우 중요한 단계입니다. NLTK(Natural Language Toolkit)는 Python에서 자연어 처리를 위한 강력한 라이브러리로, 텍스트 데이터의 전처리를 수행하는 다양한 기능을 제공합니다.

아래는 NLTK를 사용하여 텍스트 전처리를 수행하는 몇 가지 예시입니다.

  1. 토큰화(Tokenization):
    • 텍스트를 단어나 문장 단위로 나누는 작업입니다.
    • NLTK의 word_tokenize() 함수를 사용하여 단어 토큰화를 수행할 수 있습니다.
    • 예시:
      from nltk.tokenize import word_tokenize
           
      text = "NLTK를 사용해 텍스트 전처리를 해보세요."
      tokens = word_tokenize(text)
      print(tokens)
      
  2. 어간 추출(Stemming):
    • 단어의 어간을 추출하여 단어를 기본 형태로 만드는 작업입니다.
    • NLTK의 PorterStemmer 클래스를 사용하여 어간 추출을 수행할 수 있습니다.
    • 예시:
      from nltk.stem import PorterStemmer
           
      stemmer = PorterStemmer()
      word = "running"
      stemmed_word = stemmer.stem(word)
      print(stemmed_word)
      
  3. 불용어 처리(Stopword Removal):
    • 자주 사용되지만 의미를 가지지 않는 단어들을 제거하는 작업입니다.
    • NLTK의 stopwords 모듈에서 제공되는 불용어 리스트를 사용하여 불용어 처리를 수행할 수 있습니다.
    • 예시:
      from nltk.corpus import stopwords
           
      stop_words = set(stopwords.words('english'))
      words = ["I", "am", "going", "to", "the", "park"]
      filtered_words = [word for word in words if word not in stop_words]
      print(filtered_words)
      
  4. 품사 태깅(Part-of-speech Tagging):
    • 문장 내 단어들의 품사를 태깅하는 작업입니다.
    • NLTK의 pos_tag() 함수를 사용하여 품사 태깅을 수행할 수 있습니다.
    • 예시:
      from nltk import pos_tag
      from nltk.tokenize import word_tokenize
           
      text = "I am learning NLTK."
      tokens = word_tokenize(text)
      tagged_words = pos_tag(tokens)
      print(tagged_words)
      

이 외에도 NLTK는 텍스트 정제, 문장 분할, 철자 교정 등 다양한 텍스트 전처리 작업을 지원합니다. NLTK의 공식 문서를 참고하여 더 많은 기능과 사용법을 알아보세요.

참고: