1
daoremi OP 当然 现在国内外也有成熟的解决方案 比如 datawatch pdf2xl pdftables tabelu 等等 但中文都支持不是很好
中文的话 目前都是自己做自己用吧 几大云市场上更是寥寥无几 |
2
imikay 2017-12-22 21:19:21 +08:00
一般的用 pdftotext 就可以把文字信息解析出来,增加-layout 选项可以保留文字在 PDF 里的布局。如果是 PDF 里嵌入的图片上的信息就只能使用 OCR 技术来识别了。
|
3
daoremi OP @imikay pdftotext 只是其中一步 你看现在的简历解析 可以输出类似的
{ "errorcode": 0, "errormessage": "cv_parse success", "src_site": "", "URL": "564df2116f3881046d98fafecdcb7faa.doc", "cv_parse": { "parser_time": "2016-04-12-12-01-43", "job_objective": { "status": { "status_code": 1, "status_msg": "在职,正在找工作" }, "industries": "IT 服务(系统 /数据 /维护)、互联网 /电子商 务、计算机软件、网络游戏", "expect_locations": [ { "province": "北京", "city": "" } ], "expect_worktype": "", "expect_salary_upper": "15000", "expect_salary": "10001-15000 元 /月", "expect_titles": "软件工程师、软件研发工程师、高级软件工程师", "expect_salary_floor": "10001" }, "update_time": "", "occupations": [ { "title": "软件研发工程师", "industry": "互联网 /电子商务", "start_time": "2013/05", "not_ended": 0, "end_time": "2014/03", "report_to": "技术总监", "department": "技术研发部", "underling_num": "12", "desc": "企业性质:股份制企业\t 规模:500-999 人\t\n 职位月薪:8001-10000 元 /月\t\n 工作描述:\n 项目描述:开发新华网文章发布系统对应功能,优化数据库 sql,提高系统处理速度。为新华网手机客户端提供服务端支持。\n 软件环境:\n1、使用 maven 管理项目 jar 包版本,编译发布项目到私服供其他项目组调用\n2、使用 svn 管理代码\n3、使用 springmvc、hibernate、druid、dubbo、freemarker 等框架\n4、使用 memcache 作为缓存层方案\n5、使用 nginx 做 web 服务器,反向代理到应用服务器 tomcat\n 责任描述:\n 开发发布平台定制功能,如时间轴、相关文档、评论、话题等,优化数据结构,由于使用 hibernate 做数据持久层框架,延迟加载功能使列表展示引用对象时会再向数据库发多条 sql,为了效率使用主键 id 把关联对象先查出来,减少数据库操作提高效率,对于不常变化数据使用 memcache 做缓存,设置失效时间提高响应速度。\n 为手机客户端提供图集列表,新闻列表,评论等功能,为了提高效率,所有列表的初始请求的 json 数据都静态化发布到服务器上,与后台应用做查分,使用 nginx 反向代理到独立应用。\n 互联网抓取爬虫实现,抓取文章存到发布平台再加工,对爬虫比较感兴趣,学习使用 berkeleydb+bloomfilter 排重,jsoup 提取文章信息,spring 定时清理过期数据。", "company": "新华网股份有限公司", "predicted_job_function": "软件 /互联网开发 /系统集成" }, { "title": "java 研发工程师", "industry": "互联网 /电子商务", "start_time": "2012/07", "not_ended": 0, "end_time": "2013/04", "report_to": "", "department": "技术部 /商业服务部", "underling_num": "", "desc": "企业性质:民营\t 规模:100-499 人\t\n 职位月薪:8001-10000 元 /月\t\n 工作描述:\njava 后端开发工程师:\n 与前端同学协作完成项目的开发,对已上线的项目进行日常的维护、更新等操作,专注于业务逻辑的编写,提供接口调用。\n 熟悉了互联网开发的流程,由产品提交需求,分析项目需求,编写底层逻辑,与前端约定接口,测试环境提测,预发布连线上数据库,最终上线。\n 不断的学习充实自己,为了加快开发流程,学习使用 play 框架,为了实现大数据的排重,使用 berkeleydb+bloomfilter 排重,内部接口调用不再直接引入项目 jar 包,而是用 dubbo 提供内部接口,学习使我的的思路更加开阔。", "company": "北京大杰致远信息技术有限公司大街网", "predicted_job_function": "" } ], "skills": { "skills": [ "oracle 数据库管理良好|6\nandroid 开发技术良好|6\njavaEE 良好|12" ], "extract": [ "linux", "java" ] }, "educations": [ { "major": "电子信息工程", "degree": "本科", "school_level": "", "start_time": "2006/09", "not_ended": 0, "school": "北京信息科技大学", "end_time": "2010/06" } ], "languages": { "extract": [], "language": [ "英语:读写能力良好听说能力良好" ] }, "contact": { "mobile": "13621XXXXXXX", "qq": "", "email": "[email protected]" }, "internships": [], "certificates": { "certifications": [], "extract": [] }, "email_update_time": "", "basic_info": { "name": "XXXXX", "id_number": "23948723942332324234", "gender": "男", "nation": "", "birthyear": "1987", "birthday": "1987-5", "highest_degree": "硕士", "work_experience": "2010", "current_yearsalary": { "upper": "", "current_salary": "", "floor": "" }, "marriage_status": "已婚", "location": { "province": "北京", "city": "" } }, "self_evaluate": "喜欢编程,兴趣驱动学习。\n 为人开朗乐观,好交朋友,可以和同事友好相处。", "projects": [ { "start_month": "01", "start_year": "2013", "name": "dell 加油站 philip 非凡人才社区", "end_year": "2013", "not_ended": 0, "end_month": "04", "post": "项目职务", "project_responsibility": "项目职责", "project_performance": "项目业绩", "desc": "dell 加油站、philip 非凡人才社区\n 软件环境:springmvc+ibatis\n 硬件环境:\n 开发工具:\n 项目职责:\n 项目描述:这个项目之前已经独立完成过几个小型项目,对工作的理解已经从怎么实现这个逻辑,转变为怎样把部门里实施过的项目抽出来成为一个独立的模块,当能够保证代码的严谨性和健壮性后,怎样从复制粘贴、构建底层逻辑中脱离出来,完成一个高复用性,高可用性的独立模块,当有新项目的时候可以通过修改配置文件或参数的方式快速完成。\n 这 2 个项目(Dell 加油站 company.dajie.com/dell/indexphilip 非凡人才社区 company.dajie.com/philip/index)都在底层实现了一个高复用性的 feed 生成、展现模块,当用户出发一个 feed 行为的时候,可能会有多种展现形式,把不变的数据进行封装保存到数据库,在不同的展现调用工厂类实现对应的展现,可以实现快速搭建底层逻辑,当然底层的数据还要根据不同的用户行为进行不同的封装。\nphilip 非凡人才社区这个项目完成了一个交流专区的模块,新建了一个公共的 controller,专门处理交流专区,前台使用 freemarker 宏,可以通过传递不同的参数,实现各种项目的交流专区搭建,而且不光是在独立的交流页面,还可以通过不同的 type,区分是否在摸一个帖子下的交流,使这个模块既可以实现留言板的功能,也可以实现类似回帖的功能。\n" }, { "start_month": "07", "start_year": "2012", "name": "施耐德 mini 英飞项目", "end_year": "2012", "not_ended": 0, "end_month": "12", "post": "项目职务", "project_responsibility": "项目职责", "project_performance": "项目业绩", "desc": "施耐德 mini 英飞项目" } ] }, "cv_id": "", "cv_name": "564df2116f3881046d98fafecdcb7faa.doc", "version": "20111225", } |