HarmonyOS之AI能力·词性标注
生活随笔
收集整理的這篇文章主要介紹了
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 | 標點符號 | - | - | - | - |
四、開發流程
- 在使用詞性標注的接口時,將實現詞性標注的相關類添加至工程:
- 使用 NluClient 靜態類進行初始化,通過異步方式獲取服務的連接。
-
- context:應用上下文信息,應為 ohos.aafwk.ability.Ability 或 ohos.aafwk.ability.AbilitySlice 的實例或子類實例。
-
- listener:初始化結果的回調,可以傳 null。
-
- isLoadModel:是否加載模型,如果傳 true,則在初始化時加載模型;如果傳 false,則在初始化時不加載模型。
- 調用詞性標注的接口:
-
- 采用同步方式進行詞性標注:
-
- 采用異步方式進行詞性標注:
- 銷毀 NLU 服務:
總結
以上是生活随笔為你收集整理的HarmonyOS之AI能力·词性标注的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HarmonyOS之AI能力·IM类意图
- 下一篇: HarmonyOS之应用开发的电话服务与