如何使用syntaxnet的--word_embeddings选项

时间:2016-07-21 05:12:38

标签: tensorflow syntaxnet

我正在研究Tensoflow的Syntaxnet

然而,我对使用--word_embeddings选项的方式感到困惑。你能告诉我一个例子吗?非常感谢。

1 个答案:

答案 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)可以输入模型进行进一步处理。