发新帖

nn.embedding_lookup未登录词疑问

[复制链接]
565 3

快来加入 TensorFlowers 大家庭!

您需要 登录 才可以下载或查看,没有帐号?加入社区

x

               一个RNN网络定义代码如下:
  1. # Embedding layer
  2.         with tf.name_scope("embedding"):
  3.             self.W = tf.Variable(
  4.                 tf.constant(0.0, shape=[vocab_size, embedding_size]),
  5.                 trainable=trainableEmbeddings,name="W")
  6.             self.embedded_words1 = <font color="#ff0000">tf.nn.embedding_lookup(self.W, self.input_x1)</font>
  7.             self.embedded_words2 = <font color="#ff0000">tf.nn.embedding_lookup(self.W, self.input_x2)</font>
  8.         print self.embedded_words1
  9.         # Create a convolution + maxpool layer for each filter size
  10.         with tf.name_scope("output"):
  11.             self.out1=self.stackedRNN(self.embedded_words1, self.dropout_keep_prob, "side1", embedding_size, sequence_length, hidden_units)
  12.             self.out2=self.stackedRNN(self.embedded_words2, self.dropout_keep_prob, "side2", embedding_size, sequence_length, hidden_units)
  13.             self.distance = tf.sqrt(tf.reduce_sum(tf.square(tf.subtract(self.out1,self.out2)),1,keep_dims=True))
  14.             self.distance = tf.div(self.distance, tf.add(tf.sqrt(tf.reduce_sum(tf.square(self.out1),1,keep_dims=True)),tf.sqrt(tf.reduce_sum(tf.square(self.out2),1,keep_dims=True))))
  15.             self.distance = tf.reshape(self.distance, [-1], name="distance")
复制代码
              上图标红部分,表示获取词向量。input_x1输入的是词在词表中的位置,结果为这个词对应的词向量。

              我测试tf.nn.embedding_lookup在下标不合法的情况下会报异常。当模型训练完成后,做预测的时候,实际场景中肯定会存在“未登录”词,没有词向量;标红部分就会报异常,请问实际中为啥都这么写?是有什么细节我没有理解吗?请大神解答。

              下面是我阅读的代码部分:https://github.com/ATEC2018/deep ... network_semantic.py


我知道答案 回答被采纳将会获得10 金币 + 5 金币 已有3人回答
本楼点评(0) 收起

精彩评论3

ViolinSolo  TF豆豆  发表于 2018-7-6 19:35:29 | 显示全部楼层
呃 关注一下,我看了半天才看到你说的标红的地方是哪里
好久不做nlp了,我猜测啊,是因为那些未收录的词是你不关心的词,遇到就放弃就好了,,,所以这就是为什么要自己训练w2v,个人理解哈求大神指正
本楼点评(0) 收起
imy  TF荚荚  发表于 2018-7-7 20:25:28 来自手机  | 显示全部楼层
实际预测的输入值都要经过预处理成为只有字典里的值
本楼点评(0) 收起
Watermelon  TF荚荚  发表于 2018-7-9 14:38:08 | 显示全部楼层
个人觉得,采用的字典中会包含一项“其他”, 不重要的词或者没见过的词应该算在这一类里面。
本楼点评(0) 收起
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

快速回复 返回顶部 返回列表