tensorflow中的CRF

tensorflow中的CRF

先说说本文背景,是作者需要用bilstm+crf实现sequences labeling,因此调研了tensorflow中如何实现CRF。

几个方法

  • tf.contrib.crf.crf_log_likelihood

crf_log_lmelihood (
inputs ,
tag_indices ,
sequence_lengths ,
transition_params = None

计算 CRF 中标签序列的对数似然。

ARGS:
inputs:用作 CRF 层输入的一元电位 [batch_size,max_seq_len,num_tags] 张量。
tag_indices:我们计算对数似然的标签索引的 [batch_size,max_seq_len] 矩阵。
sequence_lengths:真正序列长度的 [batch_size] 矢量。
transition_params:一个 [num_tags,num_tags] 转换矩阵,如果可用。

返回:

log_likelihood:包含给定序列标签索引的对数似然的标量。
transition_params:一个 [num_tags,num_tags] 转换矩阵。这是由调用者提供或在此函数中创建的。

  • tf.contrib.crf.viterbi_decode
    解码 TensorFlow 之外的标记的最高得分序列。这只能在测试时使用。

ARGS:
score:一元电位的 [seq_len,num_tags] 矩阵。
transition_params:二进制电位的 [num_tags,num_tags] 矩阵。

返回:
viterbi:包含最高得分标记索引的 [seq_len] 整数列表。
viterbi_score:包含维特比序列得分的浮点数。

你可能感兴趣的:(学习笔记)