ner计算准召的坑

2023-10-27

1、踩了个大坑,记录一下

声明:不喜欢写estimator所以才踩的坑

1、from tensorflow.contrib import crf 如果想使用这个函数,tensorflow的版本号要在1.14以下,1.12就可以,不要相信那些乱七八糟要求各种版本的

2、

log_likelihood, trans = tf.contrib.crf.crf_log_likelihood(
    inputs=logits,
    tag_indices=self.labels,
    sequence_lengths=self.lengths,
    transition_params=trans)
return tf.reduce_mean(-log_likelihood)=loss, trans
pred_ids, _ = crf.crf_decode(potentials=logits, transition_params=trans, sequence_length=self.lengths)

crf函数可以返回函数的损失,转移矩阵,最有路径的结果,我们要根据最有路径的结果与原始标签来计算acc和recall

3、input_label是真实标签(?*100)?表示batch_size的大小;pred_ids是预测标签(?*100)?表示batch_size的大小

acc = a(预测为实体且真实为实体的个数)/b(预测为实体的个数)

recall = a(预测为实体且真实为实体的个数)/c(实际实体的个数)

首先你要知道你实体的标签id是什么,如["O", "B-person", "CLS", "Seq"],那么你的标签id就是1

先计算a,思路步骤:

         1、input_label中元素为1,2,3的位置置true,其余位置false,并转换成float。mid_1_1 = tf.cast(tf.equal(self.input_label, 1),tf.float32)

         2、input_label和pred_ids中相同位置元素相同置true,否则置false,与转换成flaot。mid_1 = tf.cast(tf.equal(self.input_label, self.pred_ids),tf.float32)

        3、两个相乘得到的结果就是a。mid_1_1_1 = tf.reduce_sum(tf.multiply(mid_1_1, mid_1))

计算b,思路步骤:

        1、计算pred_ids中为实体的元素位置:mid_2_1 = tf.equal(self.pred_ids, 1)

        2、recall_ner = tf.reduce_sum(tf.cast(mid_2_1, tf.float32))

计算c,思路步骤:true_ner = tf.reduce_sum(tf.cast(mid_1_1, tf.float32))

acc还是precision我记不清了

acc = a/b

recall = a/c

 

 

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ner计算准召的坑 的相关文章

随机推荐

  • mysql初始化失败解决方法

    当初始化后 无法进入mysql 需要再次初始化 注意 一定要先关闭mysql再删除data mysql文件 如果忘记关闭mysql 再次初始化会出现错误 怎么解决呢 首先 执行 netstat antlp grep mysql 找到进程号
  • Android Studio多功能闹钟[android源码]

    Android Studio多功能闹钟 android源码 多功能闹钟App 简 介 主 要 技 术 界面截图 主要代码 源码链接 作者信息 多功能闹钟App 简 介 此多功能闹钟界面采用TabHost框架 头部包含分别用LinearLay
  • C++基本使用--运行阶段类型识别

    运行阶段类型识别 dynamic cast dynamic cast 运行阶段类型识别 RTTI RunTime Type Identification 为程序在运行阶段确定对象的类型 只适用于包含虚函数的类 dynamic cast运算符
  • element-ui tree 树形控件复选框实现单选

    项目开发中在使用到 tree 树形控件实现单选功能 element ui 官方给出来复选事件 并没有单选操作 自己就研究了一下 代码如下 1 template 代码中
  • Git 常见错误 之 error: src refspec xxx does not match any / error: failed to push some refs to 简单解决方法

    Git 常见错误 之 error src refspec xxx does not match any error failed to push some refs to 简单解决方法 目录 Git 常见错误 之 error src ref
  • c 传入易语言字节,c的w2a 一个转换。 易语言肿么写

    include typedef unsigned short ushort typedef unsigned char uchar typedef union CRC ushort crc16 uchar by 2 CRC 输入不带CRC码
  • 用C++写android程序(包含界面+发短信)

    首先为什么要用C 写android程序呢 主要是因为java写的android程序太容易被发编译 相对于java编译后的dex文件 底层的native so更加不容易被反编译 所以为了安全起见 可以将一些程序的逻辑写到C 里面 下面我们就写
  • git基本操作(git权威指南笔记)

    打里程碑 git tag m Say bye bye to all previous practice old practice git describe 将最近的提交显示一个易记的名称 最近的里程碑作为 基础版本号 后面附加标识距离 基础
  • 十大排序算法C++实现

    1 插入排序 和玩纸牌游戏一样 抓牌时小的插在前边 后边牌往后移动 void insertSort int arr int len if arr len lt 2 return int preIndex 0 curVal 0 for int
  • esp8266-i2s无线音频--转

    I2S 3 Wire Connection 原网址 https circuitdigest com microcontroller projects i2s communication on esp32 to transmit and re
  • SpringBoot集成ElasticSearch

    学习网站 官网 参考视频 狂神 依赖导入 创建一个SpringBoot项目 加进入依赖
  • C/C++的redefinition

    在头文件里写下下面两行相同的代码 typedef int X typedef int X gcc编译马上就会报redefinition of typedef X 换g 居然啥事没有 怪异吧 于是去查文档 发现C 里是这样描述的 In a g
  • CUDA ---- Constant Memory

    CONSTANT MEMORY constant Memory对于device来说只读但是对于host是可读可写 constant Memory和global Memory一样都位于DRAM 并且有一个独立的on chip cache 比直
  • 从CCF一道试题《碰撞的小球》看:面向过程与面向对象编程方式的差异

    题目如下 试题编号 201803 2 试题名称 碰撞的小球 时间限制 1 0s 内存限制 256 0MB 问题描述 问题描述 数轴上有一条长度为L L为偶数 的线段 左端点在原点 右端点在坐标L处 有n个不计体积的小球在线段上 开始时所有的
  • 使用pands.rolling方法实现移动窗口的聚合计算

    一个问题举例 假设有一个5天的收益数据 需要每3天求出一次平均值来达成某个需求 date revenue 2023 05 01 10 2023 05 02 20 2023 05 03 30 2023 05 04 40 2023 05 05
  • 新建服务器步骤

    1 初始化项目 1 1npm init 之后 可以直接敲回车 注意名字 2 创建入口文件 3 安装 express Express 基于 Node js 平台 快速 开放 极简的 Web 开发框架 npm i express 4 在入口文件
  • LocalDateTime相关处理,得到零点以及24点值,最近五分钟点位,与Date互转,时间格式...

    最近一直使用LocalDateTime 老是忘记怎么转换 仅此记录一下 import java time Instant import java time LocalDateTime import java time LocalTime i
  • MySql详细安装教程

    登录https dev mysql com downloads mysql 5 5 html downloads 进入官网下载页面 mysql ZIP Archive是压缩版本 需要自己配置 mysql MSI Installer是安装版本
  • whois命令常见用法

    whois命令常见用法 whois命令简介 安装whois Windows使用whois Linux安装whois whois常见用法 Linux下whois查询域名注册信息 whois命令简介 whois就是一个用来查询域名是否已经被注册
  • ner计算准召的坑

    1 踩了个大坑 记录一下 声明 不喜欢写estimator所以才踩的坑 1 from tensorflow contrib import crf 如果想使用这个函数 tensorflow的版本号要在1 14以下 1 12就可以 不要相信那些