工作内容:

1.读取pdf文档内容

2.分页显示

3.每个数据后设置下拉框供手动打标签

4.数据录入txt文档

代码:

import math
import os
import tkinter as tk
from tkinter import *
import tkinter.ttk as ttk
from tkinter.messagebox import *
import time
import pdfplumber as pp# request:pip install pdfplumberclass GUI(object):def __init__(self):print('begin time:', time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))self.resume_kinds = ('基础资料', '教育经历', '校园经历', '项目经历', '工作经历', '专业技能', '自我评价', '求职意向', '其他')self.file_list = [i for i in os.listdir(r'D:\hk\微信资料\OA测试简历\OA测试简历') if i.endswith('.pdf')]self.content, self.page_num = [], 0self.lb_text, self.cmb = [], []# 主窗口self.root = Tk()self.root.title('简历打标签')self.root.geometry("680x620")# 分页栏self.tab_main = ttk.Notebook()self.tab_main.place(relx=0.05, rely=0.1, relwidth=0.9, relheight=0.8)# 文件下拉框self.cmb_files = ttk.Combobox(self.root, state='readonly')self.cmb_files['value'] = self.file_listself.cmb_files.current(0)self.cmb_files.place(relx=0.3, rely=0, relwidth=0.3, relheight=0.05)# 文件选择提取按钮self.extract_butt = Button(self.root, text='提取', command=lambda: extract_file(self.cmb_files.get()))self.extract_butt.place(relx=0.61, rely=0, relwidth=0.05, relheight=0.05)# 数据录入按钮self.writein_butt = Button(self.root, text='录入', command=lambda: write_in())self.writein_butt.place(relx=0.5, rely=0.91, relwidth=0.05, relheight=0.05)# 文件选择提取按钮响应函数def extract_file(file):if file.endswith('.pdf'):self.content, self.page_num = [], 0self.lb_text, self.cmb = [], []# 获取文本内容path = 'D:\\hk\\微信资料\\OA测试简历\\OA测试简历\\' + fileprint('path:', path)pdf = pp.open(path)pdf.metadatapages = pdf.pagesfor i in pages:text = i.extract_text()lines = text.splitlines()self.content += linesprint(len(self.content))self.page_num = math.ceil(len(self.content) / 21)print('page_num:', self.page_num)self.tab_main.destroy()self.tab_main = ttk.Notebook()self.tab_main.place(relx=0.05, rely=0.05, relwidth=0.9, relheight=0.85)for i in range(self.page_num):tab = Frame(self.tab_main)tab.pack()labels_area = Frame(tab)cmbs_area = Frame(tab)labels_area.place(relx=0, rely=0, relwidth=0.9, relheight=1)cmbs_area.place(relx=0.9, rely=0, relwidth=0.1, relheight=1)self.tab_main.add(tab, text='%i' % (i + 1))for j in range(21):if i * 21 + j < len(self.content):lb = Label(labels_area, text=self.content[i * 21 + j])# lb.place(relx=0,rely=j/25,relwidth=1,relheight=1/25)lb.pack(anchor=E)self.lb_text.append(self.content[i * 21 + j].replace(' ',''))self.cmb.append(ttk.Combobox(cmbs_area, state='readonly'))self.cmb[-1]['value'] = self.resume_kindsself.cmb[-1].current(0)self.cmb[-1].pack()# 数据录入按钮响应函数def write_in():confirm = askyesno('提示框', '是否录入数据?(此操作会影响文本录入信息)')if confirm:with open('data.txt', 'a', encoding='utf-8') as f:for i in range(len(self.lb_text)):f.write(self.cmb[i].get() + '     ' + self.lb_text[i] + '\n')print('录入成功')print('finish time:', time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))self.root.mainloop()if __name__ == '__main__':gui = GUI()

界面展示:

机器学习 数据预处理之数据打标签相关推荐

  1. 机器学习项目中的数据预处理与数据整理之比较

    要点 在常见的机器学习/深度学习项目里,数据准备占去整个分析管道的60%到80%. 市场上有各种用于数据清洗和特征工程的编程语言.框架和工具.它们之间的功能有重叠,也各有权衡. 数据整理是数据预处理的 ...

  2. R语言数据预处理、数据因子化并自定义因子标签、通过labels参数指定因子标签

    R语言数据预处理.数据因子化并自定义因子标签.通过labels参数指定因子标签 目录

  3. 数据预处理Part9——数据降维

    文章目录 1. 什么是数据降维? 2. 为什么要进行数据降维? 3. 降维是如何实现的? 4. sklearn中的降维算法 4.1 主成分分析PCA 4.2 因子分析FA 4.3 独立成分分析ICA ...

  4. 【Python实战】数据预处理(数据清理、集成、变换、归约)

    [Python实战]数据预处理 前言 数据预处理概述 数据清理 异常数据处理 1.异常数据分析 2.异常数据处理方法 缺失值处理 噪声数据处理 数据集成 1.实体识别 2.冗余属性 3.数据不一致 数 ...

  5. 数据预处理—-(数据探索、数据清理、数据集成、数据规约、数据变换)

    数据挖掘概念与技术 定义挖掘目标–>数据取样–>数据探索–>数据预处理–>挖掘建模–>模型评价 第一章.数据 挖掘的数据类型:时间序列,序列,数据流,时间空间数据,多媒体 ...

  6. 数据预处理Part2——数据标准化

    文章目录 数据标准化 1. 实现归一化的Max-Min 2. 实现中心化和正态分布的Z-Score 3. 用于稀疏数据的MaxAbs 4. 针对离群点的RobustScaler 5. 标准化后数据可视 ...

  7. 竞赛专题 | 数据预处理-如何处理数据中的坑?

    点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 为了帮助更多竞赛选手入门进阶比赛,通过数据竞赛提升理论实践能力和团队协作能力.Data ...

  8. PyTorch源码解析--torchvision.transforms(数据预处理、数据增强)

    PyTorch框架中有一个很常用的包:torchvision torchvision主要由3个子包构成:torchvision.datasets.torchvision.models.torchvis ...

  9. 数据预处理Part4——数据离散化

    文章目录 离散化,对数据做逻辑分层 1. 什么是数据离散化? 2. 为什么要将数据离散化 3. 如何将数据离散化? 3.1 时间数据离散化 3.2 多值离散数据离散化 3.3 连续数据离散化 3.4 ...

  10. Python数据分析中的数据预处理:数据标准化

    [小白从小学Python.C.Java] [Python全国计算机等级考试] [Python数据分析考试必会题] ● 标题与摘要 Python数据分析中的 数据预处理:数据标准化 ● 选择题 以下关于 ...

最新文章

  1. 袁国勇院士团队纳米孔测序揭示人和禽流感病毒新型检测和监测靶点
  2. 深度学习之梯度下降法
  3. Excel中条件格式应用的探讨之突出显示!
  4. 零基础python必背代码-30个Python常用极简代码,拿走就用
  5. 面试中的那些“坑问题”该如何回答
  6. H3C交换机典型访问控制列表(ACL)配置实例
  7. Sharepoin学习笔记—架构系列--01 Sharepoint的网页(Page),网页解析(Parsing)与解析安全处理(Security)
  8. 基于visual Studio2013解决面试题之1305字符串所有子集
  9. 整理的一些实用工具网站
  10. Vue Cli 3 搭建一个可按需引入组件的组件库架子
  11. 神经网络入门之RNN(三)
  12. Python实例练手项目源码 - 关不掉的窗口
  13. 【Elasticsearch教程20】Pinyin拼音分词器 以及多音字修改
  14. java对象list_java 8 从一个list对象转list对象的属性
  15. Mac更新系统后无法使用git
  16. c语言画猪程序,C语言画小猪佩奇(转载)
  17. JSON.stringify 函数 (JavaScript)
  18. net start npf启用失败问题解决 net start npf 发生系统错误5、net start npf 服务名无效
  19. Java面试八股文界的“六边形战士”22年最强,不接受反驳!
  20. 广州优漫动游公司:UI设计师的未来方向在哪里?

热门文章

  1. PowerBuilder 开发的游戏(扫雷)
  2. C#读取资源文件的两种方法
  3. 硬盘数据恢复与chk文件恢复-超级转发
  4. vue中纯前端实现滑动图片验证的方式
  5. Linux核心安装(转)
  6. libsvm多分类python,SVM实现多分类的三种方案
  7. 钢笔朝花夕拾录————一位钢笔玩家的入坑至出坑心路历程
  8. 基于Mirai框架的QQ机器人使用文档----郑大科协2021招新群
  9. 计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数
  10. 如何掌握SWAT模型在水文水资源、面源污染模拟中的实践技术?