ホームページ  >  記事  >  バックエンド開発  >  Python でのテキスト前処理テクニック

Python でのテキスト前処理テクニック

王林
王林オリジナル
2023-06-11 08:56:491878ブラウズ

Python は、データ サイエンス、機械学習、自然言語処理などの分野で広く使用されている強力なプログラミング言語です。これらの分野では、テキストの前処理は非常に重要なステップであり、テキスト データのノイズを低減し、モデルの精度を向上させることができます。この記事では、Python での一般的なテキスト前処理テクニックをいくつか紹介します。

1. テキスト データの読み取り

Python では、open() 関数を使用してテキスト ファイルを読み取ることができます。

with open('example.txt', 'r') as f:
    text = f.read()

この例では、「example.txt」という名前のテキスト ファイルを開いて、その内容を読み取ります。このテキスト ファイルの内容は、「text」という名前の文字列変数に保存されます。 read() 関数の使用に加えて、readlines() 関数を使用してテキスト ファイルの内容をリストに保存することもできます。

with open('example.txt', 'r') as f:
    lines = f.readlines()

この例では、「example.txt」の内容がリストとして保存され、各行がリストの要素になります。これは、複数行のデータを一度に読み取って処理できるため、大規模なテキスト データを操作する場合に便利です。

2. 句読点と数字を削除する

テキストの前処理では、通常、テキストから句読点と数字を削除する必要があります。 Python の re モジュールは、これらのタスクを処理するための非常に便利な正規表現機能を提供します。

import re

text = "This is an example sentence! 12345."
text = re.sub(r'[^ws]', '', text) # Remove punctuation
text = re.sub(r'd+', '', text) # Remove numbers

この例では、最初に re.sub() 関数と正規表現 "1" を使用してすべての句読点とスペースを削除します。次に、 re.sub() 関数と正規表現 "d" を使用して、テキストからすべての数値を削除します。最後に、処理したテキストを文字列変数「text」に保存します。

3. 単語の分割

単語の分割とは、テキストを個々の単語に分割することを指します。 Python の nltk ライブラリと spaCy ライブラリはどちらも、非常に便利な単語分割ツールを提供します。ここでは例として nltk ライブラリを取り上げます。

import nltk

nltk.download('punkt')

text = "This is an example sentence."
words = nltk.word_tokenize(text)

この例では、最初に nltk ライブラリの punkt パッケージをダウンロードしました。これは、nltk ライブラリで非常に人気のある単語分割ツールキットです。次に、nltk.word_tokenize() 関数を使用してテキストを単語に分割し、結果を「単語」リストに保存します。

4. ストップ ワードの削除

テキスト処理では、一般的なストップ ワードを削除する必要があることがよくあります。一般的なストップ ワードには、「is」、「a」、「this」などが含まれます。 Python の nltk ライブラリと spaCy ライブラリも、優れたストップ ワード リストを提供します。以下は、nltk ライブラリを使用した例です。

import nltk

nltk.download('stopwords')

from nltk.corpus import stopwords

text = "This is an example sentence."
words = nltk.word_tokenize(text)

filtered_words = [word for word in words if word.lower() not in stopwords.words('english')]

この例では、最初に nltk ライブラリのストップワード パッケージをダウンロードし、そこから英語のストップワード リストをインポートしました。次に、リスト内包表記を使用して、テキスト内のストップワードを単語リストから削除します。最後に、ストップワードを含まない単語リスト「filtered_words」を取得します。

5.ステミング

ステミングは、さまざまな形式の単語 (時制、単数形、複数形など) を同じ形式に正規化するプロセスです。 Python の nltk ライブラリと spaCy ライブラリはどちらも、非常に便利なステミング ツールを提供します。ここでも、nltk ライブラリを例として取り上げます。

import nltk

from nltk.stem import PorterStemmer

stemmer = PorterStemmer()

text = "This is an example sentence."
words = nltk.word_tokenize(text)

stemmed_words = [stemmer.stem(word) for word in words]

この例では、最初に nltk ライブラリから PorterStemmer クラスをインポートしました。次に、PorterStemmer オブジェクトをインスタンス化します。次に、リスト内包表記を使用してテキストから語幹を抽出し、結果を「stemmed_words」リストに保存します。

6. 品詞タグ付け

品詞タグ付けは、テキスト内の単語を品詞 (名詞、動詞、形容詞など) にマークするプロセスです。 )。 Python の nltk ライブラリと spaCy ライブラリも、非常に便利な品詞タグ付けツールを提供します。ここでは、nltk ライブラリも例として取り上げます。

import nltk

nltk.download('averaged_perceptron_tagger')

text = "This is an example sentence."
words = nltk.word_tokenize(text)

tagged_words = nltk.pos_tag(words)

この例では、最初に nltk ライブラリの Averaged_perceptron_tagger パッケージをダウンロードしました。次に、nltk.word_tokenize() 関数を使用してテキストを単語に分割し、結果を「単語」リストに保存します。次に、nltk.pos_tag() 関数を使用して単語に品詞をタグ付けし、その結果を「tagged_words」リストに保存します。

概要

この記事では、テキスト データの読み取り、句読点と数字の削除、単語の分割、ストップ ワードの削除、ステミングと品詞など、Python での一般的なテキスト前処理テクニックをいくつか紹介します。タグ付けなど。これらのテクニックは非常に便利で、テキスト処理で広く使用されています。実際のアプリケーションでは、データの精度と効果を向上させるために、ニーズに応じてテキストの前処理に適切な手法を選択できます。


  1. ws

以上がPython でのテキスト前処理テクニックの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。