HarmonyOS之AI能力·词性标注
一、简介
- 随着信息技术的发展,网络中的信息量成几何级增长逐步成为当今社会的主要特征。准确提取文本关键信息,是搜索引擎等领域的技术基础,而分词作为文本信息提取的第一步则尤为重要。
- 分词作为自然语言处理领域的基础研究,衍生出各类不同的文本处理相关应用。
- 词性标注包括分词以及为分词结果中的每个单词标注一个正确的词性(标注每个词是名词、动词、形容词或其他词性),开发者可自定义分词的粒度。
- 词性标注提供了文本自动分词并给出词性的接口。对于输入的一段文本,自动通过词性标注接口对其进行分词,并为分词结果中的每个单词标注一个正确的词性。词性标注提供不同的分词粒度,开发者可以根据需要自定义分词粒度。
- 词性标注当前只支持中文语境。
- 词性标注文本限制在 500 个字符以内,超过字数将返回参数错误,文本需要为 UTF-8 格式,格式错误不报错,但会导致分析结果错误。
- Engine 支持多用户同时接入,但是不支持同一用户并发调用同一特性。若同一特性被同一进程同一时间多次调用,则返回系统忙错误;不同进程调用同一特性,则同一时间只能处理一个进程业务,其他进程进入队列排队。
二、应用场景
- 应用于搜索引擎开发。对于搜索引擎来说,在上百亿的网页中找到所有结果没有意义,重要的是把最相关的结果呈现在最前面,也称为相关度排序。分词的准确与否,直接影响到对搜索结果的相关度排序。
- 应用于语义分析相关软件的开发。在语义分析中,通过分词理解文本所要表达的正确含义,并通过词性标注得到词性,准确地判断出某个词是名词、动词、形容词等,使得语义分析更方便扩展。
三、API 说明
- 词性标注提供了 getWordPos() 接口,该接口可以根据分词粒度,为分词结果中的每个单词标注一个正确的词性。
① 主要接口
接口名 | 描述 |
---|---|
ResponseResult getWordPos(String requestData, int requestType) | 采用同步方式进行词性标注 |
ResponseResult getWordPos(final String requestData, final int requestType, final OnResultListener listener) | 采用异步方式进行词性标注 |
void 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 | true | String | 待分析的文本,UTF-8编码,限制500个字符以内 |
type | false | long |
分词的粒度,默认为0。 0:基本词,粒度较小。例如:“我要看速度与激情”,分成“我/要/看/速度/与/激情”。 1:在基本词的基础上,做实体合并。例如:“我要去江宁万达广场看速度与激情”分成“我/要/去/江宁万达广场/看/速度/与/激情”。 对于没有可合并实体的文本信息,其分词效果与type为0的分词效果相同。例如:“明天下午3点一起看电影”分成“明天/下午/3点/一起/看/电影”。 9223372036854775807(2的63次方减1):在type为1的基础上,把实体时间、地点等整体结构合并(出现符号隔开则不合并),并把一些常用短语合并。 例如:“形容词+的”,“单字动词+单字名词”等,简化句子成分。根据以上原则,“明天下午三点到五点我在江宁瑞都金逸影城看电影”将分成“明天下午三点/到/五点/我/在/江宁瑞都金逸影城/看/电影” |
callPkg | false | String | 调用者名称 |
callType | false | int |
调用者类型: 0:普通应用(默认) 1:快应用 |
callVersion | false | String | 调用者版本号 |
callState | false | int |
调用者状态: -1:未知(默认) 0:前台 1:后台 |
- 目前 NLU 支持的实体类别:
实体类别 | 备注 |
---|---|
电影 | 依赖字典,要求真实用例,勿做修改 |
电视剧 | 依赖字典,要求真实用例,勿做修改 |
综艺 | 依赖字典,要求真实用例,勿做修改 |
动漫 | 依赖字典,要求真实用例,勿做修改 |
火车车次 | 依赖字典,要求真实用例,勿做修改 |
航班号 | 要求真实用例,勿做修改 |
球队 | 要求真实用例,勿做修改 |
球队 | 依赖字典,支持NBA、CBA、英超、西甲、德甲、意甲、法甲、中超的球队识别,要求真实用例,勿做修改 |
人名 | 要求真实用例,勿做修改 |
快递单号 | 要求真实用例,勿做修改 |
电话号码 | 要求真实用例,勿做修改 |
url | 要求真实用例,勿做修改 |
邮箱 | 要求真实用例,勿做修改 |
联赛 | NBA、CBA、英超、西甲、德甲、意甲、法甲、中超,要求真实用例,勿做修改 |
时间 | 要求真实用例,勿做修改 |
地点 | 包含酒店、餐馆、景点、学校、道路、省、市、县、区、镇等,部分依赖字典 |
验证码 | 要求真实用例,勿做修改 |
③ 接口返回值说明
- 返回值 ResponseResult 中 responseResult 为 Json 字符串,体现词性标注的结果:
参数名 | 是否必选 | 类型 | 说明 |
---|---|---|---|
code | 是 | int |
词性标注的结果码。取值包括: 0:成功 1:系统正在初始化 2:参数错误 3:系统忙 4:系统异常 5:任务超时 6:其它错误 |
message | 是 | String | 错误信息 |
pos | 否 | JSONArray | 切分出的词数组,数组里的类型为JSONObject |
+word | 否 | String | 切分出的词 |
+tag | 否 | String | 词性,type为1或9223372036854775807时,人名实体的词性为nr,时间实体的词为t,地点实体的词性为ns,其他实体统一为ne |
- 词性说明:
词性 | 说明 | 词性 | 说明 | 词性 | 说明 |
---|---|---|---|---|---|
n | 名词 | rr | 人称代词 | u | 助词 |
nr | 人名 | rz | 指示代词 | uzhe | 助词“着” |
ns | 地名 | rzt | 时间指示代词 | ule | 助词“了”“喽” |
ne |
只在实体合并时使用,除人名、 时间、地点之前,其他实体统一返回ne |
rzs | 处所指示代词 | uguo | 助词“过” |
t | 时间词 | rzv | 谓词性指示代词 | ude1 | 助词“的” |
tg | 时间词性语素 | ry | 疑问代词 | ude2 | 助词“地” |
s | 处所词 | ryt | 时间疑问代词 | ude3 | 助词”得” |
f | 方位词 | rys | 处所疑问代词 | usuo | 助词”所“ |
v | 动词 | ryv | 谓词性疑问代词 | udeng | 助词“等”“等等” |
vd | 副动词 | rg | 代词性语素 | uyy | 助词”一样”“一般”“似的”“般” |
vn | 名动词 | m | 数词 | udh | 助词“的话” |
vshi | 动词“是” | mq | 数量词 | uls | 助词“来讲”“来说”“而言”“说来” |
vyou | 动词“有” | q | 量词 | uzhi | 助词“之“ |
vf | 趋向动词 | qv | 动量词 | ulian | 助词“连” |
a | 形容词 | qt | 时量词 | e | 叹词 |
ad | 副形词 | d | 副词 | y | 语气词 |
an | 名形词 | p | 介词 | o | 拟声词 |
b | 区别词 | pba | 介词“把” | h | 前缀 |
bl | 区别词性惯用语 | pbei | 介词“被” | k | 后缀 |
z | 状态词 | c | 连词 | x | 字符串 |
r | 代词 | cc | 并列连词 | idiom | 成语 |
w | 标点符号 | - | - | - | - |
四、开发流程
- 在使用词性标注的接口时,将实现词性标注的相关类添加至工程:
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\":\"我要看速度与激情\",\"type\":0}";ResponseResult responseResult = NluClient.getInstance().getWordPos(requestData, NluRequestType.REQUEST_TYPE_LOCAL);
- 采用异步方式进行词性标注:
NluClient.getInstance().getWordPos(requestData,NluRequestType.REQUEST_TYPE_LOCAL, new OnResultListener<ResponseResult>() {@Overridepublic void onResult(ResponseResult result) {//异步返回处理}});
- 销毁 NLU 服务:
NluClient.getInstance().destroy(context);
HarmonyOS之AI能力·词性标注相关推荐
- HarmonyOS之AI能力·文档检测校正
一.基本概念 文档校正提供了文档翻拍过程的辅助增强功能,包含两个子功能:文档检测和文档校验. 文档检测:能够自动识别图片中的文档,返回文档在原图中的位置信息.这里的文档泛指外形方正的事物,比如书本.相 ...
- HarmonyOS之AI能力·文字图像超分
一.简介 文字图像超分辨率可以对包含文字内容的图像进行 9 倍放大(高宽各放大 3 倍),同时增强图像内文字的清晰度,称为"文字图像超分辨率",简称"文字图像超分&quo ...
- HarmonyOS之AI能力·实体识别
一.简介 实体识别能够从自然语言中提取出具有特定意义的实体,并在此基础上完成搜索等一系列相关操作及功能. 实体识别覆盖范围大,能够满足日常开发中对实体识别的需求,让应用体验更好.识别准确率高,能够准确 ...
- HarmonyOS之AI能力·图像超分辨率
一.基本概念 针对图片分辨率不足的问题,传统的解决方案是使用双线性或双三次插值的方法来放大图像:而针对图片压缩噪声的问题,传统的解决方案则是通过各种算法实现平滑.去噪. 本 SDK 使用智能的方法,基 ...
- HarmonyOS之AI能力·通用文字识别技术
一.通用文字识别技术 通用文字识别的核心技术是 OCR(Optical Character Recognition,光学字符识别). OCR 是一种通过拍照.扫描等光学输入方式,把各种票据.卡证.表格 ...
- HarmonyOS之AI能力·二维码的生成和使用
一.码生成 码生成能够根据开发者给定的字符串信息和二维码图片尺寸,返回相应的二维码图片字节流. 调用方可以通过二维码字节流生成二维码图片. 二.约束与限制 当前仅支持生成 QR 二维码(Quick R ...
- HarmonyOS之AI能力·语音识别技术
一.基本概念 语音识别功能提供面向移动终端的语音识别能力.它基于华为智慧引擎(HUAWEI HiAI Engine)中的语音识别引擎,向开发者提供人工智能应用层 API.该技术可以将语音文件.实时语音 ...
- HarmonyOS之AI能力·语音播报
一.概念 语音播报(Text to Speech,下文简称 TTS),基于华为智慧引擎(HUAWEI HiAI Engine)中的语音播报引擎,向开发者提供人工智能应用层 API.该技术提供将文本转换 ...
- HarmonyOS之AI能力·IM类意图识别
一.基本概念 IM 类意图识别,是指利用机器学习技术,针对用户短信或聊天类 APP 等 IM 应用的文本消息进行内容分析,并识别出消息内容代表的用户意图. 基于语义分析,利用机器学习的相关技术识别并理 ...
最新文章
- 第十六届全国大学生智能汽车竞赛总决赛 AI视觉组线上赛细则
- compileSdkVersion,minSdkVersion,targetSdkVersion还有buildToolsVersion的区别
- java 如何开启一个线程_Java-开启一个新的线程
- java泛型(二)、泛型的内部原理:类型擦除以及类型擦除带来的问题
- 0宽字符加密_使用 Go 语言实现凯撒加密
- java调用第三方的webservice应用实例
- Python之路【第十篇】:索引与切片的不同
- hadoop的Map阶段的四大步骤
- QT使用SQLite数据库实现登录功能
- 山寨十年,东鹏特饮终于打败红牛!但却很尴尬
- Optimization of Machine Learning
- FFmpeg学习(12)——视频转码技巧之二次编码
- JDK 安装与环境变量配置(Win10详细版)
- 实例88:构建InfoGAN生成MNIST模拟数据
- 【IAST安全左移最佳工具】
- 【经典】一个大数据学习的解决方案
- python csv转tsv
- Android客户端与后台服务器的数据交互
- 基于进程的资源监控系列(三)--nethogs
- C++ using declaration