1. 任务

1.1 字典中每个种类的准确率

分母: 首先计算每个种类的总数!

for value in label:# get(value, num)函数的作用是获取字典中value对应的键值, num=0指示初始值大小。label_cout[value] = label_cout.get(value, 0) + 1label_acc[value] = label_acc.get(value, 0)
print(label_cout)
print(label_acc)

分子:再次计算每个种类正确的数

第一步: 获取种类字典:
错误的做法

#这是错误的做法,因为这样做set集合是无序的!  顺序就和分母不一样了,无法进行后面的操作
label_acc = {label_text: 0 for label_text in set(label)  # 将唯一化
}
print(len(label_acc))

正确的是上面的

label_acc[value] = label_acc.get(value, 0)

第二步: 记录正确类的个数

results = model.predict(data, max_seq_len=50, batch_size=1, use_gpu=True)   #获取每行输入数据的预测结果
for idx, item in enumerate(results):sum = sum + 1;                 #所有的数据集总和if results[idx] == label[idx]:  # print("OHHHH data: {}".format(data[idx]), "predict:{}".format(results[idx]),#                               "right:{}".format(label[idx]))right = right + 1;    #如果是正确的,那么就加一print(results[idx])label_acc[results[idx]] += 1   #正确的,则从字典中寻找到指定key也加一

第三步: 相除得到准确率

#由于我们在定义两个字典时,key标签都是对应的,所以直接除,并更新label_acc即可
for key in label_acc.keys():label_acc[key] = label_acc[key] / label_cout[key]

1.2. 如何将分类数值化

前提: 你得有输出结果以及label

label_list = ['城市事件类;宣传广告', '城市事件类;扩充类别', '城市事件类;街面秩序','城市部件类;市政公用设施', '城市事件类;市容环境',  '城市部件类;扩充类别', '城市事件类;施工管理', '城市部件类;园林绿化', '环境保护类;其他', '文明城市创建类;其他',]label_map = {  #必须是指定的格式idx: label_text for idx, label_text in enumerate(label_list)
}
model = hub.Module(name='ernie_tiny',version='2.0.1',task='seq-cls',load_checkpoint='/home/wxx/progressfiles/project_pc_NLP/Texts_Classification/model/ernie_text_cls/best_model/model.pdparams',label_map=label_map)results = model.predict(data, max_seq_len=50, batch_size=1, use_gpu=True)

之后就用两个list就够了!

n_label = []
n_results = []
for item in results:for key in label_map:if item == label_map[key]:n_results.append(key)
for item in label:for key in label_map:if item == label_map[key]:n_label.append(key)

补充

1. set是无序的!!! 你改成set集合后序列就无序了,而计算每个类别的准确性,必须是类型顺序不变的

2.从linux上下载文件

 sz XXX

3. 读CSV文件没事,但是在写入csv文件是乱码

df.to_csv("/home/wxx/progressfiles/project_pc_NLP/Texts_Classification/res_all_label.csv",
encoding='utf_8_sig', sep=",", index=0)

4. 如果出现在写入csv文件时,单元格错位问题,说明你的分隔符不对

5. 写入excel文件中

https://blog.csdn.net/pikaqiubula/article/details/113781466

6. 将其它的放入到DataFrame中: 转变为Series ,再设置columns

链接

df = pd.DataFrame(pd.Series(d1), columns=['right'])

7. python将字典转换为dataframe数据框

python将字典转换成dataframe数据框

8. DataFrame操作

定义!
列表定义!

字典列表定义!

import pandas as pdinp = [{'c1':10, 'c2':100}, {'c1':11, 'c2':110}, {'c1':12, 'c2':123}]
df = pd.DataFrame(inp)print(df)

添加列!

DF的遍历: https://www.jb51.net/article/172623.htm

9. 更好的放入到DF中

text_a.append(data[idx])
label_wrong.append(item)
label_right.append(label[idx])df = pd.DataFrame()
df['text_a'] = pd.Series(text_a)
df['wrong_label'] = label_wrong
df['right_label'] = label_right

10. 代码解决F1_score

链接

【Text_Classification】学习到的语法知识相关推荐

  1. python基础语法及知识总结-Python 学习完基础语法知识后,如何进一步提高?

    ---4.30更新---感谢大家支持,点赞都破两千了.给大家整理出来新的资料,需要的小伙伴来自取: Python练手项目视频如下: Python自学基础知识如下: 以下为原文内容: Python 学习 ...

  2. OpenCV4 C++学习 必备基础语法知识二

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|OpenCV学堂 前言 之前我写过一篇介绍学习OpenC ...

  3. php基础语法知识笔记(一)

    共享一份我自己学习php基础语法知识的笔记,这是第一弹,明天共享第二弹. 1.判断php短标记<??>是否适用,查看php配置文件php.ini中的"short_open_tag ...

  4. DB2数据库学习篇之最全面的sql语法知识总结

    DB2数据库学习篇之最全面的sql语法知识总结 简介 数据定义语法 数据类型语法 数据操作语法 常用重要语法例子 简介 DB2是IBM公司开发的关系数据库管理系统,它有多种不同的版本,如:DB2工作组 ...

  5. python学习——基本语法知识

    python基本语法知识 (一) 基本数据类型 Number(数字) String(字符串) List(列表) Tuple(元组) Set(集合) Dictionary(字典) 一.Number(数字 ...

  6. python开发需要掌握哪些知识-人工智能需要学习哪些专业课程知识?

    原标题:人工智能需要学习哪些专业课程知识? 谈到人工智能,相信大家已经不陌生了,人工智能技术在近两年已经火得人尽皆知,跟互联网技术火的时候一样,那时行业和产品只要跟互联网相结合,就能在这个风口分得一杯 ...

  7. python基础语法有哪些-Python基础语法知识有哪些?

    相信大家都听过Python除了不会生孩子,基本上无所不能的段子,这一定程度上反映了目前Python编程语言的火爆程度和广泛应用.然而,对于许多零基础的Python学习者来说,常常会遇到无从学起,找不到 ...

  8. python初中必背语法_初中必背英语语法知识汇总

    原标题:初中必背英语语法知识汇总 语法是中考英语考试必考点.语法知识掌握得好,将大大加快英语学习的进程.本文归纳了词法和八种基本时态,希望对广大初中学子有所帮助. 词法 名词 (1)名词的可数与不可数 ...

  9. idea编译的文件怎么用cmd打开_JAVA学习册|基础语法|cmd输出HelloWorld

    看到这个标题,估计已经有小伙伴知识本文要讲什么了,好,下面我们就开始正文 学java最开始的地方 很多老师的书和视频中,在安装完jdk,配置好环境变量,都会带大家用记事本写一个HelloWorld,然 ...

最新文章

  1. ubuntu10.04 安装virtualbox
  2. SAP实施顾问参与主数据搜集的四大好处
  3. 分析引擎 2.0 已来,神策再刷行业标准!
  4. 图论讲解(3)——最小生成树(基础)
  5. linux mysql删除密码忘记了_linux下忘记mysql密码的几种找回方法(推荐)
  6. 根据F12在页面中调整div的大小
  7. 支付宝:预计三年内智能出行将覆盖全国
  8. Python项目实践:基本统计值计算
  9. sql azure 语法_Azure SQL数据同步–在Azure SQL数据库之间复制数据和架构更改
  10. linux命令cd回退_Linux命令一
  11. iOS中copy,retain,strong,assign,weak的区别以及使用
  12. mysql安装 2018最新安装mysql教程及遇到的问题解决Windows下
  13. 如何将response里header的date转化为当地时间_将产品20元利润提升到2000元,靠的是卖体验!...
  14. php h5 调用摄像头_怎样使用H5调用摄像头
  15. 苹果android投屏,iPhone苹果手机如何投屏到电视?三种方法亲测详解!
  16. 扫描死链接的工具xenu
  17. Xcode Undefined symbols 错误
  18. Fastlane使用说明
  19. Unity3d 场景搭建 基础 学习
  20. 内燃机 vs 外燃机

热门文章

  1. ios UIScrollView 基础属性
  2. 行先知 为您的办公室管理提供方便
  3. 用async 解放你的大脑
  4. Parquet格式描述
  5. Linux 块设备,Block Layer层架构演变
  6. 我们应该这样理解鸿蒙
  7. 驱动程序操作IO口API函数
  8. STM32F7xx —— 输出
  9. The size of tensor a (4) must match the size of tensor b (3) at non-singletonThe size of
  10. 【Pytorch神经网络实战案例】16 条件WGAN模型生成可控Fashon-MNST模拟数据