一、基本概念

  • 随着信息技术的发展,网络中的信息量成几何级增长逐步成为当今社会的主要特征。准确提取文本关键信息,是搜索引擎等领域的技术基础,而分词作为文本信息提取的第一步则尤为重要。
  • 分词作为自然语言处理领域的基础研究,衍生出各类不同的文本处理相关应用。
  • 分词模块提供了文本自动分词的接口,对于一段输入文本,可以自动进行分词,同时提供不同的分词粒度。开发者可以根据需要自定义分词粒度。
  • 分词当前只支持中文语境。
  • 分词文本限制在 500 个字符以内,超过字符数限制将返回参数错误。文本需要为 UTF-8 格式,格式错误不会报错,但分析结果会不准确。
  • Engine 支持多用户同时接入,但是不支持同一用户并发调用同一特性。若同一个特性被同一进程同一时间多次调用,则返回系统忙错误;不同进程调用同一特性,则同一时间只能处理一个进程业务,其他进程进入队列排队。

二、应用场景

  • 分词相关接口可以应用于搜索引擎开发。对于搜索引擎而言,最重要的是如何把全网搜索的结果进行筛选,并按相关程度进行排序。分词的准确与否,常常直接影响到搜索结果的相关度排序。
  • 分词相关接口可以应用于用户选择文本的场景。原始文本只能按字选择,如果使用分词,用户选中文本的时可以按词选择。

三、API 说明

  • 分词 API 的主要功能是将一个汉字序列切分成一个一个单独的词,可自定义分词的粒度。
① 主要接口
接口名 功能描述
ResponseResult getWordSegment(String requestData, int requestType) 分词,同步接口
ResponseResult getWordSegment(final String requestData, final int requestType, final OnResultListener listener) 分词,异步接口
init(Context context, OnResultListener listener, boolean isLoadModel) 初始化NLU服务。在调用NLU等功能接口前需要先调用此接口,在OnResultListener的onResult(T)方法中获取到回调结果后,再调用NLU功能接口。开发者传入listener参数作为回调,用于等待NLU功能接口的调用过程和结果
void destroy(Context context) 取消所有NLU任务,销毁NLU引擎服务。调用此方法后,无法再使用NLU服务。如果需要重新使用NLU服务,需要重新调用init(Context, OnResultListener, boolean)}来初始化NLU服务
② 接口输入值说明
  • requestType 表示请求类型,通过 NluRequestType 类定义如下:
类型 说明
static int REQUEST_TYPE_LOCAL = 0,本地请求
  • requestData 表示输入的文本信息,为 json 格式,如下:
参数名 是否必选 值类型 说明
text String 待分析的文本,utf-8,文本长度不超过500个字符
type long 分词的粒度,默认为0。取值包括:
0:基本词,粒度较小。如“我要看速度与激情”,分成“我/要/看/速度/与/激情”。
1:在基本词的基础上,做实体合并。例如:“我要去江宁万达广场看速度与激情”,分成“我/要/去/江宁万达广场/看/速度/与/激情”。
对于没有可合并实体的文本信息,其分词效果与type为0的分词效果相同。例如:“明天下午3点一起看电影”,分成“明天/下午/3点/一起/看/电影”。
9223372036854775807(2的63次方减1):在type为1的基础上,把实体时间、地点等整体结构合并,出现符号隔开不合并,并把一些常用短语合并。如“形容词+的”,“单字动词+单字名词”等,简化句子成分。
例如“明天下午三点到五点我在江宁瑞都金逸影城看电影”,分成“明天下午三点/到/五点/我/在/江宁瑞都金逸影城/看/电影”。
callPkg String 调用者名称
callType int 调用者类型:
0:普通应用(默认)
1:快应用
callVersion String
callState int 调用者状态:
-1:未知(默认)
0:前台
1:后台
  • 目前 NLU 支持的实体类别:
实体类别 备注
电影 依赖字典,要求真实用例,勿做修改
电视剧 依赖字典,要求真实用例,勿做修改
综艺 依赖字典,要求真实用例,勿做修改
动漫 依赖字典,要求真实用例,勿做修改
火车车次 要求真实用例,勿做修改
航班号 要求真实用例,勿做修改
球队 依赖字典,支持NBA、CBA、英超、西甲、德甲、意甲、法甲、中超的球队识别,要求真实用例,勿做修改
人名 要求真实用例,勿做修改
快递单号 要求真实用例,勿做修改
电话号码 要求真实用例,勿做修改
url 要求真实用例,勿做修改
邮箱 要求真实用例,勿做修改
联赛 NBA、CBA、英超、西甲、德甲、意甲、法甲、中超,要求真实用例,勿做修改
时间 要求真实用例,勿做修改
地点 包含酒店、餐馆、景点、学校、道路、省、市、县、区、镇等,部分依赖字典
验证码 用例真实,勿做修改
③ 接口返回值说明
  • 返回值 ResponseResult 中 responseResult 为 Json 字符串,体现分词的结果:
参数名 是否必选 值类型 说明
code int 结果码。取值包括:
0:成功
1:系统正在初始化
2:参数错误
3:系统忙
4:系统异常
5:任务超时
6:其它错误
message String 错误信息
words JSONArray 切分出的词数组,数组里每一项的类型均为JSONObject

四、开发流程

  • 在使用分词 API 时,将实现分词的相关类添加至工程:
 import ohos.ai.nlu.NluRequestType;import ohos.ai.nlu.NluClient;import ohos.ai.nlu.OnResultListener;import ohos.ai.nlu.ResponseResult;
  • 使用 NluClient 静态类进行初始化,通过异步方式获取服务的连接:
    • context:应用上下文信息,应为 ohos.aafwk.ability.Ability 或 ohos.aafwk.ability.AbilitySlice 的实例或子类实例;
    • listener:初始化结果的回调,可以传 null;
    • isLoadModel:是否加载模型,如果传 true,则在初始化时加载模型;如果传 false,则在初始化时不加载模型。
 NluClient.getInstance().init(context, new OnResultListener<Integer>(){@Overridepublic void onResult(Integer result){// 初始化成功回调,在服务初始化成功调用该函数}}, true);
  • 调用分词方法得到分析结果,接口提供同步和异步两个方法,开发者可根据自己需要选择:
    • 同步:
 String requestData = "{\"text\":\"今天天气不错,我们一起看电影吧\\n\",\"type\":0}";ResponseResult responseResult = NluClient.getInstance().getWordSegment(requestData, NluRequestType.REQUEST_TYPE_LOCAL);
  • 异步:
 NluClient.getInstance().getWordSegment(requestData,NluRequestType.REQUEST_TYPE_LOCAL, new OnResultListener<ResponseResult>() {@Overridepublic void onResult(ResponseResult result) {// onResult deal}});
  • 解绑服务:
 NluClient.getInstance().destroy(context);

HarmonyOS之AI能力·分词相关推荐

  1. HarmonyOS之AI能力·词性标注

    一.简介 随着信息技术的发展,网络中的信息量成几何级增长逐步成为当今社会的主要特征.准确提取文本关键信息,是搜索引擎等领域的技术基础,而分词作为文本信息提取的第一步则尤为重要. 分词作为自然语言处理领 ...

  2. HarmonyOS之AI能力·IM类意图识别

    一.基本概念 IM 类意图识别,是指利用机器学习技术,针对用户短信或聊天类 APP 等 IM 应用的文本消息进行内容分析,并识别出消息内容代表的用户意图. 基于语义分析,利用机器学习的相关技术识别并理 ...

  3. HarmonyOS之AI能力·文档检测校正

    一.基本概念 文档校正提供了文档翻拍过程的辅助增强功能,包含两个子功能:文档检测和文档校验. 文档检测:能够自动识别图片中的文档,返回文档在原图中的位置信息.这里的文档泛指外形方正的事物,比如书本.相 ...

  4. HarmonyOS之AI能力·文字图像超分

    一.简介 文字图像超分辨率可以对包含文字内容的图像进行 9 倍放大(高宽各放大 3 倍),同时增强图像内文字的清晰度,称为"文字图像超分辨率",简称"文字图像超分&quo ...

  5. HarmonyOS之AI能力·实体识别

    一.简介 实体识别能够从自然语言中提取出具有特定意义的实体,并在此基础上完成搜索等一系列相关操作及功能. 实体识别覆盖范围大,能够满足日常开发中对实体识别的需求,让应用体验更好.识别准确率高,能够准确 ...

  6. HarmonyOS之AI能力·图像超分辨率

    一.基本概念 针对图片分辨率不足的问题,传统的解决方案是使用双线性或双三次插值的方法来放大图像:而针对图片压缩噪声的问题,传统的解决方案则是通过各种算法实现平滑.去噪. 本 SDK 使用智能的方法,基 ...

  7. HarmonyOS之AI能力·通用文字识别技术

    一.通用文字识别技术 通用文字识别的核心技术是 OCR(Optical Character Recognition,光学字符识别). OCR 是一种通过拍照.扫描等光学输入方式,把各种票据.卡证.表格 ...

  8. HarmonyOS之AI能力·二维码的生成和使用

    一.码生成 码生成能够根据开发者给定的字符串信息和二维码图片尺寸,返回相应的二维码图片字节流. 调用方可以通过二维码字节流生成二维码图片. 二.约束与限制 当前仅支持生成 QR 二维码(Quick R ...

  9. HarmonyOS之AI能力·语音识别技术

    一.基本概念 语音识别功能提供面向移动终端的语音识别能力.它基于华为智慧引擎(HUAWEI HiAI Engine)中的语音识别引擎,向开发者提供人工智能应用层 API.该技术可以将语音文件.实时语音 ...

最新文章

  1. Spring Hibernate JPA 联表查询 复杂查询
  2. 编译-链接-运行-环境配置各种error汇总
  3. 计算机组装比赛看什么书呀,现在学习计算机组装,还有硬体知识,看什么书好?推荐一下...
  4. (转)RabbitMQ学习之spring整合发送异步消息(注解实现)
  5. Linux系统rootpassword改动
  6. TCP是如何保证包的顺序传输
  7. mysql常用内置函数_mysql常见内置函数
  8. Struts2源码阅读(五)_FilterDispatcher核心控制器
  9. apache log4j入门
  10. grafana监控oracle11g,Grafana展示zabbix监控数据
  11. 项目日志 Log4cpp
  12. 微信打飞机项目小结-屏幕适配
  13. Java笔试题大全(附带答案)
  14. linux工作札记 - 查看发行版本命令
  15. How-to: 利用Web Camera模拟Windows Phone 7的重力加速度传感器
  16. 感性认识spring的IoC
  17. 余弦定理对比文本相似度实现查重
  18. 《解读基金我的投资观与实践》读后感
  19. Activiti多人会签的实现 Activiti
  20. 必看!Java 学习路线

热门文章

  1. 提高SQL查询效率(SQL优化)
  2. Nmap UDP扫描缓慢问题探究(无结果)
  3. 2015 提高组 跳石头--二分答案
  4. Java集合框架总结(5)——Map接口的使用
  5. PHP错误处理函数set_error_handler()的用法
  6. 线性模型(3):Logistic Regression
  7. 关于水晶报表的一些错误
  8. 动态将表中的列名全部转换成小写
  9. Android系统匿名共享内存Ashmem(Anonymous Shared Memory)驱动程序源代码分析
  10. 敏捷开发用户故事系列之二:如何面向客户价值编写故事