2017-03-22 1 views
1

Je passe en revue les exemples de keras et j'ai exécuté l'exemple d'utilisation d'un LSTM pour classer les sentiments sur le jeu de données intégré imdb (https://github.com/fchollet/keras/blob/master/examples/imdb_lstm.py). Lors de l'inspection des données, chaque révision est représentée sous la forme d'un tableau de nombres que je suppose être leur index d'un vocabulaire construit en utilisant cet ensemble de données.Comment saisir un nouveau texte pour une prédiction dans keras en utilisant un ensemble de données intégré

Ma question cependant est de savoir comment entrer un nouveau texte (quelque chose que je compose) dans ce modèle pour obtenir une prédiction? Comment aurais-je accès à ce vocabulaire de mots? Après cela, je pourrais pré-traiter par le texte d'entrée dans un tableau de nombres et le nourrir. Merci!

Répondre

1

L'ensemble de données met également à disposition l'index de texte utilisé pour coder les séquences:

word_index = reuters.get_word_index(path="reuters_word_index.pkl")

Il retourne également un dictionnaire où la clé sont des mots (str) et les valeurs sont des index (entier). par exemple. word_index["giraffe"] peut renvoyer 1234.

2

Lors de la prévision d'un nouveau texte, vous devez suivre la même procédure que celle que vous avez suivie pour l'entraînement.

  • Prétraitez cette nouvelle phrase.
  • Convertir le texte à vecteur en utilisant word_index
  • Pad que vous avez spécifié lors de la formation
  • de vecteur avec la même longueur Aplatir le tableau et le transmettre comme entrée à votre modèle
sentences = clean_text(text) 

word_index = imdb.get_word_index() 

x_test = [[self.word_index[w] for w in sentences if w in self.word_index]] 

x_test = pad_sequences(x_test, maxlen=maxlen) # Should be same which you used for training data 

vector = np.array([x_test.flatten()]) 

model.predict_classes(vector)  
+0

simple! Joli – gnanagurus