← retour aux snippets

sklearn: TfidfVectorizer (texte)

Transformer du texte en features TF-IDF et entraîner un modèle.

python ml #sklearn#nlp#tfidf

objectif

Transformer du texte en features TF-IDF et entraîner un modèle.

code minimal

from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import LogisticRegression

X = ["spam ham", "ham eggs", "spam spam"]
y = [1, 0, 1]
vec = TfidfVectorizer().fit(X)
Xv = vec.transform(X)
clf = LogisticRegression(max_iter=1000).fit(Xv, y)
print(len(vec.get_feature_names_out()) >= 2)

utilisation

print(clf.predict(vec.transform(["ham"]))[0] in [0,1])

variante(s) utile(s)

from sklearn.feature_extraction.text import CountVectorizer
print(hasattr(CountVectorizer(ngram_range=(1,2)), "fit"))

notes

  • Nettoyage/lemmatisation en amont améliore les résultats.