2017-10-09 9 views
0

J'ai un ensemble de mots (n-grammes) où j'ai besoin de calculer les valeurs de tf-idf. Ces mots sont;Calculer tf-idf dans Gensim pour mon vocabulaire

myvocabulary = ['tim tam', 'jam', 'fresh milk', 'chocolates', 'biscuit pudding'] 

Mon corpus est le suivant.

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"} 

Je reçois actuellement des valeurs-idf pour tf mes n-grammes dans myvocabulary en utilisant sklearn comme suit.

tfidf = TfidfVectorizer(vocabulary = myvocabulary, ngram_range = (1,3)) 
tfs = tfidf.fit_transform(corpus.values()) 

Cependant, je suis intéressé à faire de même dans Gensim. Pour tous les exemples que j'ai rencontrés à Gensim;

  1. utilise seulement unigrammes (iwant pour bigrammes et trigrammes ainsi)
  2. calculé pour tous les mots (je veux seulement calculer pour les mots myvocabulary)

Par conséquent, s'il vous plaît aidez-moi pour savoir comment faire les deux choses ci-dessus dans Gensim.

Répondre

0

Dans gensim, un dictionnaire, vous devez utiliser gensim.corpora.Dictionary classe, regardez examples

Malheureusement, nous n'avons pas ngrams de soutien en général, seulement bigrams des mots avec Phrases classe

+0

Pouvez-vous me dire comment calculer tf-idf en utilisant bigrams? bigrams sont assez pour moi en ce moment :) –

+0

1. Traitez votre texte 2. Fit phrases + l'appliquer au texte (donne un nouveau texte avec bigrams) 3. Calculez tfidf avec TfidfModel –

+0

Voilà la question que j'ai. Comment entrer les bigrams sélectionnés Je veux calculer tf-idf pour le tfidfmodel: D –