自然语言处理(HarmonyNLP)使用指导

← 返回组件参考 · 全部使用指导

自然语言处理(HarmonyNLP)使用指导

自然语言处理组件 - 鸿蒙端侧中文分词与命名实体识别。 鸿蒙独有组件,基于 Core NLP Kit (中文分词 + NER)。

运行前提与搭建步骤

这些案例在包含该组件的鸿蒙 AI 伴侣或 HAP 中运行。Android 侧是供网页编辑器生成积木的声明,不能用安卓伴侣验证鸿蒙系统能力。

  1. 在设计器拖入 HarmonyNLP,保留名称 HarmonyNLP1;拖入案例涉及的按钮、文本输入框以及一个标签 标签1,按代码中的名称重命名。
  2. 根据下面的业务说明准备素材、JSON 或系统目标。案例中的按钮代表分步操作,先等初始化、加载或创建成功,再执行下一步。
  3. 接住完成事件与错误事件,将原始 JSON 或错误显示在标签。先确认原始结果,再编写业务处理。

结果是 JSON 文本,可用 Web 客户端解码为字典。先检查初始化和原始输出,再按实际返回字段处理,不假设每句都有可提取实体。

案例一:分词

各案例独立使用;组合到同一屏幕时,将同名事件的处理合并到一个事件积木中。

when Screen1.Initialize() {
  HarmonyNLP1.Initialize()
}
when HarmonyNLP1.Initialized() {
  HarmonyNLP1.SegmentWords("今天去上海开会")
}
when HarmonyNLP1.WordsSegmented(结果JSON) {
  标签1.Text = 结果JSON
}

案例二:实体提取

when 按钮_提取.Click() {
  HarmonyNLP1.ExtractEntities(文本输入框1.Text)
}
when HarmonyNLP1.EntitiesExtracted(结果JSON) {
  标签1.Text = 结果JSON
}
when HarmonyNLP1.Error(错误信息) {
  标签1.Text = 错误信息
}

参数与返回值速查

JSON 参数是文本,不能直接传字典;需要字典时可用 Web 客户端的 JSON 解码积木转换返回文本。完整默认值与类型见组件参考。

方法或事件 参数与用途
提取实体(文本)(ExtractEntities) 文本:文本。对文本进行命名实体识别,提取人名、地名、机构名等实体。
获取实体类型名(类别)(GetEntityTypeName) 类别:文本。根据实体类型标识获取对应的中文名称。
初始化(Initialize) 无参数。初始化自然语言处理引擎,在使用其他功能前必须先调用。
分词(文本)(SegmentWords) 文本:文本。对中文文本进行智能分词,返回分词结果。
实体提取完成时(结果JSON)(EntitiesExtracted) 结果JSON:文本。命名实体识别完成时触发,返回识别到的实体列表。
出错时(错误信息)(Error) 错误信息:文本。发生错误时触发,返回错误信息。
已初始化时(Initialized) 无参数。NLP引擎初始化完成时触发。
分词完成时(结果JSON)(WordsSegmented) 结果JSON:文本。中文分词完成时触发,返回分词结果。

常见问题与验收

现象 检查与预期
安卓运行没有结果 切换到鸿蒙伴侣或 HAP;Android 的声明不会执行该鸿蒙系统能力。
方法已调用但界面没变化 生成 JSON 的方法只是构建数据;按业务流程交给渲染、启动或同步入口,不能将数据生成当成系统操作完成。
初始化、权限或设备失败 记录错误事件,确认系统服务、授权、目标应用或设备可用;只在成功事件后继续下一步。
JSON 解析失败 使用上一组件的原始输出,检查引号和字段类型;空对象用于默认模板演示,不能代替真实目标信息。
两个案例验收 每个按钮单独操作一次,核对对应返回或事件;输入错误目标或取消操作时查看失败事件,不应显示成功提示。

完整 .aia 源码与操作指导

下载 .aia 源码

鸿蒙中文文本处理闭环:用户输入真实文本→实际系统分词/实体提取→解析结果JSON→逐词显示词性或填入姓名、地点、时间、邮箱与电话字段。默认姓名和邮箱是测试用虚构内容,识别结果完全由系统返回,不用正则或预置值冒充分析成功。

导入 HarmonyNLPAllFeatures.aia,连接最新伴侣,或编译独立安装包。真机/伴侣运行尚未实测。

API / 功能 操作入口 预期结果
Initialize、IsInitialized、Initialized 手动初始化后再操作 真实状态/事件;组件初始化仅标记引擎可调用,实际分析仍可能由系统返回错误
SegmentWords、WordsSegmented 默认中文点分词 展示实际词数、词语与词性和原始JSON;SDK未提供词偏移,本组件分词offset为0,不用它高亮原文
ExtractEntities、EntitiesExtracted 提取实体后看五个表单字段 只用真实name/location/datetime/email/phoneNo结果;同类型多条取最后一条,未识别到留空
GetEntityTypeName phoneNo或未知类型,类型按钮 phoneNo显示电话号码;未知返回原始类型标识
Error、空文本、恢复 空输入、错误后修正重试 空文本先提示;真实系统失败显示错误,不填入预置结果
平台说明 鸿蒙运行 Android仅有编辑器占位接口,APK构建不是中文分析可用证据

所有返回值均用于界面反馈,错误由底部错误区展示。设计器采用明确非默认配置,初始化与界面同步。API 覆盖检查按最终 AIA 检查方法、事件、属性读取与设置及设计器配置,不能替代真实设备验证。

中文分词与表单提取

导入方法:项目 → 导入项目(.aia)→ 选择下载的 .aia 源码文件。 鸿蒙中文文本处理闭环:用户输入真实文本→实际系统分词/实体提取→解析结果JSON→逐词显示词性或填入姓名、地点、时间、邮箱与电话字段。默认姓名和邮箱是测试用虚构内容,识别结果完全由系统返回,不用正则或预置值冒充分析成功。 覆盖检查 9/9。首次载入及保存重开均0个错误,真实后台导入、安装包编译通过;真机/伴侣/硬件联调尚未实测。全部属性读写、方法与事件的操作入口和预期结果见组件指导。

文档反馈