토크나이즈와 표제어 추출

Python으로 배우는 NLP 피처 엔지니어링

Rounak Banik

Data Scientist

텍스트 소스

  • 뉴스 기사
  • 트윗
  • 댓글
Python으로 배우는 NLP 피처 엔지니어링

텍스트를 기계 친화적으로 만들기

  • Dogs, dog
  • reduction, REDUCING, Reduce
  • don't, do not
  • won't, will not
Python으로 배우는 NLP 피처 엔지니어링

텍스트 전처리 기법

  • 소문자로 변환
  • 앞뒤 공백 제거
  • 구두점 제거
  • 불용어 제거
  • 축약형 확장
  • 특수문자 제거(숫자, 이모지 등)
Python으로 배우는 NLP 피처 엔지니어링

토크나이즈

"I have a dog. His name is Hachi."

토큰:

["I", "have", "a", "dog", ".", "His", "name", "is", "Hachi", "."]
"Don't do this."

토큰:

["Do", "n't", "do", "this", "."]
Python으로 배우는 NLP 피처 엔지니어링

spaCy로 토크나이즈

import spacy

# Load the en_core_web_sm model nlp = spacy.load('en_core_web_sm')
# Initiliaze string string = "Hello! I don't know what I'm doing here."
# Create a Doc object doc = nlp(string)
# Generate list of tokens tokens = [token.text for token in doc] print(tokens)
['Hello','!','I','do',"n't",'know','what','I',"'m",'doing','here','.']
Python으로 배우는 NLP 피처 엔지니어링

표제어 추출

  • 단어를 기본형으로 변환
    • reducing, reduces, reduced, reductionreduce
    • am, are, isbe
    • n'tnot
    • 'vehave
Python으로 배우는 NLP 피처 엔지니어링

spaCy로 표제어 추출

import spacy

# Load the en_core_web_sm model
nlp = spacy.load('en_core_web_sm')
# Initiliaze string
string = "Hello! I don't know what I'm doing here."
# Create a Doc object
doc = nlp(string)

# Generate list of lemmas lemmas = [token.lemma_ for token in doc] print(lemmas)
['hello','!','-PRON-','do','not','know','what','-PRON','be','do','here', '.']
Python으로 배우는 NLP 피처 엔지니어링

연습해 봅시다!

Python으로 배우는 NLP 피처 엔지니어링

Preparing Video For Download...