詳細な説明でPythonでテキストから特徴を抽出するためのCountVectorizer
CountVectorizerを使用してPythonでテキストから特徴を抽出する詳細な方法
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!
Was this article helpful?
93 out of 132 found this helpful
Related articles