以下内容可直接以写入.ipynb文件的形式,放入服务器上任意已准备好数据集的文件夹下:

  • 导入模块
import os
import json
import re
from collections import defaultdict
  • 绘图函数
def draw(dic): #输入样本数量统计字典import numpy as npimport matplotlib.pyplot as pltfrom matplotlib.ticker import MaxNLocatorfrom collections import namedtuplefig, ax = plt.subplots()n_groups = len(dic) #列数index=[]data=[]for i in sorted (dic) : index.append(i)data.append(dic[i])bar_width = 0.2 #每条柱状的宽度rects1 = ax.bar(index, data, bar_width,label='length') #绘制柱状图ax.legend() #绘制图例(即右上角的方框)fig.tight_layout()plt.show()
  • 合并字典函数
#合并字典
def merge(dic1,dic2):for key in dic1:if key in dic2:dic1[key]+=dic2[key]for key in dic2:if key not in dic1:dic1[key]=dic2[key]return dic1
  • 样本数量统计函数
# 样本数量统计
# 样本长度统计、样本长度平均值、样本长度分布
def fun(dataset,path): #输入数据集名称,文件名samples_num=0samples_len_dic=defaultdict(int)samples_lens=0with open(os.path.join(dataset,path+".jsonl"),"r",encoding="utf-8") as f: #默认为jsonl文件格式lines=f.readlines()samples_num=len(lines)for line in lines:line=json.loads(line) #将数据转换为字典格式text=line["text"]#  第一步,非英文字符用空格代替 #是否要对英文文本做预处理# text = re.sub(r"'s", " 's", text)# text = re.sub(r"'ve", " 've", text)# text = re.sub(r"n't", " n't", text)# text = re.sub(r"'re", " 're", text)# text = re.sub(r"'d", " 'd", text)# text = re.sub(r"'ll", " 'll", text)# text = re.sub(r"[^A-Za-z]", " ", text)text=text.split()samples_len_dic[len(text)]+=1samples_lens+=len(text)return samples_num,samples_lens,samples_len_dic #输出:样本数量、样本总长度、样本长度分布字典
  • 分析
for dataset in ["dataset_name1","dataset_name2"]:print(dataset)samples_num,samples_lens,samples_len_dic=0,0,defaultdict(int)for path in ["train","dev","test"]:samples_num1,samples_lens1,samples_len_dic1=fun(dataset,path)samples_num+=samples_num1samples_lens+=samples_lens1samples_len_dic=merge(samples_len_dic,samples_len_dic1)count=0for key in samples_len_dic:count+=samples_len_dic[key]if count!=samples_num:print("False")print("样本数量:",samples_num)print("样本长度分布数值:",sorted(samples_len_dic.items(),key=lambda x:x[0]))print("样本长度平均值:",samples_lens/samples_num)  print("样本长度分布图表:",)draw(samples_len_dic)
  • (2022/2/26补充)示例样本打印(包括图片显示、图片自定义缩小放大)
from PIL import Image
import matplotlib.pyplot as pltdef print_out(dataset,sample):  #sample为样本(字典格式)print("原文本:",sample["text"])print("原图片:")img_id=sample["image"]path=os.path.join(dataset+"/img",img_id)img=Image.open(path)display(img.resize((int(img.size[0]*0.5),int(img.size[1]*0.5)),Image.ANTIALIAS)) #此处为缩小50%

Jupyter Notebook对数据集进行数据分析 数据统计(含:样本数量/样本长度/样本长度分布图/示例样本打印)相关推荐

  1. 数据可视化课程设计——北京新发地官网数据分析与可视化展示【内容在jupyter notebook里面展示】包含数据爬取与可视化分析详解

    目录 一.课题说明 1.1.设计原因: 1.2.设计目标: 1.3.开发环境: 1.4.爬取网站链接 二.准备工作 2.1.数据获取: 2.2.爬取的数据说明: 2.3.爬虫程序设计的思路: 三.详细 ...

  2. Jupyter Notebook 交互式编程 低代码拖拽式编程 | 数据科学生态下的理想平台

    近几年,Jupyter Notebook 为数据科学家们提供了与数据有效交互的工具.用户可以运行代码.查看结果,然后重复数据之间的循环和迭代.使用 Jupyter Notebook 进行研究成为了数据 ...

  3. jupyter notebook简单使用教程

    文章目录 jupyter notebook功能栏 快捷键 数据分析之Numpy 下载 导入模块 numpy优势 数组 numpy中的数据类型 补充 常用方法 创建方式 索引与切片 花式索引(间断索引) ...

  4. jupyter notebook使用opencv的例子_Python安装Jupyter Notebook配置使用教程

    为什么要用Jupyter Notebook 推荐新手写python用什么编辑器就有有人问:为什么没有Jupyter Notebook.本来想数据分析和可视化的时候才介绍的,所以没有加上.最近要截图比较 ...

  5. L:python的Pandas模块:实例练习(泰坦尼克号数据集分析,电影票房统计,股票基本面统计)

    实例练习 泰坦尼克号数据集分析 使用Seaborn库中包含的titanic数据集进行一些数据统计. Seaborn是一个图形库,Anaconda已包含此库.数据集参见: https://github. ...

  6. 左手程序员,右手作家:你必须会的Jupyter Notebook

    Python·Jupyter Notebook各种使用方法记录·持续更新 一. Jupyter NoteBook的安装 1.1 新版本Anaconda自带Jupyter 目前,最新版本的Anacond ...

  7. Python安装Jupyter Notebook配置使用教程

    原文见:https://blog.csdn.net/qq_27825451/article/details/84427269 一.什么是jupyter 1.简介: jupyter notebook是一 ...

  8. jupyter notebook python环境_jupyter Notebook环境搭建

    1.什么是jupyter notebook jupyter notebook是一种 Web 应用,能让用户将说明文本.数学方程.代码和可视化内容全部组合到一个易于共享的文档中.它可以直接在代码旁写出叙 ...

  9. 优达学城深度学习(之四)——jupyter notebook

    Jupyter notebook 是什么? 欢迎学习本课程--如何使用 Jupyter notebook.Jupyter notebook 是一种 Web 应用,能让用户将说明文本.数学方程.代码和可 ...

最新文章

  1. 字典怎么增加元素_python3基础之字典
  2. java 正则_认识正则表达式(Java语言基础)
  3. 内存对齐/字节对齐/数据对齐/地址总线对齐
  4. java类中的代码块,Java开发避坑指南!
  5. 微信7.0.4内测版大更新!漂流瓶彻底成为历史
  6. 如何开启Dubbo框架内部的日志?
  7. Java 计算学生的平均成绩
  8. LeetCode题组:第322题-零钱兑换
  9. Java SE之I/O流:知识框架
  10. c调python_应该是史上最全的python调用C接口
  11. 软件测试漫谈之谈谈技术之外的事情
  12. 关于Vmware workstation的软驱功能
  13. 泛泰binx和ota升级包下载工具Android版[2013.6.7提供源代码]
  14. SAP:采购申请ME51N/ME52N/ME54N/ME57屏幕增强
  15. 侍魂无限跳服务器,经典游戏《真侍魂》橘右京的无限残像,对手就这么活活的被挡死了...
  16. 联想Y450 MAC系统SD读卡器驱动
  17. 边城科技“区块链+溯源”平台助力坪朗豆腐品牌升级
  18. 虽然我不是做游戏的,闲的没事,emm,写了个扫雷小游戏(Android)
  19. uart_ops结构体分析之amba_pl011_pops
  20. 塑料微管的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

热门文章

  1. 【SpringBoot】springboot日志配置
  2. 大牛关于学习C++的建议
  3. [转]Anders Hejlsberg谈C#、Java和C++中的泛型
  4. 拜占庭将军问题OM算法详解(m=1,m=2)
  5. 仿百度搜索html,仿百度搜索智能提示(纯JS实现)
  6. 如何在 Linux 中运行 DOS 程序!
  7. android kotlin + coroutines 高仿微信图库
  8. Measure()与onMeasure()
  9. 现场直击汶川地震都江堰灾情(图)
  10. 【项目实战】基于Python的校园二手交易网站Django二手商城系统