乐趣区

关于android:在线文本实体抽取能力助力应用解析海量文本数据

随着信息化的倒退,很多具备重要价值的常识暗藏散布在海量数据中,影响了人们获取常识的效率,如何解决繁冗的非结构化文本数据成为难题。

近日,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. 创立在线文本实体结构器
// 应用自定义的参数配置创立语种检测器。MLRemoteNerSetting setting = new MLRemoteNerSetting.Factory()
                .setSourceLangCode("zh")
                .create();
MLRemoteNer ner = MLNerFactory.getInstance().getRemoteNer(setting);
进行文本实体抽取。
  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) {// 转换错误处理。}
            }
        });

同步办法示例代码:

try {RemoteNerResultItem[] remoteNerResults = ner.syncEntityExtract(input);
       // 辨认胜利逻辑
       if(remoteNerResults != null){// 有辨认后果}else {//  辨认后果为空}
   } catch (MLException mlException) {
       // 失败的解决逻辑。// 获取错误码,开发者能够对错误码进行解决,依据错误码进行差异化的页面提醒。int errorCode = mlException.getErrCode();
       // 获取报错信息,开发者能够联合错误码,疾速定位问题。String errorMessage = mlException.getMessage();}
  1. 实现后,开释资源
if (ner != null) {ner.stop();
}

理解更多详情 >>

拜访华为开发者联盟官网
获取开发领导文档
华为挪动服务开源仓库地址:GitHub、Gitee

关注咱们,第一工夫理解 HMS Core 最新技术资讯~

退出移动版