【Text_Classification】学习到的语法知识
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】学习到的语法知识相关推荐
- python基础语法及知识总结-Python 学习完基础语法知识后,如何进一步提高?
---4.30更新---感谢大家支持,点赞都破两千了.给大家整理出来新的资料,需要的小伙伴来自取: Python练手项目视频如下: Python自学基础知识如下: 以下为原文内容: Python 学习 ...
- OpenCV4 C++学习 必备基础语法知识二
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|OpenCV学堂 前言 之前我写过一篇介绍学习OpenC ...
- php基础语法知识笔记(一)
共享一份我自己学习php基础语法知识的笔记,这是第一弹,明天共享第二弹. 1.判断php短标记<??>是否适用,查看php配置文件php.ini中的"short_open_tag ...
- DB2数据库学习篇之最全面的sql语法知识总结
DB2数据库学习篇之最全面的sql语法知识总结 简介 数据定义语法 数据类型语法 数据操作语法 常用重要语法例子 简介 DB2是IBM公司开发的关系数据库管理系统,它有多种不同的版本,如:DB2工作组 ...
- python学习——基本语法知识
python基本语法知识 (一) 基本数据类型 Number(数字) String(字符串) List(列表) Tuple(元组) Set(集合) Dictionary(字典) 一.Number(数字 ...
- python开发需要掌握哪些知识-人工智能需要学习哪些专业课程知识?
原标题:人工智能需要学习哪些专业课程知识? 谈到人工智能,相信大家已经不陌生了,人工智能技术在近两年已经火得人尽皆知,跟互联网技术火的时候一样,那时行业和产品只要跟互联网相结合,就能在这个风口分得一杯 ...
- python基础语法有哪些-Python基础语法知识有哪些?
相信大家都听过Python除了不会生孩子,基本上无所不能的段子,这一定程度上反映了目前Python编程语言的火爆程度和广泛应用.然而,对于许多零基础的Python学习者来说,常常会遇到无从学起,找不到 ...
- python初中必背语法_初中必背英语语法知识汇总
原标题:初中必背英语语法知识汇总 语法是中考英语考试必考点.语法知识掌握得好,将大大加快英语学习的进程.本文归纳了词法和八种基本时态,希望对广大初中学子有所帮助. 词法 名词 (1)名词的可数与不可数 ...
- idea编译的文件怎么用cmd打开_JAVA学习册|基础语法|cmd输出HelloWorld
看到这个标题,估计已经有小伙伴知识本文要讲什么了,好,下面我们就开始正文 学java最开始的地方 很多老师的书和视频中,在安装完jdk,配置好环境变量,都会带大家用记事本写一个HelloWorld,然 ...
最新文章
- ubuntu10.04 安装virtualbox
- SAP实施顾问参与主数据搜集的四大好处
- 分析引擎 2.0 已来,神策再刷行业标准!
- 图论讲解(3)——最小生成树(基础)
- linux mysql删除密码忘记了_linux下忘记mysql密码的几种找回方法(推荐)
- 根据F12在页面中调整div的大小
- 支付宝:预计三年内智能出行将覆盖全国
- Python项目实践:基本统计值计算
- sql azure 语法_Azure SQL数据同步–在Azure SQL数据库之间复制数据和架构更改
- linux命令cd回退_Linux命令一
- iOS中copy,retain,strong,assign,weak的区别以及使用
- mysql安装 2018最新安装mysql教程及遇到的问题解决Windows下
- 如何将response里header的date转化为当地时间_将产品20元利润提升到2000元,靠的是卖体验!...
- php h5 调用摄像头_怎样使用H5调用摄像头
- 苹果android投屏,iPhone苹果手机如何投屏到电视?三种方法亲测详解!
- 扫描死链接的工具xenu
- Xcode Undefined symbols 错误
- Fastlane使用说明
- Unity3d 场景搭建 基础 学习
- 内燃机 vs 外燃机