ml tf_idf - ghdrako/doc_snipets GitHub Wiki

TF-IDF(Term Frequency Inverse Document Frequency).

TF-IDF measures how important a word is within an individual email while reducing the influence of words that appear frequently across many messages.

from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer = TfidfVectorizer(
    stop_words="english",
    max_features=5000
)
X_train_tfidf = vectorizer.fit_transform(
    X_train
)
X_test_tfidf = vectorizer.transform(
    X_test)

The vectorizer learns the vocabulary from the training data and transforms every email into a numerical feature vector

ekstrakcję cech tekstowych za pomocą TF-IDF, czyli sposób przekształcenia tekstu wiadomości na wartości liczbowe, które następnie mogą być wykorzystane przez algorytm uczenia maszynowego.

  1. TF – częstość występowania terminu

TF (Term Frequency) określa, jak często dane słowo występuje w dokumencie. Dla słowa t i dokumentu d: ​

  1. IDF – odwrotna częstość dokumentowa

IDF (Inverse Document Frequency) określa, jak charakterystyczne jest dane słowo dla całego zbioru dokumentów: Jeżeli słowo występuje w prawie każdym dokumencie, jego IDF będzie niskie. Jeżeli występuje tylko w kilku dokumentach, IDF będzie wysokie.

  1. TF-IDF

Ostatecznie:

Czyli metoda nadaje większą wagę słowom, które często występują w konkretnym dokumencie, ale jednocześnie nie występują często w całym korpusie.

Przykładowo w klasyfikacji SPAM słowo:

„the” – może występować w bardzo wielu wiadomościach → niska wartość IDF, „viagra” – może występować znacznie rzadziej, ale często w określonych wiadomościach → wyższa wartość TF-IDF.