作家
登录

用深度神经网络处理NER命名实体识别问题

作者: 来源: 2017-06-01 08:55:13 阅读 我要评论

.config.label_size]) 
  •     b2 = tf.get_variable('b2', [self.config.label_size]) 
  •     y = tf.matmul(h, U) + b2 
  •     if self.config.l2: 
  •         tf.add_to_collection('total_loss'0.5 * self.config.l2 * tf.nn.l2_loss(U)) 
  •   output = tf.nn.dropout(y, self.dropout_placeholder)                                    # 返回 output,两个variable_scope都带dropout 
  •  
  •   return output 
  • 关于 L2正则化 和 dropout 是什么, 若何减小过拟合问题的,可以看 这篇博客,总结的简单清楚明了。

    用 cross entropy 来计算 loss:

    接着用 Adam Optimizer 把loss最小化:

    1. def add_training_op(self, loss): 
    2.  
    3.   optimizer = tf.train.AdamOptimizer(self.config.lr) 
    4.   global_step = tf.Variable(0, name='global_step', trainable=False
    5.   train_op = optimizer.minimize(loss, global_step=global_step)    # 2.关键步调:用 AdamOptimizer 使 loss 达到最小,所以更关键的是 loss 
    6.  
    7.   return train_op 

    每一次练习后,获得了最小化 loss 响应的 weights。

    1. def add_loss_op(self, y): 
    2.  
    3.   cross_entropy = tf.reduce_mean(                                                        # 1.关键步调:loss是用cross entropy定义的 
    4.       tf.nn.softmax_cross_entropy_with_logits(y, self.labels_placeholder))                # y是模型猜测值,计算cross entropy 
    5.   tf.add_to_collection('total_loss', cross_entropy)            # Stores value in the collection with the given name. 
    6.                                                               # collections are not sets, it is possible to add a value to a collection several times. 
    7.   loss = tf.add_n(tf.get_collection('total_loss'

        推荐阅读

        你真的了解混合云吗?钻入云端看几个让人混淆的云计算概念

      【51CTO.com原创稿件】云计算慢慢进入深水区,传统的公有云和私有云都已经裸露出必定的局限性,是以混淆云似乎>>>详细阅读


      本文标题:用深度神经网络处理NER命名实体识别问题

      地址:http://www.17bianji.com/lsqh/35497.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)