TfIdf:テキスト変換のさらなる方法

Pythonで学ぶSentiment Analysis

Violeta Misheva

Data Scientist

TfIdfの構成要素は?

  • TF:単語頻度:コーパス内の各文書で、その語が現れる回数

  • 逆文書頻度(IDF):全文書数と特定の語を含む文書数の対数比

    • まれな語に重みを与えるために使用
Pythonで学ぶSentiment Analysis

語のTfIdfスコア

  • TfIdf スコア
TfIdf = term frequency * inverse document frequency
  • BOWは文書の長さを考慮しないが、TfIdfは考慮する。
  • TfIdfは、文書内では一般的だが全体ではまれな語を捉えやすい。
Pythonで学ぶSentiment Analysis

TfIdfはどう役立つ?

Twitterの航空会社感情分析
  • 低いTfIdf:United、Virgin America
  • 高いTfIdf:check-in process(文書全体でまれな場合)
TfIdfの補足
  • 出現頻度の高い語を減点するため、ストップワード処理の必要性が下がる。
  • 検索・情報検索で、結果の関連度ランク付けに有用。
Pythonで学ぶSentiment Analysis

PythonでのTfIdf

# Import the TfidfVectorizer
from sklearn.feature_extraction.text import TfidfVectorizer
  • TfidfVectorizerの主な引数:max_features, ngram_range, stop_words, token_pattern, max_df, min_df
vect = TfidfVectorizer(max_features=100).fit(tweets.text)
X = vect.transform(tweets.text)
Pythonで学ぶSentiment Analysis

TfidfVectorizer

X
<14640x100 sparse matrix of type '<class 'numpy.float64'>'
    with 119182 stored elements in Compressed Sparse Row format>
X_df = pd.DataFrame(X_txt.toarray(), columns=vect.get_feature_names())
X_df.head()

TfIdfで作成したデータの先頭5行

Pythonで学ぶSentiment Analysis

演習に進みましょう!

Pythonで学ぶSentiment Analysis

Preparing Video For Download...