Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用word2vec预训练向量,如何生成句子ID作为tf.nn的输入。在tensorflow中嵌入查找函数?_Python_Tensorflow_Gensim_Word2vec - Fatal编程技术网

Python 使用word2vec预训练向量,如何生成句子ID作为tf.nn的输入。在tensorflow中嵌入查找函数?

Python 使用word2vec预训练向量,如何生成句子ID作为tf.nn的输入。在tensorflow中嵌入查找函数?,python,tensorflow,gensim,word2vec,Python,Tensorflow,Gensim,Word2vec,为了提取输入数据的嵌入表示,tensorflow文档说明我们可以使用以下方法: embed = tf.nn.embedding_lookup(embeddings, input_data) 根据,函数tf.nn.u查找的第二个参数是ID的张量: ids:类型为int32或int64的张量,包含要在参数中查找的ID 我的问题是:给一句话,比如说 “欢迎来到世界” 如何将其表示并转换为id?在下面的代码中,我如何将我的句子转换为input\u data from gensim import mod

为了提取输入数据的嵌入表示,tensorflow文档说明我们可以使用以下方法:

embed = tf.nn.embedding_lookup(embeddings, input_data)
根据,函数tf.nn.u查找的第二个参数是ID的张量:

ids:类型为int32或int64的张量,包含要在参数中查找的ID

我的问题是:给一句话,比如说

“欢迎来到世界”

如何将其表示并转换为
id
?在下面的代码中,我如何将我的句子转换为
input\u data

from gensim import models
embedding_path = "../embeddings/GoogleNews-vectors-negative300.bin"
w = models.Word2Vec.load_word2vec_format(embedding_path, binary=True)
X = w.syn0
W = tf.Variable(tf.constant(0.0, shape=X.shape),trainable=False, name="W")
embedding_placeholder = tf.placeholder(tf.float32, X.shape)
embedding_init = W.assign(embedding_placeholder)
embed = tf.nn.embedding_lookup(embedding_init, input_data)
sess = tf.Session()
sess.run(embed, feed_dict={embedding_placeholder: X})

我在找这样的代码。我不知道
w
的类属性-在gensim网站上找不到它们

s = "hello, how are you?"
tokens = tokenize(s)//function that returns a list of the tokens in a sentence

ids = []
for key in tokens:
  try:
    ids.append(w.vocab[key].index)
  except:
    ids.append(w.vocab['UNK'].index)

您可以简单地将每个单词映射到一个数字,并生成相应的张量。你没看过TensorFlow RNN教程吗?谢谢@martianwars。我看过那个教程,但它没有使用gensim的word2vec,而是用字符创建了自己的词汇表。这些ID必须对应于预训练向量中的单词——如果你明白我的意思的话。这实际上显示了gensim的力量。谢谢你的帖子。如果我们必须从原始嵌入文件手动创建此索引,则需要更长的时间。