首页 > 编程语言 >ResumeSDK简历解析库编程案例

ResumeSDK简历解析库编程案例

时间:2024-11-12 17:15:27浏览次数:3  
标签:简历 name resume 编程 job tag import ResumeSDK String

目录

1、软件概述

2、编程案例

2.1、官网案例(阿里云)

2.2、优化案例

3、解析结果

1、软件概述

ResumeSDK简历解析是北京无奇科技有限公司研发,业界领先的智能简历解析和人岗匹配算法厂商,提供专业的AI招聘技术服务,致力于人力资源行业智能化这一进程。并已经上线阿里云或腾讯云,有100次的免费试用额度,解析效果非常不错

官网地址:简历解析|人岗匹配|智能简历解析 - ResumeSDK

文档地址:简历解析接口文档 - ResumeSDK

类似竞品:AI-智能改变招聘,助力人力资源数字化 | 麦穗人工智能

2、编程案例

2.1、官网案例(阿里云)

ResumeSDK简历解析_API专区_云市场-阿里云

import java.io.File;
import org.apache.commons.codec.binary.Base64;
import org.apache.http.Consts;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;

public class TestParseAli {

    public static void testParser(String url, String fname, String appcode) throws Exception {
    	// 设置头字段
        HttpPost httpPost = new HttpPost(url);
        httpPost.setHeader("Authorization", "APPCODE " + appcode);
        httpPost.addHeader("Content-Type", "application/json; charset=UTF-8");
        httpPost.addHeader("Content-Type", "application/json");
        
        // 读取简历内容
    	byte[] bytes = org.apache.commons.io.FileUtils.readFileToByteArray(new File(fname));
    	String data = new String(Base64.encodeBase64(bytes), Consts.UTF_8);

        // 设置内容信息
        JSONObject json = new JSONObject();
        json.put("file_name", fname);	// 文件名
        json.put("file_cont", data);	// 经base64编码过的文件内容
        json.put("need_avatar", 0);		// 是否需要解析头像
        json.put("ocr_type", 1);		// 1为高级ocr
        StringEntity params = new StringEntity(json.toString(), Consts.UTF_8);
        httpPost.setEntity(params);
        
        // 发送请求
        HttpClient httpclient = new DefaultHttpClient(); 
        HttpResponse response = httpclient.execute(httpPost);
        
        // 处理返回结果
        String resCont = EntityUtils.toString(response.getEntity(), Consts.UTF_8);
        System.out.println(resCont);
        
        JSONObject res = new JSONObject(resCont);
        System.out.println(res.toString(4));
    }
    
    public static void main(String[] args) throws Exception {
        String url = "http://resumesdk.market.alicloudapi.com/ResumeParser";	
        String fname = "D:/resumeSDK/test_files/yaoming.doc";	//替换为你的文件名
        String appcode = "你的appcode";

        testParser(url, fname, appcode);
    }
}

2.2、优化案例



import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.codec.binary.Base64;
import org.apache.http.Consts;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;

import java.io.IOException;
import java.util.UUID;

public class ResumeSDK {


    public static String parserStr(String content) {
        try {
            String url = "http://resumesdk.market.alicloudapi.com/ResumeParser";
            // 设置头字段
            HttpPost httpPost = new HttpPost(url);
            httpPost.setHeader("Authorization", "APPCODE " + "7619614c299a42b080cbeebb0cf7659e");
            httpPost.addHeader("Content-Type", "application/json; charset=UTF-8");
            httpPost.addHeader("Content-Type", "application/json");

            // 读取简历内容
            byte[] bytes = content.getBytes();
            String data = new String(Base64.encodeBase64(bytes), Consts.UTF_8);

            // 设置内容信息
            JSONObject json = new JSONObject();
            json.put("file_name", UUID.randomUUID());    // 文件名
            json.put("file_cont", data);    // 经base64编码过的文件内容
            json.put("need_avatar", 0);        // 是否需要解析头像
            json.put("ocr_type", 1);        // 1为高级ocr
            StringEntity params = new StringEntity(json.toString(), Consts.UTF_8);
            httpPost.setEntity(params);

            // 发送请求
            HttpClient httpclient = new DefaultHttpClient();
            HttpResponse response = httpclient.execute(httpPost);

            // 处理返回结果
            String resCont = null;
            resCont = EntityUtils.toString(response.getEntity(), Consts.UTF_8);
            System.out.println(resCont);
            return resCont;
        } catch (IOException e) {
            System.out.println(e);
            return "";
        }


    }

    public static ResumeWritable parser(String content) {
        try {
            ResumeWritable resume = new ResumeWritable();
            String jsonString = parserStr(content);

            // 使用FastJSON解析JSON字符串
            JSONObject jsonObject = JSON.parseObject(jsonString);
            JSONObject result = jsonObject.getJSONObject("result");
            String name = result.getString("name");
            if (name != null) {
                resume.setName(name);
            }
            String sex = result.getString("sex");
            if (sex != null) {
                resume.setSex(sex);
            }
            String phone = result.getString("phone");
            if (phone != null) {
                resume.setPhone(phone);
            }
            String location = result.getString("hometown_address");
            if (location != null) {
                resume.setLocation(location);
            }
            String age = result.getString("age");
            if (age != null) {
                resume.setAge(age);
            }
            //coding
            return resume;
        } catch (Exception ex) {
            return null;
        }
    }

    public static String parserJson(String content) {
        try {
            Resume resume = new Resume();
            String jsonString = parserStr(content);

            // 使用FastJSON解析JSON字符串
            JSONObject jsonObject = JSON.parseObject(jsonString);
            JSONObject result = jsonObject.getJSONObject("result");

            resume.setName(result.getString("name"));
            resume.setSex(result.getString("gender"));
            resume.setPhone(result.getString("phone"));
            resume.setAge(result.getString("age"));
            return resume.toString();
//            return JSONObject.toJSONString(resume);
        } catch (Exception e) {
            System.out.println(e);
            return "";
        }
    }

    public static void main(String[] args) throws Exception {

        String log = "4342dfab322bc2701nd43ty5FlJZx4W7UvyWWOenl_XUMhVh|13+年工等所有能安装在windows系统上的软件进行功能测试和兼容性测试。3.针对不同的软件进行国际化和本地化测试(主要负责日语、德语、俄语、简中、繁中,包括桌面app和Storeapp的测试)4.编写自动化代码对桌面app软件进行测试,从安装到功能验证到卸载全流程自动化测试(IVU).5.编写cmd命令脚本,shell脚本等修改注册表和自动搭建机器环境等操作。工作成就与挑战:1.工作一年后,经过公司内部筛选,成功从一个手动测试变成自动化测试,编写了大量自动化测试脚本,为项目组节省了很多人力成本。WindowsPhone手机系统自动化测试工作描述:该项目是针对WindowsPhone手机系统在各个手机OEM厂商设备上的功能测试,24小时压力测试。责任描述:项目二1.负责手机各种环境的搭建,包括手机OFLab,安装各种操作系统及配置各种服务等。2.负责配置脚本的编写维护3.负责手机系统的自动化测试,包括健康、压力、性能等。4.编写Windows系统上各种app的自动化测试代码编写,CET-4语言能力日语:读写能力一般英语:读写能力熟练|听说能力可沟通";
        String resume = ResumeSDK.parserStr(log);
        System.out.println(resume);
    }
}

3、解析结果

{
    "status": {
        "message": "success", 
        "code": 200
    }, 
    "result": {
        "name": "姚明", 
        "gender": "男", 
        "age": "26", 
        "marital_status": "未婚", 
        "polit_status": "群众", 
        "major": "工业设计学", 
        "surname": "姚", 
        "height": "213cm", 
        "weight": "100kg",  
        "birthday": "1988.09.27", 
        "city_norm": "中国-北京-北京市", 
        "college": "清华大学", 
        "college_type": "0", 
        "college_rank": "2", 
        "has_oversea_edu": "0", 
        "has_oversea_exp": "0", 
        "city": "北京市",  
        "grad_time": "2015.07", 
        "degree": "硕士", 
        "race": "汉族", 
        "nationality": "中国",    
        "english_level": "大学英语6级", 
        "computer_level": "计算机三级", 
        "work_position": "产品专员",
        "work_company": "腾讯",  
        "work_industry": "互联网", 
        "work_start_time": "2012.05",  
        "work_year_norm": "1", 
        "work_year": "1", 
        "work_job_nature": "全职", 
        "work_start_time_inf": "2012.05", 
        "phone": "13800112233", 
        "email": "[email protected]", 
        "postal_code": "100082", 
        "qq": "100086", 
        "weixin": "yaoming100082", 
        "expect_salary": "5000~10000元/月", 
        "expect_salary_min": "5000", 
        "expect_salary_max": "10000", 
        "expect_job": "产品经理", 
        "expect_industry": "互联网/电子商务", 
        "living_address": "北京市海淀区",
        "living_address_norm": "中国-北京-北京市-海淀区", 
        "hukou_address_norm": "中国-天津-天津市-河北区", 
        "hukou_address": "河北", 
        "hometown_address_norm": "中国-天津-天津市-河北区", 
        "hometown_address": "河北",
        "resume_type": "0", 
        "resume_source": "智联", 
        "resume_integrity": "84", 
        "resume_parse_time": "2019-07-07 22:33:02",
        "resume_name": "yaoming.doc", 
        "avatar_data": "”data:image/jpg;base64,Jfda08sdfdaJ&&fdaafadsfsafds....", 
        "education_objs": [
            {
                "edu_college": "北京大学", 
                "edu_major": "工业设计", 
                "start_date": "2008.09",
                "end_date": "2012.07", 
                "edu_degree": "本科", 
                "edu_degree_norm": "本科", 
                "edu_college_rank": "1", 
                "edu_college_type": "0", 

            }
            {
                "edu_college": "清华大学", 
                "edu_major": "工业设计", 
                "start_date": "2012.09",
                "end_date": "2015.07", 
                "edu_degree": "硕士", 
                "edu_degree_norm": "本科", 
                "edu_college_rank": "2", 
                "edu_college_type": "0", 

            }
        ],
        "job_exp_objs": [
            {
                "job_position": "产品专员", 
                "end_date": "至今", 
                "job_content": "工作内容:\n负责北京移动门户的持续优化及 h5 网站的需求整理、产品规划、原型制作,沟通设计、前端、开发保证项目按照规划\n正常进行,以及网站上线后的持续优化。", 
                "job_cpy": "腾讯", 
                "job_industry": "互联网", 
                "job_cpy_size": "500-999人", 
                "job_duration": "5年7个月", 
                "start_date": "2013.12"
            }, 
            {
                "job_dept": "产品研发部", 
                "end_date": "2013.12", 
                "job_position": "产品助理", 
                "job_content": "工作内容:负责协助产品经理完成公司产品的需求整理、产品规划、原型制作,沟通开发、设计保证项目的进行,并\n定期向总经理汇报产品的进度,以及发展方向。", 
                "job_cpy": "百度", 
                "job_industry": "计算机软件", 
                "job_cpy_size": "50-100人", 
                "job_duration": "6个月", 
                "start_date": "2013.06"
            }, 
            {
                "job_position": "ui设计师", 
                "end_date": "2013.06", 
                "job_content": "负责项目交互设计及界面设计。\n工作业绩: 1、 完成数据备份容灾系统的 ui设计及交互设计。\n2、 完成数据云平台的 ui设计及交互设计。", 
                "job_cpy": "阿里", 
                "job_industry": "计算机软件", 
                "job_cpy_size": "50-100人", 
                "job_duration": "1年1个月", 
                "start_date": "2012.05"
            }
        ], 
        "proj_exp_objs": [
            {
                "proj_position": "h5", 
                "proj_resp": "责任描述: 对现有网站进行数据分析,整理需求输出需求文档,完成整个网站架构、流程设计及原型设计,协调设计、前端、开\n发完成网站上线。", 
                "proj_name": "北京移动项目", 
                "start_date": "2014.08", 
                "end_date": "至今"
            }, 
            {
                "proj_resp": "责任描述: 对现有网站重新整理需求并规划,优化现有网站业务及网站流程,完成原型设计,协调设计开发上线。", 
                "proj_name": "移动集团统一门户项目", 
                "start_date": "2013.12", 
                "end_date": "2014.03"
            }, 
            {
                "proj_resp": "责任描述: 整理pc 端需求功能,完成软件整体框架流程、产品规划,输出产品原型,沟通开发、设计确保项目顺利进行", 
                "proj_name": "3d开发", 
                "start_date": "2013.09", 
                "end_date": "2013.12"
            }, 
            {
                "proj_resp": "责任描述: 整理婚礼淘需求,完成产品规划,输出产品原型,完成交互设计,沟通开发、前端保证产品严格按照设计完成并上\n线。", 
                "proj_name": "婚礼项目", 
                "start_date": "2013.06", 
                "end_date": "2013.09"
            }
        ], 
        "training_objs": [
            {
                "train_org": "中国人民大学", 
                "train_cont": "2010  年:北京市互联网宣传管理办公室与中国人民大学新闻学院主办的北京地区网络新闻。"
            }
        ], 
        "cert_objs": [
            {
                "langcert_lang": "英语", 
                "langcert_name": "大学英语4级"
            }, 
            {
                "langcert_lang": "英语", 
                "langcert_name": "大学英语6级"
            }
        ], 
        "lang_objs": [
            {
                "language_name": "英语"
            }
        ], 
        "skills_objs": [
            {
                "skills_level": "熟练", 
                "skills_name": "visio"
            }, 
            {
                "skills_level": "熟练", 
                "skills_name": "axure"
            }, 
            {
                "skills_level": "熟练", 
                "skills_name": "ppt"
            }, 
            {
                "skills_level": "熟练", 
                "skills_name": "excel"
            }, 
            {
                "skills_name": "产品运营"
            }, 
            {
                "skills_level": "熟练", 
                "skills_name": "思维导图"
            }, 
            {
                "skills_level": "熟练", 
                "skills_name": "原型设计"
            }, 
        ], 
        "cont_basic_info": "简历关键字:产品  设计  交互  用户体验\n姚明\n一年以上工作经验 | 男 |  26岁(1988 年 09月 27日) | 未婚 |  173cm\n居住地: 北京市-海淀区。。。", 
        "cont_expect_job": "希望行业:互联网/电子商务\n期望月薪: 面议/月\n目标职能: 产品经理", 
        "cont_education": "2008 /9--2012 /7 北京大学 工业设计专业  本科。。。", 
        "cont_job_exp": "2013 /12—至今:腾讯(500-999 人)\n所属行业: 互联网\n职位 :  产品专员\n工作内容:\n负责北京移动门户的持续优化及。。。", 
        "cont_proj_exp": "2014 /8—至今:北京移动 h5 网站\n责任描述: 对现有网站进行数据分析,整理需求输出需求文档,完成整个网站架构、流程设计及原型设计。。。", 
        "cont_job_skill": "1、精通挖掘用户需求,优化产品用户体验\n2、深刻理解以用户为中心设计理念,并深切的贯穿到工作当中。。。", 
        "raw_text": "简历关键字:产品  设计  交互  用户体验\n姚明\n一年以上工作经验 | 男 |  26岁(1988 年 09月 27日) | 未婚 。。。", 
    }, 
    "eval": {
        "salary": 8400
    }, 
    "tags": {
        "industries": [
            {
                "tag_weight": 1.4, 
                "tag_name": "计算机软件"
            }, 
            {
                "tag_weight": 1.0, 
                "tag_name": "通信/电信运营、增值服务"
            }, 
            {
                "tag_weight": 1.0, 
                "tag_name": "互联网"
            }
        ], 
        "pos_types": [
            {
                "tag_weight": 2.015383310857466, 
                "tag_name": "产品经理/主管"
            }, 
            {
                "tag_weight": 1.2617799853900002, 
                "tag_name": "产品专员"
            }, 
        ], 
        "pos_tags": [
            {
                "tag_weight": 1.4555183062553405, 
                "tag_name": "产品经理"
            }, 
            {
                "tag_weight": 1.3040755200386047, 
                "tag_name": "产品专员"
            }, 
            {
                "tag_weight": 0.7510459804534912, 
                "tag_name": "产品助理"
            }, 
            {
                "tag_weight": 0.57615185379982, 
                "tag_name": "移动产品经理"
            }, 
        ], 
        "skills_tags": [
            {
                "tag_weight": 0.8800841093063354, 
                "tag_name": "产品经理"
            }, 
            {
                "tag_weight": 0.6550871372222901, 
                "tag_name": "axure"
            }, 
            {
                "tag_weight": 0.6520612478256226, 
                "tag_name": "原型制作"
            }, 
            {
                "tag_weight": 0.6261030197143556, 
                "tag_name": "产品规划"
            }, 
        ]
    }
}

标签:简历,name,resume,编程,job,tag,import,ResumeSDK,String
From: https://blog.csdn.net/taogumo/article/details/143716558

相关文章

  • MapReduce解析简历存储到Postgres数据库
    目录一、功能描述二、代码实现1、代码结构2、ResumeDBWritable代码3、ResumeWritable代码4、ResumeSDK代码 5、ResumeDBMapper代码6、ResumeDBReducer代码7、ResumeDBPartationer代码8、ResumeDBDriver代码一、功能描述简历数据经过ETL流程,已经上传到HDFS上,需要针......
  • 深入 Java 多线程:解锁并发编程的奥秘
    在当今的软件开发世界中,性能和高并发是衡量一个应用程序成败的关键因素。无论是处理高流量的网络请求、执行复杂的数据分析任务,还是管理后台服务中的资源,Java多线程编程都是开发者必备的技能之一。本文将带领你深入Java多线程的世界,解锁并发编程的奥秘。1.并发与并行的区......
  • 《TCP/IP网络编程》学习笔记 | Chapter 11:进程间通信
    《TCP/IP网络编程》学习笔记|Chapter11:进程间通信《TCP/IP网络编程》学习笔记|Chapter11:进程间通信进程间通信的基本概念通过管道实现进程间通信通过管道进行进程间双向通信运用进程间通信习题(1)什么是进程间通信?分别从概念和内存的角度进行说明。(2)进程间通信需要......
  • 【JAVA】Java基础—面向对象编程:构造方法-实现一个Car类,包含多个构造方法,创建不同的汽
    在Java中,构造方法则是用于创建对象的特殊方法。通过构造方法,可以在创建对象时初始化其属性。构造方法的重载允许我们根据不同的需求定义多个构造方法,从而灵活地创建对象。我们可以将汽车的构造方法比作汽车的配置选项。比如,当你购买一辆汽车时,你可以选择不同的配置,如颜色、型......
  • Spring Boot编程训练系统:微服务架构实现
    摘要随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了编程训练系统的开发全过程。通过分析编程训练系统管理的不足,创建了一个计算机管理编程训练系统的方案。文章介绍了编程训练系统的系统分析部分,包括可行性分析等,系统设计部......
  • Spring Boot编程训练系统:数据管理与存储
    摘要随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了编程训练系统的开发全过程。通过分析编程训练系统管理的不足,创建了一个计算机管理编程训练系统的方案。文章介绍了编程训练系统的系统分析部分,包括可行性分析等,系统设计部......
  • Spring Boot编程训练系统:构建高效的编程环境
    摘要随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了编程训练系统的开发全过程。通过分析编程训练系统管理的不足,创建了一个计算机管理编程训练系统的方案。文章介绍了编程训练系统的系统分析部分,包括可行性分析等,系统设计部......
  • Spring Boot编程训练系统:开发流程与技巧
    4系统概要设计4.1概述本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示:图4-1系统工作原理图4.2系统结构本系统......
  • CUDA开始的GPU编程 - 第六章:thrust库
    第六章:thrust库使用CUDA官方提供的thrust::universal_vector虽然自己实现CudaAllocator很有趣,也帮助我们理解了底层原理。但是既然CUDA官方已经提供了thrust库,那就用他们的好啦。#include<cuda_runtime.h>#include<thrust/universal_vector.h>//trusth库......
  • 施耐德UNITY下使用ST编程计算最近一小时的均值
    昨晚学习练习了ST语言做最近60秒的分钟均值,今天继续做最近一小时的均值,1秒采集一次数据。在昨晚程序上增加功能,新建一个导出的功能块类型Average_Hour,定义下面的变量:旗下新建一个程序段Average_Hour,使用ST编程Minute1:=BCD_TO_INT(%SW51);Minute:=mod_int(Minute1,100);Second1......