시작하기무료로 시작하기

불용어 제거와 해싱

다음 단계에서는 stopwords를 제거한 뒤 해싱 트릭을 적용하고, 결과를 TF-IDF로 변환하겠습니다.

개념을 간단히 다시 정리해 볼게요.

  • 해싱 트릭은 매우 큰(경우에 따라 무한한) 항목 집합(여기서는 SMS 메시지에 포함된 모든 단어)을 더 작고 유한한 값의 집합으로 빠르고 공간 효율적으로 매핑하는 방법입니다.
  • TF-IDF 행렬은 각 문서에서 단어가 얼마나 중요한지를 반영합니다. 각 문서 내에서의 단어 빈도뿐 아니라, 코퍼스 전체에서의 단어 빈도도 함께 고려합니다.

토큰화된 SMS 데이터는 smswords라는 열에 저장되어 있어요. 공백 처리를 정리해서 토큰화된 텍스트가 더 깔끔해졌습니다.

이 연습은 강의의 일부입니다

PySpark로 하는 Machine Learning

강의 보기

연습 안내

  • StopWordsRemover, HashingTF, IDF 클래스를 임포트하세요.
  • StopWordsRemover 객체를 생성하세요(입력 열은 words, 출력 열은 terms). sms에 적용하세요.
  • HashingTF 객체를 생성하세요(이전 단계의 결과를 입력으로, 출력 열은 hash). wrangled에 적용하세요.
  • IDF 객체를 생성하세요(이전 단계의 결과를 입력으로, 출력 열은 features). wrangled에 적용하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

from pyspark.ml.____ import ____, ____, ____

# Remove stopwords
wrangled = ____(inputCol=____, outputCol=____)\
      .____(sms)

# Apply the hashing trick
wrangled = ____(____, ____, numFeatures=1024)\
      .____(wrangled)

# Convert hashed symbols to TF-IDF
tf_idf = ____(____, ____)\
      .____(wrangled).____(wrangled)
      
tf_idf.select('terms', 'features').show(4, truncate=False)
코드 편집 및 실행