구두점, 숫자, 토큰
이전 챕터의 마지막에서, SMS 메시지 데이터셋을 불러왔습니다. 이 데이터는 "spam"(레이블 1) 또는 "ham"(레이블 0)으로 라벨링되어 있었죠. 이제 이 데이터를 사용해 분류 모델을 만들어 보겠습니다.
그전에 SMS 메시지를 다음과 같이 준비해야 합니다.
- 구두점과 숫자 제거
- 토크나이즈(단어 단위로 분리)
- 불용어 제거
- 해싱 트릭 적용
- TF-IDF 표현으로 변환
이번 연습에서는 구두점과 숫자를 제거한 뒤, 메시지를 토크나이즈합니다.
SMS 데이터는 sms로 제공됩니다.
이 연습은 강의의 일부입니다
PySpark로 하는 Machine Learning
연습 안내
- 정규식을 치환하는 함수와 토크나이즈 기능을 import하세요.
text열에서 모든 구두점 문자를 공백으로 바꾸세요. 숫자에 대해서도 동일하게 처리하세요.text열을 토큰으로 분할하세요. 출력 열 이름은words로 지정하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Import the necessary functions
from pyspark.sql.functions import ____
from pyspark.ml.feature import ____
# Remove punctuation (REGEX provided) and numbers
wrangled = sms.withColumn('text', ____(sms.text, '[_():;,.!?\\-]', ____))
wrangled = wrangled.withColumn(____, ____(____, ____, ____))
# Merge multiple spaces
wrangled = wrangled.withColumn('text', regexp_replace(wrangled.text, ' +', ' '))
# Split the text into words
wrangled = ____(inputCol='text', outputCol=____).____(wrangled)
wrangled.show(4, truncate=False)