스팸 탐지기 만들기
라벨이 지정된 메시지로 학습합니다
스팸 탐지기 만들기은(는) 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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 나이브 베이즈의 직관
- 스팸 탐지기 만들기
- 다항 모델과 베르누이 모델 비교
- 모델의 예측 읽기