Uruchom następujący kod, aby przekonwertować matrycę tekstową na macierz TF-IDF.W jaki sposób areTF-IDF obliczane przez scikit-learn TfidfVectorizer
text = ['This is a string','This is another string','TFIDF computation calculation','TfIDF is the product of TF and IDF']
from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer = TfidfVectorizer(max_df=1.0, min_df=1, stop_words='english',norm = None)
X = vectorizer.fit_transform(text)
X_vovab = vectorizer.get_feature_names()
X_mat = X.todense()
X_idf = vectorizer.idf_
uzyskać następujący wynik
X_vovab =
[u'calculation',
u'computation',
u'idf',
u'product',
u'string',
u'tf',
u'tfidf']
i X_mat =
([[ 0. , 0. , 0. , 0. , 1.51082562,
0. , 0. ],
[ 0. , 0. , 0. , 0. , 1.51082562,
0. , 0. ],
[ 1.91629073, 1.91629073, 0. , 0. , 0. ,
0. , 1.51082562],
[ 0. , 0. , 1.91629073, 1.91629073, 0. ,
1.91629073, 1.51082562]])
Teraz ja nie rozumiem, jak te wyniki są obliczane. Mój pomysł jest taki, że w tekście [0] oblicza się tylko wynik "struny", a punktacja jest w piątym koleżu. Ale jako TF_IDF jest iloczynem częstotliwości termicznej, która wynosi 2, a IDF, która jest log (4/2) wynosi 1,39, a nie 1,51, jak pokazano w macierzy. W jaki sposób oblicza się wynik TF-IDF w nauce scikit.
To naprawdę dobra odpowiedź !! Spędziłem cały dzień na zrozumieniu tego. @Rabbit możesz pokazać w tym przykładzie, w jaki sposób stosuje się normalizację? – Himadri