Ich habe eine Vokabelliste, die N-Gramm wie folgt enthalten.Berechne TF-IDF mit sklearn für N-Gramm in Python
myvocabulary = ['tim tam', 'jam', 'fresh milk', 'chocolates', 'biscuit pudding']
Ich möchte diese Wörter verwenden, um TF-IDF-Werte zu berechnen.
Ich habe auch ein Wörterbuch des Korpus wie folgt (Schlüssel = Rezeptnummer, Wert = Rezept).
corpus = {1: "making chocolates biscuit pudding easy first get your favourite biscuit chocolates", 2: "tim tam drink new recipe that yummy and tasty more thicker than typical milkshake that uses normal chocolates", 3: "making chocolates drink different way using fresh milk egg"}
Ich verwende derzeit den folgenden Code.
from sklearn.feature_extraction.text import TfidfVectorizer
tfidf = TfidfVectorizer(vocabulary = myvocabulary, stop_words = 'english')
tfs = tfidf.fit_transform(corpus.values())
jetzt bin ich Druck Tokens oder n-Gramm der Rezeptur 1 in corpus
zusammen mit dem TF-IDF-Wert wie folgt.
feature_names = tfidf.get_feature_names()
doc = 0
feature_index = tfs[doc,:].nonzero()[1]
tfidf_scores = zip(feature_index, [tfs[doc, x] for x in feature_index])
for w, s in [(feature_names[i], s) for (i, s) in tfidf_scores]:
print(w, s)
Die Ergebnisse, die ich bekomme, ist chocolates 1.0
. Mein Code erkennt jedoch keine N-Gramme (Bigramme) wie biscuit pudding
bei der Berechnung von TF-IDF-Werten. Bitte lassen Sie mich wissen, wo ich den Code falsch mache.
Ich möchte die TD-IDF-Matrix für myvocabulary
Begriffe unter Verwendung der Rezepturdokumente in corpus
erhalten. Mit anderen Worten, die Zeilen der Matrix repräsentieren myvocabulary
und die Spalten der Matrix repräsentieren die Rezepturdokumente meiner corpus
. Bitte hilf mir.
Werfen Sie einen Blick auf 'tokenizer',' token_pattern' und 'ngram_range' params in der TfidfVectorizer. –