Learn AI with Python · レッスン

正規表現による AI 向けテキストクリーニング

HTML タグ、句読点、URL、メールアドレスを除去し、テキスト前処理関数を構築します。

レッスン 4/413 ステップ

「正規表現による AI 向けテキストクリーニング」はCoddyKit上の無料Learn AI with Pythonレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLearn AI with Python学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Learn AI with Pythonコースには全4レッスンが含まれています。

AI向けにテキストをきれいにする理由

Webから取得した生のテキストには、HTMLタグ、URL、メールアドレス、余分な空白、特殊文字など、多くのノイズが含まれています。それをそのままモデルに入力すると、容量を無駄に使い、品質も低下します。

正規表現はテキスト前処理の中心的な道具です。ここでは、クリーニングパイプラインを段階的に構築します。

ノイズの多いサンプル

スクレイピングで取得する文字列は、たとえばこのようなものです。クリーニングの各ステップで、1種類のノイズを取り除きます。

raw = "<p>Contact us at info@shop.com or visit https://shop.com NOW!!!   Thanks</p>"

HTMLタグの除去

HTMLタグは <tag> のような形をしています。パターン <[^>]+> は、<、任意の > 以外の文字、そして > にマッチします。

マッチしたタグを空文字列に置き換えます。複雑なHTMLにはBeautifulSoupのようなパーサーを使う方が適していますが、簡単なクリーニングなら正規表現で十分です。

import re

text = re.sub("<[^>]+>", "", raw)
print(text)   # "Contact us at info@shop.com or visit https://shop.com NOW!!!   Thanks"

URLの除去

URLは http:// または https:// で始まり、その後に空白以外の文字が続きます。URLにマッチさせて取り除きます。

import re

text = re.sub("https?://\S+", "", text)
print(text)   # URL removed

メールアドレスの除去

単純なメールアドレスのパターンは、単語文字、@、ドメイン、ドット、そしてトップレベルドメインで構成されます。

import re

text = re.sub("\S+@\S+\.\S+", "", text)
print(text)   # email removed

除去ではなくマスキング

プライバシー関連のデータセットでは、機密データを削除するのではなくマスキングして、文の構造を維持することがよくあります。

import re

masked = re.sub("\S+@\S+\.\S+", "[EMAIL]", "reach me at a@b.com please")
print(masked)   # "reach me at [EMAIL] please"

特殊文字の除去

文字、数字、空白は残し、否定文字クラスを使って句読点や記号を取り除きます。句読点の一部を残すかどうかは、タスクごとに判断してください。

import re

text = re.sub("[^A-Za-z0-9 ]", "", "Hello!! @world #2026")
print(text)   # "Hello world 2026"

空白の正規化

クリーニング後には、連続した空白や不要な改行が残ります。\s+ で空白の連続を1つの空白にまとめ、その後 strip() で両端の空白を取り除きます。

import re

text = re.sub("\s+", " ", "Hello    world\n\n  again").strip()
print(text)   # "Hello world again"

小文字化と順序の重要性

一貫性を保つために小文字化を行うことはよくありますが、慎重に適用してください。また、順序が重要です。特殊文字を取り除く前にHTMLを除去し、前の処理で空白が生じないよう、最後に空白を正規化します。

text = text.lower()
# Pipeline order: tags -> urls -> emails -> specials -> whitespace -> lowercase

クリーニングパイプラインの構築

各ドキュメントに同じ処理を適用できるよう、手順を1つの関数にまとめます。大量のドキュメントを処理する場合は、速度向上のためにパターンを事前コンパイルしてください。

import re

def clean_text(s):
    s = re.sub("<[^>]+>", " ", s)          # html tags
    s = re.sub("https?://\S+", " ", s)     # urls
    s = re.sub("\S+@\S+\.\S+", " ", s)    # emails
    s = re.sub("[^A-Za-z0-9 ]", " ", s)     # special chars
    s = re.sub("\s+", " ", s).strip()       # whitespace
    return s.lower()

print(clean_text(raw))

DataFrameへのパイプラインの適用

apply を使ってテキスト列全体にクリーナーを適用し、モデルで利用できる列を作成します。

import pandas as pd

df["clean"] = df["text"].apply(clean_text)
print(df[["text", "clean"]].head())

クイックチェック:空白の正規化

クリーニング後のテキストに、1つの空白にまとめたい複数の空白や改行の連続が残っています。

振り返り:正規表現によるテキストクリーニング

実際の前処理パイプラインを構築しました。

  • <[^>]+> でHTMLを除去する
  • URL(https?://\S+)とメールアドレスを除去する
  • [EMAIL] のようなプレースホルダーで機密データをマスキングする
  • 否定文字クラスで特殊文字を取り除く
  • \s+ と strip() で空白を正規化する
  • 関数にまとめて列に apply する

これで、AI向けテキスト処理における正規表現の学習は完了です。次は、AIプロジェクトのデータベースについて学びます。

無料で開始

AI チューターと学ぶ Python — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
53
レッスン
225

よくある質問

「正規表現による AI 向けテキストクリーニング」レッスンは無料ですか?

はい。「正規表現による AI 向けテキストクリーニング」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Learn AI with Pythonコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Learn AI with Pythonコースには全4レッスンが含まれています。

「正規表現による AI 向けテキストクリーニング」で何を学びますか?

HTML タグ、句読点、URL、メールアドレスを除去し、テキスト前処理関数を構築します。 ブラウザで直接実行するハンズオンコードでLearn AI with Pythonを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Learn AI with Pythonを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLearn AI with Pythonは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「正規表現による AI 向けテキストクリーニング」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLearn AI with Pythonレッスンでコードを書いて実行できますか?

はい。すべてのLearn AI with Pythonレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 正規表現パターンと文字クラス
  2. re モジュール:search、match、findall、sub
  3. キャプチャグループと名前付きグループ
  4. 正規表現による AI 向けテキストクリーニング
← Learn AI with Pythonに戻る