特徴量を絞り込む
ご覧のとおり、CountVectorizer をデフォルト設定で使うと、コーパス内のあらゆる単語に対して特徴量が作られます。これでは特徴量が多すぎて、分析価値がほとんどないものまで含まれてしまうことがあります。
そのために、CountVectorizer には特徴量数を減らすためのパラメータがあります。
min_df: ある単語が出現する文書の割合がこの値より大きい場合のみ使用します。テキスト間で一般化しない外れ値的な単語を除外するのに使えます。max_df: ある単語が出現する文書の割合がこの値より小さい場合のみ使用します。例えば "and" や "the" のように、どのコーパスにも現れるわりに価値を加えない非常によく使われる単語を取り除くのに有効です。
この演習はコースの一部です
Python で学ぶ Machine Learning のための特徴量エンジニアリング
演習の手順
- CountVectorizer の特徴量数を制限するため、単語が出現できる文書の最小割合を 20%、最大割合を 80% に設定します。
text_clean列に対して、ベクトライザの学習と適用を1ステップで行います。- 変換後の(疎)配列を、カウント値を持つ numpy 配列に変換します。
- 次元数を表示して、新しい縮約後の配列の形状を確認します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import CountVectorizer
from sklearn.feature_extraction.text import CountVectorizer
# Specify arguements to limit the number of features generated
cv = ____
# Fit, transform, and convert into array
cv_transformed = ____(speech_df['text_clean'])
cv_array = ____
# Print the array shape
print(____)