NLP Academy · レッスン

句読点と記号を除去する

モデルを混乱させる文字を取り除く

レッスン 3/413 ステップ

「句読点と記号を除去する」はCoddyKit上の無料NLP Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはNLP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 NLP Academyコースには全4レッスンが含まれています。

句読点もノイズになる

ストップワードの次に取り除くのは記号です。コンマ、ドル記号、絵文字などはモデルを混乱させることがあるため、通常は句読点を取り除きます。

重要な理由

前処理をしないと、モデルはcatとcat,を異なる2つのトークンとして認識します。末尾のコンマによって、1つの単語が2つの特徴量に分かれてしまうのです。

Pythonは記号を把握している

stringモジュールには、よく使うすべての記号がpunctuationという1つの定数にまとめられています。そのため、記号を手入力する必要はありません。

import string
print(string.punctuation)

translateのテクニック

文字を削除する最も速い方法は、各記号を何もない状態に変換するテーブルとstr.translateを使うことです。

table = str.maketrans("", "", string.punctuation)
clean = "hello, world!".translate(table)
print(clean)

トークンごとのクリーニング

トークンごとに記号を取り除くこともできます。内包表記の中でtranslateを適用し、その結果空になったトークンを取り除きます。

clean = [t.translate(table) for t in tokens]
clean = [t for t in clean if t]

記号には正規表現を使う

固定されたリストより細かく制御したい場合は、正規表現を使って、文字、数字、空白以外のものをすべて取り除けます。

import re
clean = re.sub(r"[^a-zA-Z0-9 ]", "", text)

役に立つ記号に注意する

記号の中には意味を持つものもあります。すべてのピリオドを取り除くと、u.s.aがusaになってしまいます。これは目的によっては望ましくない結果です。

数字を残すかどうかは選択する

数字は句読点ではありませんが、ノイズになることがよくあります。データに対して数字を残すか取り除くかを、目的に応じて決めてください。

no_digits = re.sub(r"\d+", "", text)

Unicode記号に注意する

ASCIIの句読点セットでは、スマートクォートや絵文字を検出できません。Unicode対応の正規表現なら、固定リストに残ってしまう記号も検出できます。

clean = re.sub(r"[^\w\s]", "", text)

余分な空白をまとめる

記号を取り除くと、隙間や二重の空白が残ることがあります。空白文字を簡単にまとめれば、結果をきれいな単語列に整えられます。

clean = re.sub(r"\s+", " ", clean).strip()

処理の順序

順序は重要です。分割や比較の前に句読点を取り除けば、末尾の記号が最終的なトークンに紛れ込むことがありません。

確認問題

文字列から句読点を削除する最も適切な方法を選んでください。

まとめ

これで、translateや正規表現を使って句読点を取り除き、Unicodeと数字を意図的に扱い、残った空白をまとめてきれいなトークンを作れるようになりました。

無料で開始

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は初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「句読点と記号を除去する」レッスンにはどのくらい時間がかかりますか?

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

このNLP Academyレッスンでコードを書いて実行できますか?

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

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

  1. ストップワードとは何か
  2. NLTK でストップワードを除去する
  3. 句読点と記号を除去する
  4. 再利用可能なクリーンテキスト関数を作る
← NLP Academyに戻る