句読点と記号を除去する
モデルを混乱させる文字を取り除く
「句読点と記号を除去する」は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フィードバックを取得できます。ローカル設定は不要です。