NLP Academy · 강의

스팸 탐지기 만들기

라벨이 지정된 메시지로 학습합니다

레슨 2/413개 단계

스팸 탐지기 만들기은(는) CoddyKit의 무료 NLP Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 NLP Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. NLP Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

첫 번째 실제 모델

이제 유용한 것을 만들어 보겠습니다. 바로 스팸 필터입니다. 레이블이 지정된 메시지로 분류기를 학습시키고, 새로 들어온 메시지를 판단하게 합니다.

레이블이 지정된 데이터로 시작하기

모든 지도 학습 모델에는 정답이 있는 예제가 필요합니다. 여기서는 각 메시지에 스팸 또는 스팸이 아닌 메일을 뜻하는 친근한 이름인 햄이라는 레이블이 붙어 있습니다.

messages = ["win cash now", "lunch at noon?", "free prize click"]
labels = ["spam", "ham", "spam"]
print(len(messages), len(labels))

텍스트를 숫자로 변환하기

모델은 원시 단어를 읽을 수 없으므로 먼저 단어를 셉니다. CountVectorizer는 각 메시지를 단어 카운트의 한 행으로 변환합니다.

from sklearn.feature_extraction.text import CountVectorizer
vec = CountVectorizer()
X = vec.fit_transform(messages)

MultinomialNB 만나기

단어 카운트에는 scikit-learn에 내장된 나이브 베이즈의 카운트 기반 방식인 MultinomialNB가 적합합니다.

from sklearn.naive_bayes import MultinomialNB
model = MultinomialNB()

모델 학습시키기

학습은 한 줄이면 됩니다. 모델에 특성과 레이블을 전달하세요. fit 호출이 분류별 단어를 세고 확률을 저장합니다.

model.fit(X, labels)
print("trained on", X.shape[0], "messages")

새 메일 예측하기

새 메시지를 판단하려면 같은 방식으로 벡터화한 뒤 predict를 호출합니다. 모델은 스팸 또는 햄이라는 가장 나은 추측을 반환합니다.

new = vec.transform(["free cash prize"])
print(model.predict(new))

벡터화기 재사용하기

새 텍스트에는 모델이 학습한 것과 같은 어휘를 사용해야 합니다. 열이 서로 맞지 않게 되므로 다시 학습하지 말고 항상 transform을 호출하세요.

확신도 살펴보기

레이블뿐 아니라 모델이 얼마나 확신하는지도 확인할 수 있습니다. predict_proba 메서드는 가능한 각 분류에 대한 확률을 제공합니다.

print(model.predict_proba(new))

테스트 세트 따로 두기

모델이 학습한 데이터로 절대 모델을 평가하지 마세요. 보지 못한 메시지에서 얼마나 잘 작동하는지 측정할 수 있도록 테스트 세트를 따로 분리하세요.

필터 평가하기

검증용으로 따로 보관해 둔 메시지에 예측을 실행하고 실제 정답과 비교해 보십시오. 이 정확도를 통해 스팸 필터가 실제로 작동하는지 알 수 있습니다. 📬

개선을 위한 반복

깨끗한 데이터를 더 많이 사용하고 전처리를 개선하면 결과가 빠르게 좋아집니다. 이 필터를 완성된 제품이 아니라 꾸준히 개선해 나갈 수 있는 기준선으로 생각하십시오.

빠른 확인

새 메시지를 예측하기 전에 어떻게 준비해야 합니까?

복습

메시지를 벡터화하고 MultinomialNB를 학습시킨 다음, 새 텍스트가 스팸인지 예측했습니다. 학습이 완료된 벡터화기를 재사용하면 특성의 대응 관계를 유지할 수 있습니다. ✅

무료로 시작

AI 튜터와 함께 Python을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
30
레슨
120

자주 묻는 질문

“스팸 탐지기 만들기” 강의는 무료인가요?

네 — “스팸 탐지기 만들기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 NLP Academy 강의 전체를 잠금 해제할 수 있습니다. NLP Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“스팸 탐지기 만들기”에서 뭘 배우나요?

라벨이 지정된 메시지로 학습합니다 브라우저에서 직접 실행하는 실습 코드로 NLP Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

NLP Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 NLP Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“스팸 탐지기 만들기” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 NLP Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 NLP Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 나이브 베이즈의 직관
  2. 스팸 탐지기 만들기
  3. 다항 모델과 베르누이 모델 비교
  4. 모델의 예측 읽기
← NLP Academy(으)로 돌아가기