自然语言处理预训练模型简历抽取(中文)服务 Java SDK示例

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 自然语言处理(Natural Language Processing,简称NLP),是为各类企业及开发者提供的用于文本分析及挖掘的核心工具,旨在帮助用户高效的处理文本,已经广泛应用在电商、文娱、司法、公安、金融、医疗、电力等行业客户的多项业务中,取得了良好的效果。可用于搭建内容搜索、内容推荐、舆情识别及分析、文本结构化、对话机器人等智能产品。NLP自学习平台提供了一些预训练的特定领域模型服务。例如:商品评价解析服务、新闻层次分类服务、中文简历抽取、英文简历抽取等。本文将使用Java SDK演示简历抽取(中文)服务以及响应返回json字符串中unicode编码转为中文字符的调用以供参考。

使用前提:服务开通与资源包购买

操作步骤:

1.添加pom依赖

    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>aliyun-java-sdk-core</artifactId>
        <version>4.5.14</version>
    </dependency>
    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>aliyun-java-sdk-nlp-automl</artifactId>
        <version>0.0.8</version>
    </dependency>

2.Code Sample

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.nlp_automl.model.v20191111.RunPreTrainServiceRequest;
import com.aliyuncs.nlp_automl.model.v20191111.RunPreTrainServiceResponse;
import com.aliyuncs.profile.DefaultProfile;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;


//  自然语言处理预训练模型 简历抽取服务

public class JianLi {

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

        DefaultProfile defaultProfile = DefaultProfile.getProfile("cn-hangzhou","XXXXXXXXXX","XXXXXXXXXX");
        IAcsClient client = new DefaultAcsClient(defaultProfile);
        String content = "张某 ID:61111111\n" +
                "186123333333\u0003\n" +
                "zhang@126.com\n" +
                "男|29 岁 (1990/07/27)|现居住南京-玄武区|8年工作经验\n" +
                "职位: 软件测试工程师";
        RunPreTrainServiceRequest request = new RunPreTrainServiceRequest();
        request.setServiceName("ResumeExtractorZH");
        request.setPredictContent(content);
        RunPreTrainServiceResponse response = client.getAcsResponse(request);
        System.out.println(response.getPredictResult());

       /* Gson gson=new GsonBuilder().disableHtmlEscaping().create();
        System.out.println(gson.toJson(response.getPredictResult()));*/

       String s=decodeUnicode(response.getPredictResult());
        System.out.println(s);

    }
    public static String decodeUnicode(String theString) {
        char aChar;
        int len = theString.length();
        StringBuffer outBuffer = new StringBuffer(len);
        for (int x = 0; x < len;) {
            aChar = theString.charAt(x++);
            if (aChar == '\\') {
                aChar = theString.charAt(x++);
                if (aChar == 'u') {
                    // Read the xxxx
                    int value = 0;
                    for (int i = 0; i < 4; i++) {
                        aChar = theString.charAt(x++);
                        switch (aChar) {
                            case '0':
                            case '1':
                            case '2':
                            case '3':
                            case '4':
                            case '5':
                            case '6':
                            case '7':
                            case '8':
                            case '9':
                                value = (value << 4) + aChar - '0';
                                break;
                            case 'a':
                            case 'b':
                            case 'c':
                            case 'd':
                            case 'e':
                            case 'f':
                                value = (value << 4) + 10 + aChar - 'a';
                                break;
                            case 'A':
                            case 'B':
                            case 'C':
                            case 'D':
                            case 'E':
                            case 'F':
                                value = (value << 4) + 10 + aChar - 'A';
                                break;
                            default:
                                throw new IllegalArgumentException(
                                        "Malformed   \\uxxxx   encoding.");
                        }
                    }
                    outBuffer.append((char) value);
                } else {
                    if (aChar == 't')
                        aChar = '\t';
                    else if (aChar == 'r')
                        aChar = '\r';
                    else if (aChar == 'n')
                        aChar = '\n';
                    else if (aChar == 'f')
                        aChar = '\f';
                    outBuffer.append(aChar);
                }
            } else
                outBuffer.append(aChar);
        }
        return outBuffer.toString();
    }
}

3.测试结果

{"result": [{"tags": [{"class": "\u59d3\u540d", "source": "rule", "span": "\u5f20\u67d0"}], "id": 0, "sent_offsets": 0, "sentence": "\u5f20\u67d0 ID:61111111"}, {"tags": [{"start": 0, "end": 12, "conf": 0, "span": "186123333333", "source": "model", "class": "\u624b\u673a\u53f7"}], "id": 0, "sent_offsets": 1, "sentence": "186123333333\u0003"}, {"tags": [{"class": "\u7535\u5b50\u90ae\u7bb1", "source": "rule", "span": "zhang@126.com"}], "id": 0, "sent_offsets": 2, "sentence": "zhang@126.com"}, {"tags": [{"start": 8, "end": 18, "conf": 0, "span": "1990/07/27", "source": "model", "class": "\u51fa\u751f\u65e5\u671f"}, {"class": "\u6027\u522b", "source": "rule", "span": "\u7537"}], "id": 0, "sent_offsets": 3, "sentence": "\u7537|29 \u5c81 (1990/07/27)|\u73b0\u5c45\u4f4f\u5357\u4eac-\u7384\u6b66\u533a|8\u5e74\u5de5\u4f5c\u7ecf\u9a8c"}, {"tags": [{"start": 4, "end": 11, "conf": 0, "span": "\u8f6f\u4ef6\u6d4b\u8bd5\u5de5\u7a0b\u5e08", "source": "model", "class": "\u5c97\u4f4d\u540d\u79f0"}], "id": 0, "sent_offsets": 4, "sentence": "\u804c\u4f4d\uff1a \u8f6f\u4ef6\u6d4b\u8bd5\u5de5\u7a0b\u5e08"}], "message": "", "time": 22, "ret_code": 0}
{"result": [{"tags": [{"class": "姓名", "source": "rule", "span": "张某"}], "id": 0, "sent_offsets": 0, "sentence": "张某 ID:61111111"}, {"tags": [{"start": 0, "end": 12, "conf": 0, "span": "186123333333", "source": "model", "class": "手机号"}], "id": 0, "sent_offsets": 1, "sentence": "186123333333"}, {"tags": [{"class": "电子邮箱", "source": "rule", "span": "zhang@126.com"}], "id": 0, "sent_offsets": 2, "sentence": "zhang@126.com"}, {"tags": [{"start": 8, "end": 18, "conf": 0, "span": "1990/07/27", "source": "model", "class": "出生日期"}, {"class": "性别", "source": "rule", "span": "男"}], "id": 0, "sent_offsets": 3, "sentence": "男|29 岁 (1990/07/27)|现居住南京-玄武区|8年工作经验"}, {"tags": [{"start": 4, "end": 11, "conf": 0, "span": "软件测试工程师", "source": "model", "class": "岗位名称"}], "id": 0, "sent_offsets": 4, "sentence": "职位: 软件测试工程师"}], "message": "", "time": 22, "ret_code": 0}

更多参考

响应返回JSON数据时出现的unicode编码问题
预训练模型使用教程
简历抽取(中文)服务

目录
相关文章
|
11月前
|
存储 数据采集 搜索推荐
Java 大视界 -- Java 大数据在智慧文旅旅游景区游客情感分析与服务改进中的应用实践(226)
本篇文章探讨了 Java 大数据在智慧文旅景区中的创新应用,重点分析了如何通过数据采集、情感分析与可视化等技术,挖掘游客情感需求,进而优化景区服务。文章结合实际案例,展示了 Java 在数据处理与智能推荐等方面的强大能力,为文旅行业的智慧化升级提供了可行路径。
Java 大视界 -- Java 大数据在智慧文旅旅游景区游客情感分析与服务改进中的应用实践(226)
|
9月前
|
JSON Java 数据格式
java调用服务报错400
java调用服务报错400
237 6
java调用服务报错400
|
9月前
|
JSON Java 数据格式
java调用服务报错415 Content type ‘application/octet-stream‘ not supported
java调用服务报错415 Content type ‘application/octet-stream‘ not supported
538 6
|
人工智能 自然语言处理 Java
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
3973 65
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
12月前
|
分布式计算 搜索推荐 算法
Java 大视界 -- Java 大数据在智慧养老服务需求分析与个性化服务匹配中的应用(186)
本篇文章探讨了Java大数据技术在智慧养老服务需求分析与个性化服务匹配中的应用。通过整合老年人健康数据与行为数据,结合机器学习与推荐算法,实现对老年人健康风险的预测及个性化服务推荐,提升养老服务的智能化与精准化水平,助力智慧养老高质量发展。
|
网络协议 Java Shell
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
1143 7
|
前端开发 Java API
JAVA Web 服务及底层框架原理
【10月更文挑战第1天】Java Web 服务是基于 Java 编程语言用于开发分布式网络应用程序的一种技术。它通常运行在 Web 服务器上,并通过 HTTP 协议与客户端进行通信。
350 1
|
Java 关系型数据库 MySQL
java控制Windows进程,服务管理器项目
本文介绍了如何使用Java的`Runtime`和`Process`类来控制Windows进程,包括执行命令、读取进程输出和错误流以及等待进程完成,并提供了一个简单的服务管理器项目示例。
358 1
|
JSON Java 数据格式
java调用服务报错400
java调用服务报错400
266 2