【Python】テキスト分類を簡単に実装:scikit-learnを使った簡単な方法

Python

はじめに

テキスト分類は、”自然言語処理(NLP)”において重要なタスクの一つです。例えば、メールのスパム判定、レビューの感情分析、ニュース記事の分類など、さまざまな用途で活用されています。

本記事では、scikit-learnを使ってPythonで簡単にテキスト分類を実装する方法を紹介します。実際のコードを交えながら、初心者でも理解しやすい内容になっています。

日本では現在、ITエンジニアの人材不足が深刻化しており、
それに伴いエンジニアの需要が急速に高まっています。
プログラミングスキルを身につけることで、以下のような多くのメリットが得られます。
転職市場での競争力が向上し、収入アップのチャンスが広がる
副業として活用でき、収入源を増やせる
✅ プログラマーに限らず、IT時代を生き抜く武器になる

もし少しでも興味があるなら、まずはプログラミングスクールの無料体験を試してみるのがおすすめです。
スクール名特徴主な学習内容対象者
AI・データサイエンス特Python/AIに特化した実践カリキュラム。現役エンジニアの手厚いサポートと「学び放題」制度が特徴。専門実践教育訓練給付金適用可能。Python, 機械学習, データ分析AI・データ分析初心者~中級者
完全マンツーマン指導。オーダーメイドカリキュラムとトリプルサポート体制(講師+コーチ+Q&A掲示板)。挫折率2.1%の継続性。Web開発, AI, アプリ開発
キャリアチェンジ志望者
AI/機械学習専門。E資格合格率83.1%。カリキュラムが無期限に閲覧可能。卒業生コミュニティが強み。AI特化の転職サポートあり。Python, 機械学習, データ分析AIエンジニア志望者
転職保証付きの短期集中型スクール。未経験者向けのサポートが充実。Web開発, プログラミング全般未経験からのエンジニア転職志望者

テキスト分類とは?

テキスト分類とは、文章を特定のカテゴリに分類するタスクです。代表的な例として、以下のような用途があります。

  • スパムメールの判定(スパム or 通常)
  • レビューの感情分析(ポジティブ or ネガティブ)
  • ニュース記事のジャンル分類(政治, 経済, スポーツなど)

必要なライブラリのインストール

まず、Pythonでテキスト分類を行うために必要なライブラリをインストールします。

pip install pandas scikit-learn nltk
  • pandas:データの操作
  • scikit-learn:機械学習アルゴリズムの実装
  • nltk:テキストの前処理

ステップ1:データの準備

まずは、簡単なサンプルデータを用意します。

import pandas as pd

data = {'text': ['この商品はとても良いです', '詐欺メールに注意してください', 'サッカーの試合が開催されました'],
        'label': ['ポジティブ', 'スパム', 'スポーツ']}

df = pd.DataFrame(data)
print(df)

ステップ2:テキストの前処理

テキスト分類の精度を向上させるため、前処理を行います。

from sklearn.feature_extraction.text import CountVectorizer

vectorizer = CountVectorizer()
X = vectorizer.fit_transform(df['text'])
print(X.toarray())

ステップ3:分類モデルの構築

scikit-learnのNaive Bayes(ナイーブベイズ)を使用して、分類モデルを作成します。

from sklearn.naive_bayes import MultinomialNB
from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, df['label'], test_size=0.2, random_state=42)

model = MultinomialNB()
model.fit(X_train, y_train)

ステップ4:モデルの評価

from sklearn.metrics import accuracy_score

y_pred = model.predict(X_test)
print('正解率:', accuracy_score(y_test, y_pred))

ステップ5:新しいテキストの分類

学習したモデルを使って、新しい文章を分類してみましょう。

new_text = ['新しいスポーツイベントが開催されました']
new_vector = vectorizer.transform(new_text)

prediction = model.predict(new_vector)
print('予測結果:', prediction)

まとめ

  • Pythonとscikit-learnを使えば、数行のコードでテキスト分類が可能
  • データの前処理が精度向上の鍵
  • Naive Bayesはシンプルかつ強力な分類アルゴリズム

この方法を活用すれば、スパムメールのフィルタリングやレビューの分析など、さまざまな用途に応用できます。

この記事が参考になったら、ぜひシェアをお願いします!

コメント

タイトルとURLをコピーしました