正規表現による AI 向けテキストクリーニング
HTML タグ、句読点、URL、メールアドレスを除去し、テキスト前処理関数を構築します。
「正規表現による 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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 正規表現パターンと文字クラス
- re モジュール:search、match、findall、sub
- キャプチャグループと名前付きグループ
- 正規表現による AI 向けテキストクリーニング