开发指南

应用开发

必须导入类

  1. 在使用实体识别API时,将相关的实体识别的类添加至工程。
    import com.huawei.hiai.nlu.model.ResponseResult; // 接口返回的结果类
    import com.huawei.hiai.nlu.sdk.NLUAPIService; // 接口服务类
    import com.huawei.hiai.nlu.sdk.NLUConstants; // 接口常量类
    import com.huawei.hiai.nlu.sdk.OnResultListener; // 异步函数,执行成功的回调结果类

开发

  1. 应用NLUAPIService静态类进行初始化, 拿到服务连接的结果, 此方法提前调用,初始化时间约800ms。
    NLUAPIService.getInstance().init(context, new OnResultListener<Integer>(){
        @Override
        public void onResult(Integer result) {
        // 初始化成功回调,在服务初始化成功调用该函数
        }
    },true);

    该方法的三个参数说明:

    • 安卓上下文。
    • 初始化成功的回调,可以传null。
    • 是否加载模型,如果传false,那么在第一次使用接口的时候初始化模型。
  2. 调用获取实体识别方法得到分析结果,调用实例。同一个接口提供了两个方法,同步方法和异步方法,开发者可根据自己需要选择。
    • 同步接口:
    String requestJson = "{text:'我要看电影魔兽',module:'movie'}";
    ResponseResult respResult = NLUAPIService.getInstance().getEntity(requestJson, NLUConstants.REQUEST_TYPE_LOCAL);
    if (null != respResult) {
        //获取接口返回结果,参考接口文档返回使用
        String result = respResult.getJsonRes();
    }
    Module ----可选参数 ,不填的时候所有实体都分析
    • 异步接口:
    //待分析文本
    String requestJson = "{text:'我要看电影魔兽',module:'movie'}";
    //调用接口
    NLUAPIService.getInstance().getEntity(requestJson, NLUConstants.REQUEST_TYPE_LOCAL, new OnResultListener<ResponseResult>(){
        @Override
        public void onResult(ResponseResult respResult) {
            //异步返回
            if(null != respResult && ErrorCode.SUCCESS_RESULT == respResult.getCode()){
                //获取接口返回结果,参考接口文档返回使用
                String result = respResult.getJsonRes();
            }
        }
    });
  3. 使用结束调用onDestroy释放进程资源,如果持续使用建议在进程结束释放,释放后需要重复第二步才能使用。
    NLUAPIService.getInstance().onDestroy ();

效果展示

下图是输入“我要看电影魔兽” 文本,nlu分析返回的结果:

Search
Enter a keyword.