はじめに
テキスト分類は、”自然言語処理(NLP)”において重要なタスクの一つです。例えば、メールのスパム判定、レビューの感情分析、ニュース記事の分類など、さまざまな用途で活用されています。
本記事では、scikit-learnを使ってPythonで簡単にテキスト分類を実装する方法を紹介します。実際のコードを交えながら、初心者でも理解しやすい内容になっています。
日本では現在、ITエンジニアの人材不足が深刻化しており、
それに伴いエンジニアの需要が急速に高まっています。
プログラミングスキルを身につけることで、以下のような多くのメリットが得られます。
✅ 転職市場での競争力が向上し、収入アップのチャンスが広がる
✅ 副業として活用でき、収入源を増やせる
✅ プログラマーに限らず、IT時代を生き抜く武器になる
もし少しでも興味があるなら、まずはプログラミングスクールの無料体験を試してみるのがおすすめです。
テキスト分類とは?
テキスト分類とは、文章を特定のカテゴリに分類するタスクです。代表的な例として、以下のような用途があります。
- スパムメールの判定(スパム 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はシンプルかつ強力な分類アルゴリズム。
この方法を活用すれば、スパムメールのフィルタリングやレビューの分析など、さまざまな用途に応用できます。
この記事が参考になったら、ぜひシェアをお願いします!
コメント