TfIdf: Meer manieren om tekst te transformeren

Sentimentanalyse in Python

Violeta Misheva

Data Scientist

Waaruit bestaat TfIdf?

  • TF: termfrequentie: Hoe vaak een woord voorkomt in een document in het corpus

  • Inverse documentfrequentie: Log-verhouding tussen het totaal aantal documenten en het aantal documenten met een specifiek woord

    • Bepaalt het gewicht van woorden die zelden voorkomen
Sentimentanalyse in Python

TfIdf-score van een woord

  • TfIdf-score:
TfIdf = termfrequentie * inverse documentfrequentie
  • BOW houdt geen rekening met documentlengte; TfIdf wel.
  • TfIdf pikt woorden op die binnen een document vaak voorkomen maar niet over documenten heen.
Sentimentanalyse in Python

Waarvoor is TfIdf handig?

Twitter airline sentiment
  • Lage TfIdf-scores: United, Virgin America
  • Hoge TfIdf-scores: check-inproces (als zeldzaam over documenten)
Meer over TfIdf
  • Omdat het frequente woorden afstraft, minder noodzaak om expliciet stopwoorden te verwijderen.
  • Heel nuttig in zoekopdrachten en information retrieval om relevantie te rangschikken.
Sentimentanalyse in Python

TfIdf in Python

# Import the TfidfVectorizer
from sklearn.feature_extraction.text import TfidfVectorizer
  • Argumenten van 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)
Sentimentanalyse in Python

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()

bovenste 5 rijen van data gemaakt met TfIdf

Sentimentanalyse in Python

Laten we oefenen!

Sentimentanalyse in Python

Preparing Video For Download...