あなたのデータはあなたがパッケージsklearn
のCountVectorizer
を使用することができ
import pandas as pd
df = pd.DataFrame([
'must watch. Good acting',
'average movie. Bad acting',
'good movie. Good acting',
'pathetic. Avoid',
'avoid'], columns=['description'])
のようなものである場合:
あなたに与え
from sklearn.feature_extraction.text import CountVectorizer
word_vectorizer = CountVectorizer(ngram_range=(1,2), analyzer='word')
sparse_matrix = word_vectorizer.fit_transform(df['description'])
frequencies = sum(sparse_matrix).toarray()[0]
pd.DataFrame(frequencies, index=word_vectorizer.get_feature_names(), columns=['frequency'])
:
frequency
good 3
pathetic 1
average movie 1
movie bad 2
watch 1
good movie 1
watch good 3
good acting 2
must 1
movie good 2
pathetic avoid 1
bad acting 1
average 1
must watch 1
acting 1
bad 1
movie 1
avoid 1
EDIT
fit
あなたのコーパスの単語を分割してそれを使ってボキャブラリを作成します。その後、transform
は、新しい文書を取得し、ベクトル化ボキャブラリに基づいて頻度のベクトルを作成することができます。
ここでトレーニングセットは出力セットなので、両方を同時に行うことができます(fit_transform
)。 5つの文書があるので、5つのベクトルが行列として作成されます。グローバルベクトルが必要なので、sum
にする必要があります。
+1 fit_transform()/ fit()/ transform()の違いを説明できますか?どのようにしてsum(sparse_matrix).toarray()[0]が周波数を与えるのか分かりましたか?私はscikitでこれを撤回する多くの情報を見つけられませんでした。 –
@ML_Pro答えに説明を追加しました。 – Till
答えとして表示されます。非常に役立つ説明。 –