迷惑メール検出器を作る
ラベル付きメッセージで学習する
「迷惑メール検出器を作る」はCoddyKit上の無料NLP Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはNLP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 NLP Academyコースには全4レッスンが含まれています。
初めての本格的なモデル
役に立つもの、つまり迷惑メールフィルターを作る時間です。ラベル付きメッセージで分類器を学習させ、新しいメッセージを判定させます。
ラベル付きデータから始める
教師ありモデルには、正解付きの例が必要です。ここでは各メッセージに、迷惑メールを表す spam、または迷惑メールではないものを親しみを込めて呼ぶ ham というラベルが付いています。
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の紹介
単語のカウントにはMultinomialNBが適しています。これは scikit-learn に組み込まれた、カウントベースの Naive Bayes です。
from sklearn.naive_bayes import MultinomialNB
model = MultinomialNB()モデルを学習させる
学習は1行で行えます。特徴量とラベルをモデルに渡してください。fitの呼び出しによって、クラスごとの単語数が数えられ、確率が保存されます。
model.fit(X, labels)
print("trained on", X.shape[0], "messages")新しいメールを予測する
新しいメッセージを判定するには、同じ方法でベクトル化して predict を呼び出します。モデルは spam か ham かについて、最も適切な推測を返します。
new = vec.transform(["free cash prize"])
print(model.predict(new))Vectorizerを再利用する
新しいテキストには、モデルが学習したものと同じ語彙を使う必要があります。列が揃わなくなるため、もう一度 fit するのではなく、必ずtransformを呼び出してください。
確信度を確認する
ラベルだけでなく、モデルがどの程度確信しているかも確認できます。predict_probaメソッドは、各クラスの確率を返します。
print(model.predict_proba(new))テストセットを分けておく
モデルが学習に使ったデータで評価してはいけません。未知のメッセージに対する性能を測定できるよう、テストセットを分けておきます。
フィルターを評価する
取り置いたメッセージに対して予測を行い、正解と比較します。その正解率によって、スパムフィルターが実際に機能しているかどうかが分かります。📬
改善のために反復する
より多くのクリーンなデータと、より優れた前処理によって、結果はすぐに向上します。このフィルターは完成品ではなく、継続的に改善できるベースラインとして扱ってください。
簡単な確認
新しいメッセージに対して予測する前に、どのような準備をすべきでしょうか。
まとめ
メッセージをベクトル化し、MultinomialNBを学習させ、新しいテキストがスパムかどうかを予測しました。学習済みのベクトライザーを再利用することで、特徴量の対応を保てます。✅
AI チューターと学ぶ Python — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 30
- レッスン
- 120
よくある質問
「迷惑メール検出器を作る」レッスンは無料ですか?
はい。「迷惑メール検出器を作る」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、NLP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 NLP Academyコースには全4レッスンが含まれています。
「迷惑メール検出器を作る」で何を学びますか?
ラベル付きメッセージで学習する ブラウザで直接実行するハンズオンコードでNLP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
NLP Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのNLP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「迷惑メール検出器を作る」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このNLP Academyレッスンでコードを書いて実行できますか?
はい。すべてのNLP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。