我正在研究Tensoflow的Syntaxnet。
然而,我对使用--word_embeddings
选项的方式感到困惑。你能告诉我一个例子吗?非常感谢。
答案 0 :(得分:0)
不太确定是什么语法网,但这里是我如何在序列模型中使用字嵌入来进行序列模型。
这里我声明一个存储嵌入的变量。它是一个矩阵,其行数等于词汇表中的单词数(NWORDS),每列是该单词的单词向量的大小(WORD_VEC_SIZE)。它是随机初始化的,是模型的可训练参数。
word_embedding = tf.get_variable('word_embedding', shape = (NWORDS, WORD_VEC_SIZE), initializer = tf.truncated_normal_initializer(0.0, 1,0))
我的模型的输入是一个整数列表,它表示嵌入中单词的索引。它的大小为BATCH_SIZE x TIMESTEPS。
source_input = tf.placeholder(tf.int32, (BATCH_SIZE, TIME_STEPS), 'source_input')
使用嵌入和输入我可以执行查找以将单词的整数表示转换为向量。
y = tf.nn.embedding_lookup([word_embedding], source_input)
现在y的形状(BATCH_SIZE,TIME_STEPS,WORD_VEC_SIZE)可以输入模型进行进一步处理。