赞
踩
随着信息技术的发展,网络中的信息量成几何级增长逐步成为当今社会的主要特征。准确提取文本关键信息,是搜索引擎等领域的技术基础,而分词作为文本信息提取的第一步则尤为重要。
分词作为自然语言处理领域的基础研究,衍生出各类不同的文本处理相关应用。
词性标注包括分词以及为分词结果中的每个单词标注一个正确的词性(标注每个词是名词、动词、形容词或其他词性)。开发者可自定义分词的粒度。
词性标注提供了文本自动分词并给出词性的接口。对于输入的一段文本,自动通过词性标注接口对其进行分词,并为分词结果中的每个单词标注一个正确的词性。词性标注提供不同的分词粒度,开发者可以根据需要自定义分词粒度。
词性标注提供了getWordPos()接口,该接口可以根据分词粒度,为分词结果中的每个单词标注一个正确的词性。
主要接口
接口名 | 描述 |
---|---|
ResponseResult getWordPos(String requestData, int requestType) | 采用同步方式进行词性标注。 |
ResponseResult getWordPos(final String requestData, final int requestType, final OnResultListener<ResponseResult> listener) | 采用异步方式进行词性标注。 |
void init(Context context, OnResultListener<Integer> listener, boolean isLoadModel) | 初始化NLU服务。在调用NLU等功能接口前需要先调用此接口,在OnResultListener的onResult(T)方法中获取到回调结果后,再调用NLU功能接口。开发者传入listener参数作为回调,用于等待NLU功能接口的调用过程和结果。 |
void destroy(Context context) | 取消所有NLU任务,销毁NLU引擎服务。调用此方法后,无法再使用NLU服务。如果需要重新使用NLU服务,需要重新调用init(Context, OnResultListener<Integer>, boolean)}来初始化NLU服务。 |
接口输入值说明
类型 | 说明 |
---|---|
static int | REQUEST_TYPE_LOCAL = 0 本地请求 |
参数名 | 是否必选 | 类型 | 说明 |
---|---|---|---|
text | ture | String | 待分析的文本,UTF-8编码,限制500个字符以内。 |
type | false | long | 分词的粒度,默认为0。
|
callPkg | false | String | 调用者名称。 |
callType | false | int | 调用者类型:
|
callVersion | false | String | 调用者版本号。 |
callState | false | int | 调用者状态:
|
目前NLU支持的实体类别:
实体类别 | 备注 |
---|---|
电影 | 依赖字典,要求真实用例,勿做修改。 |
电视剧 | 依赖字典,要求真实用例,勿做修改。 |
综艺 | 依赖字典,要求真实用例,勿做修改。 |
动漫 | 依赖字典,要求真实用例,勿做修改。 |
火车车次 | 要求真实用例,勿做修改。 |
航班号 | 要求真实用例,勿做修改。 |
球队 | 依赖字典,支持NBA、CBA、英超、西甲、德甲、意甲、法甲、中超的球队识别,要求真实用例,勿做修改。 |
人名 | 要求真实用例,勿做修改。 |
快递单号 | 要求真实用例,勿做修改。 |
电话号码 | 要求真实用例,勿做修改。 |
url | 要求真实用例,勿做修改。 |
邮箱 | 要求真实用例,勿做修改。 |
联赛 | NBA、CBA、英超、西甲、德甲、意甲、法甲、中超,要求真实用例,勿做修改。 |
时间 | 要求真实用例,勿做修改。 |
地点 | 包含酒店、餐馆、景点、学校、道路、省、市、县、区、镇等,部分依赖字典。 |
验证码 | 用例真实,勿做修改。 |
接口返回值说明
返回值ResponseResult中responseResult为JSON字符串,体现词性标注的结果:
参数名 | 是否必选 | 值类型 | 说明 |
---|---|---|---|
code | 是 | int | 词性标注的结果码。取值包括:
|
message | 是 | String | 错误信息。 |
pos | 否 | JSONArray | 切分出的词数组,数组里的类型为JSONObject。 |
+word | 否 | String | 切分出的词。 |
+tag | 否 | String | 词性,type为1或9223372036854775807时,人名实体的词性为nr,时间实体的词为t,地点实体的词性为ns,其他实体统一为ne。具体词性类型可参表1。 |
词性 | 说明 | 词性 | 说明 | 词性 | 说明 |
---|---|---|---|---|---|
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静态类进行初始化,通过异步方式获取服务的连接。
- NluClient.getInstance().init(context, new OnResultListener<Integer>(){
- @Override
- public 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>() {
- @Override
- public void onResult(ResponseResult result) {
- //异步返回处理
- }
- });
销毁NLU服务。
NluClient.getInstance().destroy(context);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。