• 在线文本实体抽取能力,助力应用解析海量文本数据


    随着信息化的发展,很多具有重要价值的知识隐藏分布在海量数据中,影响了人们获取知识的效率,如何处理繁杂的非结构化文本数据成为难题。

    近日,HMS Core机器学习服务6.5.0版本新增在线文本实体抽取能力,该能力可以检测出文本中是否存在比如日期、姓名、专有名词等实体信息,并将此类实体抽取出来,即自动处理非结构化自然语言文本数据的能力。例如,影视行业的应用中常常会出现大量文字的影评、资讯等内容,使用在线文本实体抽取能力即可快速提取结构信息,帮助搭建知识图谱,便于用户清晰理解。

    此外,文本实体抽取能力更多应用于问答系统、信息索引、知识图谱构建等领域。

    问答系统

    问答系统是信息检索系统的一种高级形式,它能用准确、简洁的自然语言回答用户提出的问题。在问答系统实现过程中,则需要用到文本实体抽取能力识别问题和知识库中的实体信息,再通过多种算法模型匹配出精准回答。

    信息索引

    使用在线文本实体抽取能力,可命名特定实体信息作为索引和超链接。比如用户在评论时提到的专有名词,可以生成超链接,便于其他用户检索了解相关内容。

    知识图谱构建

    知识图谱是由实体、关系和属性组成的一种数据结构,即具有有向图结构的一个知识库,文本实体抽取能力作为知识图谱构建过程中的底层能力,有着极其重要的作用。比如构建音乐知识图谱,首先需要大量的文本数据中提取出歌手、歌曲、作词、影视等相关信息,然后再进行知识图谱的搭建。

    目前,华为机器学习服务在线文本实体抽取能力共支持人名、金钱、影视名、网页链接在内的16个实体类别,可根据实际语义场景应用于不同类别的App中。

    集成步骤

    1. 开发准备

    详细准备步骤可参考华为开发者联盟官网

    1. 集成和配置apigateway鉴权

    基于apigateway的鉴权机制:

    "paths": {
    "/entityExtract": { "post": { "operationId": "entityExtract",
    "parameters": [{"in": "body",  "name": "req",  "required": true,
    "schema": { "$ref": "#/definitions/NerEnterReq"  } },  {
    "name": "X-Request-ID", "in": "header",  "required": true,
    "type": "string"
    }, {"name": "X-Package-Name",  "in": "header", "required": true,
    "type": "string"  }, ……],
     "responses": {"200": {   "description": "response of 200",
    "schema": { "$ref": "#/definitions/ResponseEntityNerBodyVo"}}}}}
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    1. 创建在线文本实体构造器
    // 使用自定义的参数配置创建语种检测器。
     MLRemoteNerSetting setting = new MLRemoteNerSetting.Factory()
                    .setSourceLangCode("zh")
                    .create();
    MLRemoteNer ner = MLNerFactory.getInstance().getRemoteNer(setting);
    进行文本实体抽取。
    • 1
    • 2
    • 3
    • 4
    • 5
    1. 在线获取文本实体抽取

    异步方法示例代码:

    ner.asyncEntityExtract(input).addOnSuccessListener(new OnSuccessListener<RemoteNerResultItem[]>() {
                @Override
                public void onSuccess(RemoteNerResultItem[] remoteNerResults) {
                    // 成功的处理逻辑。
                    if(remoteNerResults != null){
                        // 有识别结果
                    }else {
                        //  识别结果为空
                    }
                }
            }).addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(Exception e) {
                    // 识别失败,获取相关异常信息。
                    try {
                        MLException mlException = (MLException) e;
                        // 获取错误码,开发者可以对错误码进行处理,根据错误码进行差异化的页面提示。
                        int errorCode = mlException.getErrCode();
                        // 获取报错信息,开发者可以结合错误码,快速定位问题。
                        String errorMessage = mlException.getMessage();
                    } catch (Exception error) {
                        // 转换错误处理。
                    }
                }
            });
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    同步方法示例代码:

    try {
           RemoteNerResultItem[] remoteNerResults = ner.syncEntityExtract(input);
           // 识别成功逻辑
           if(remoteNerResults != null){
           // 有识别结果
           }else {
           //  识别结果为空
            }
       } catch (MLException mlException) {
           // 失败的处理逻辑。
           // 获取错误码,开发者可以对错误码进行处理,根据错误码进行差异化的页面提示。
           int errorCode = mlException.getErrCode();
           // 获取报错信息,开发者可以结合错误码,快速定位问题。
           String errorMessage = mlException.getMessage();
       }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    1. 完成后,释放资源
    if (ner != null) {
        ner.stop();
    }
    • 1
    • 2

    了解更多详情>>

    访问华为开发者联盟官网
    获取开发指导文档
    华为移动服务开源仓库地址:GitHubGitee

    关注我们,第一时间了解 HMS Core 最新技术资讯~

  • 相关阅读:
    Google身份验证器Google Authenticator的java服务端实现
    基于springboot的房屋租赁系统
    连接工具和idea能查询出数据库数据,项目中查不到数据库数据:解决办法
    Python判断循环语法
    ChatGPT无法登录,提示我们检测到可疑的登录行为,将阻止进一步的尝试。请与管理员联系
    Scratch3之AI集成 - flappy bird AI版本
    64 ---- 两直线的位置关系
    java毕业设计——基于java+Eclipse的扫雷游戏设计与实现(毕业论文+程序源码)——扫雷游戏
    Arthas 监控应用耗时
    基于SpringBoot+Vue的线上旅行管理系统设计与实现(源码+lw+部署文档+讲解等)
  • 原文地址:https://blog.csdn.net/HUAWEI_HMSCore/article/details/125421625