
この記事では、文字列データ型の機械学習用の資料を準備するための究極のガイドを説明します。または、機械学習を実装する前に、NLP のテキスト クリーニングを呼び出します。この部分が終わるまでに、Python を使用してプロジェクト内の文字列データをクリーンアップできるようになります。
目次: 機械学習の準備における NLP のテキスト クリーニングに関する究極のガイド
- 機械学習における NLP のためのテキスト クリーニングとは何ですか
- 大文字と小文字の正規化
- Unicode 文字の削除
- すべてのコンテンツを文字列データ型でトークン化する
- ストップワードの処理
- 見出し語化
- セマンティック処理のための POS タグ付け
- Pandas、Numpy、Scikit Learn を使用したデータの前処理
- 機械学習における NLP のためのテキスト クリーニングの完全な Python スクリプト (Web アプリ、DApp、またはクラウド上にデプロイされた関数で NLTK データ ファイルを処理する方法を含む)
- よくある質問
機械学習における NLP のためのテキスト クリーニングとは何ですか
テキスト クリーニングは、機械が人間の言語を直接かつ明確に理解できるように、NLP (自然言語処理) 用に生のテキストを準備するプロセスです。基本的に、これには、これから行うプロジェクトに関する 3 つの主要な部分が含まれています。
- 文字のクリーニングと不純物の除去
- トークン化とセマンティックによるグループ化
- 機能とターゲットのデータ構造
大文字と小文字の正規化
異なる単語間で大文字の使用が異なる場合、または同じ単語が含まれる場合、コンピューターがコンテンツとセマンティクスを理解するのが混乱する可能性があります。まず最初に、すべての単語の標準的な大文字化を設定するコードサンプルを次に示します。
abc = content.lower()
Unicode 文字の削除
コンテンツ部分には、絵文字、URL、電子メール アドレスなど、非常に多くの Unicode 文字が含まれています。実際、これらの文字は適切に処理する必要があり、そうしないとコンピュータが混乱する可能性があります。以下に、すべての URL と電子メール アドレスを処理するための 2 つの正規表現コード サンプルを示します。
URL:
content = re.sub(r"(@[A-Za-z0-9]+)|([^0-9A-Za-z \t])|(\w+:\/\/S+)|^rt|http.+?", "", content)
電子メール:
content = re.sub(r"([A-z0-9._%+-]+@[A-z0-9.-]+\.[Az]{2,4}
", "", content)
すべてのコンテンツをリスト内の個別の値としてトークン化する
不要な Unicode 文字をすべて削除した後、コンテンツをトークン化してリストを作成する必要があります。
Pythonを使ったサンプルはこちら
word_tokens = word_tokenize ( content )
ストップワードの処理
言語には、意味に価値を加えることができない単語がかなり多く、それらのほとんどは一種の言語文法です。したがって、ストップワードの処理は、このような種類の単語を減らすことで、コンピューターへの混乱をさらに軽減するタスクです。
これは、Python で最も人気のあるパッケージの 1 つである NLTK を使用したサンプルです。
nltk . download ( 'stopwords' )
nltk . download ( 'punkt' )
nltk . download ( 'wordnet' )
nltk . data . path . append ( 'nltk_data/corpora/stopwords' )
nltk . data . path . append ( 'nltk_data/tokenizers/punkt' )
nltk . data . path . append ( 'nltk_data/corpora/wordnet' )
stopwords123 = set ( stopwords . words ( 'english' ))
NLTK 構築機能とクラウド上にデプロイされたアプリの使用に興味があるが、NLTK データ ソースをデプロイする方法がわからない場合は、この記事の最後にある次の形式で購読してください。
最後になりましたが、上でトークン化したリストからすべてのストップワードを削除するコードを作成できます。そして、リストでは、それは核となる価値のメッセージとコンテンツにとどまります。
見出し語化
人間の言語には過去、現在、未来の時制があります。また、意味を表現するために一人称、二人称、三人称の角度があります。そこで、不要な単語やタイプミスを排除することを目的としたこれを処理する方法が見出し語化です。
lemmatizer = WordNetLemmatizer ()
for lemmatizedContent in content :
lemmatizer . lemmatize ( lemmatizedContent )
セマンティック処理のための POS タグ付け
大量のコンテンツの POS 合計を集計するには、意味上の目的に基づいて単語にタグを付けてグループ化する必要があります。人間の言語には、名詞、動詞、形容詞、副詞など、さまざまな種類の単語があります。さらに、音声では同じ単語が変化する場合もあります。
したがって、音声のセマンティクスと目的を区別するには、POS タグ付けが必要です。混乱を避けるために、機械がこの目的を理解するためです。
Pandas、Numpy、Scikit Learn を使用したデータの前処理
Python と Scikit Learn を使用したデータ前処理のヒント
機械学習における NLP のためのテキスト クリーニングの完全な Python スクリプト (Web アプリ、DApp、またはクラウド上にデプロイされた関数で NLTK データ ファイルを処理する方法を含む)
機械学習の準備における NLP 用のテキスト クリーニングの完全な Python スクリプトに興味がある場合は、 「NLP テキスト クリーン + NLTK データ展開 + フル スクリプトとスクレイピング API 無料トークン」というメッセージを追加してニュースレターを購読してください。 。最新のアプリ スクリプトが公開されたら、スクリプトを送信します。
機械学習の準備における NLP のためのテキスト クリーニングの究極ガイドを楽しんで読んでいただければ幸いです。もしそうなら、以下にリストされているいずれかの方法で私たちをサポートしてください。それは常に私たちのチャンネルに役立ちます。
- PayPal ( paypal.me/Easy2digital ) を通じて私たちのチャンネルをサポートし、寄付してください。
- 私のチャンネルを購読し、 Easy2Digital Youtube チャンネルの通知ベルをオンにしてください。
- Easy2Digital Facebook ページをフォローして「いいね!」してください
- ハッシュタグ #easy2digital を付けて記事をソーシャル ネットワークで共有してください
- Easy2Digital の最新記事、ビデオ、割引コードを受け取るには、毎週のニュースレターに登録してください。
- Patreon を通じて月額メンバーシップに登録すると、限定特典をお楽しみいただけます ( www.patreon.com/louisludigital )