7章 テキストデータの処理
7章
コードにわからない部分が多い。導入も苦労した。
・BOW(bag of words)
1-トークン分割
スぺースや句読点で句切り、細かい単位(単語…)にする。
2-ボキャブラリ構築
ボキャブラリとして整理し番号をつける。
3-エンコード
個々の文章に現れる回数を数える。
・CountVectorizer
from sklearn.feature_extraction.text import CountVectorizer
vect=CountVectorizer()
vect.fit(bards_words)
print(f"Vocabulary size:{len(vect.vocabulary_)}")
print(f"Vocabulary content:{vect.vocabulary_}")
bag_of_words =vect.transform(bards_words)
print(f"bag_of_words:{repr(bag_of_words)}")
#単語それぞれを特徴量とした疎行列ができる。
・min_df=N
vect =CountVectorizer(min_df=N).fit(text_train)
N回以上の出現率のみの単語でボキャブリを構築できる。
・stop words
あらかじめ定められた頻出単語を省略できる。
from sklearn.feature_extraction.text import ENGLISH_STOP_WORDS
・tf-idf
全文書の頻出単語を別として特定の文章にのみ頻出する単語に重みを与える前処理。
from sklearn.feature_extraction.text import TfidfVectorizer
・ngram_range
単語の組み合わせ数を指定する。
cv=CountVectorizer(ngram_range=(1,1)).fit(bards_words)
#ngram_range=(n,N) n以上N以下の連続した単語組み合わせを指定する。
・語幹処理(stemming)、見出し語(lemma)
単複、時制などの語尾変化対応として、特定の単語末尾を取り除くのが語幹処理(stemming)、文章での役割を考慮するのが見出し語(lemma)。
この前処理は正規化の一種である。
※7.8から入力で躓く。ここで終わりでもいいか?