Ho recentemente esaminato un'implementazione interessante per convolutional text classification. Tuttavia tutto il codice tensorflow ho rivisto utilizza un casuale (non pre-formati) i vettori che incorporano come la seguente:Utilizzo di un incorporamento di parole pre-formato (word2vec o Glove) in TensorFlow
with tf.device('/cpu:0'), tf.name_scope("embedding"):
W = tf.Variable(
tf.random_uniform([vocab_size, embedding_size], -1.0, 1.0),
name="W")
self.embedded_chars = tf.nn.embedding_lookup(W, self.input_x)
self.embedded_chars_expanded = tf.expand_dims(self.embedded_chars, -1)
Qualcuno sa come utilizzare i risultati di Word2vec o un guanto di parola embedding invece di pre-addestrato uno casuale?
creo W come segue: W = np.loadtxt ("/ media/w2vTest.txt", DTYPE = 'string', delimitatore = '') che crea come una riga: ['in' '0.070312 ......'- 0.0625']. Ci sono problemi qui! devo considerare questo come mio W dopo aver rimosso "in" e convertito i numeri da stringa a float32? se questo è il caso, allora come collegare 'in' al rispettivo vettore? O devo convertire le figure in float32 e poi lasciare "in" così com'è; mi aspetto che tensorflow faccia tutto il processo necessario? Grazie! – user3147590
Ah, hai un paio di opzioni qui. Tu * potresti * usare il TensorFlow 'tf.decode_csv() 'op per convertire il file di testo in un tensore, ma potrebbe essere costoso (in particolare richiede di creare un' Tensore' per colonna e quindi concatenare insieme i valori numerici). Forse un'alternativa più semplice sarebbe usare ['pandas.read_csv()'] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html) e ['pandas.DataFrame.as_matrix() '] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.as_matrix.html) per ottenere l'input come un array NumPy. – mrry
Usando l'opzione 2, c'è un modo per gettare via l'array NumPy e risparmiare un po 'di memoria? – morphe