詳細な説明でPythonでテキストから特徴を抽出するためのCountVectorizer

CountVectorizerを使用してPythonでテキストから特徴を抽出する詳細な方法

UnsplashのTowfiqu barbhuiyaさんによる写真

CountVectorizerをSklearnで効率的に使用するために知っておく必要があること

自然言語処理(NLP)プロジェクトで必要とされる最も基本的なデータ処理は、テキストデータを数値データに変換することです。テキスト形式のデータは、計算処理を行うことができません。

このテキストから数値データへの変換には、複数の方法があります。このチュートリアルでは、scikit-learnライブラリの最も基本的なベクトル化手法であるCountVectorizerメソッドについて説明します。

このメソッドは非常にシンプルです。各単語の出現頻度を数値として使用します。例を挙げて説明します。

以下のコードブロックで行います:

  • CountVectorizerメソッドをインポートします。
  • 該当メソッドを呼び出します。
  • テキストデータをCountVectorizerメソッドにフィットさせ、配列に変換します。
import pandas as pd from sklearn.feature_extraction.text import CountVectorizer #ベクトル化されるテキストtext = ["こんにちは皆さん!私はリリーです。私の叔母もリリーという名前です。私は叔母が大好きです。\        カウントベクトルライザーの使用方法を学ぼうとしています。"]cv = CountVectorizer() count_matrix = cv.fit_transform(text)cnt_arr = count_matrix.toarray()cnt_arr

出力:

array([[1, 1, 2, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 1, 1]],      dtype=int64)

上記のテキストデータに対して、数値が表示されます。

どの数値がテキスト内のどの単語を表すか、どうやって知ることができますか?

それを明確にするために、配列をデータフレームに変換すると便利です。列名は各単語になります。

cnt_df = pd.DataFrame(data = cnt_arr, columns = cv.get_feature_names())cnt_df

これで明確になりました。単語「also」の値は1で、テスト中に1回の出現を意味します。「aunt」という単語はテキスト中に2回出現しました。したがって、「aunt」という単語の値は2です。

前の例では、すべての文が1つの文字列に含まれていました。そのため、4つの文に対して1つのデータ行しか得られませんでした。テキストを再配置してみましょう。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more