成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

HarmonyOS Sample之AI能力之NLU引擎服務

開發(fā) OpenHarmony
這一期的內(nèi)容包括:分詞能力、詞性標注、關(guān)鍵字提取、實體識別。相關(guān)代碼都增加了注釋說明和調(diào)試日志,方便理解和學習。

[[436210]]

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

1.介紹

NLU(the natural language understanding)自然語言理解引擎服務。

該引擎服務提供了 分詞、詞性標注、實體識別、意圖識別、關(guān)鍵詞提取等接口,有同步和異步兩種方法。

這一期的內(nèi)容包括:分詞能力、詞性標注、關(guān)鍵字提取、實體識別。相關(guān)代碼都增加了注釋說明和調(diào)試日志,方便理解和學習。

2.效果展示

HarmonyOS Sample 之  AI能力之NLU引擎服務-鴻蒙HarmonyOS技術(shù)社區(qū)

3.搭建環(huán)境

安裝DevEco Studio,詳情請參考DevEco Studio下載

設置DevEco Studio開發(fā)環(huán)境,DevEco Studio開發(fā)環(huán)境需要依賴于網(wǎng)絡環(huán)境,需要連接上網(wǎng)絡才能確保工具的正常使用,可以根據(jù)如下兩種情況來配置開發(fā)環(huán)境:

如果可以直接訪問Internet,只需進行下載HarmonyOS SDK操作

如果網(wǎng)絡不能直接訪問Internet,需要通過代理服務器才可以訪問,請參考配置開發(fā)環(huán)境

下載源碼后,使用DevEco Studio 打開項目,模擬器運行即可。

真機運行需要將config.json中的buddleName修改為自己的,如果沒有請到AGC上進行配置,參見 使用模擬器進行調(diào)試

4.項目結(jié)構(gòu)

5.代碼講解

5.1 分詞能力(getWordSegment)

分詞API的主要功能是將一個漢字序列切分成一個一個單獨的詞,可自定義分詞的粒度。

場景:1.搜索引擎開發(fā)場景,搜索結(jié)果的相關(guān)度排序;2.用戶選擇用戶選擇文本的場景,例如雙擊選擇分本時,按照分詞進行選中等。

5.1.1 核心類

  1. import ohos.ai.nlu.NluClient; //提供調(diào)用自然語言理解 (NLU) 引擎服務的方法。 
  2. import ohos.ai.nlu.NluRequestType; //定義調(diào)用 NLU 引擎功能的請求類型。 
  3. import ohos.ai.nlu.ResponseResult; //以JSON格式提供NLU識別結(jié)果。 

 5.1.2 使用流程

HarmonyOS Sample 之  AI能力之NLU引擎服務-鴻蒙HarmonyOS技術(shù)社區(qū)

1.NluClient靜態(tài)類進行初始化

  1. NluClient.getInstance().init(Context context,  
  2. OnResultListener<Integer> listener,boolean isLoadModel) 

2.獲取分詞結(jié)果

  1. // 1.同步接口 
  2. ResponseResult responseResult =  
  3. NluClient.getInstance().getWordSegment(requestData,NluRequestType.REQUEST_TYPE_LOCAL); 
  4.  
  5. //2.異步接口 
  6. NluClient.getInstance() 
  7. .getWordSegment(requestData,NluRequestType.REQUEST_TYPE_LOCAL, 
  8.         asyncResult -> { 
  9.             //發(fā)送分詞結(jié)果 
  10.             sendResult(asyncResult.getResponseResult(), 0); 
  11.             release(); 
  12.         }); 

requestData:JSON格式,參數(shù)名包括{text,type,callPkg,callType,callVersion,callState},其中,

text:待分析的文本,必填項;

type:分詞的粒度,枚舉值,0:基本詞 ;1:在基本詞的基礎(chǔ)上,做實體合并;223372036854775807:在type為1的基礎(chǔ)上,把實體時間、地點等整體結(jié)構(gòu)合并,出現(xiàn)符號隔開不合并,并把一些常用短語合并,默認為0。

requestType: 枚舉值,NluRequestType.REQUEST_TYPE_LOCAL 表示調(diào)用本地引擎。

3.解析返回結(jié)果

ResponseResult responseResult 返回JSON格式字符串,JSON格式,參數(shù)名包括:{code,message,words}

  1. //{"code":0,"message":"success","words":["我","明天","下午","三點"
  2. //"要","去","江寧萬達廣場","看","速度","與","激情"]} 
  3.  
  4. // 將分詞結(jié)果轉(zhuǎn)換成list 
  5. if (result.contains("\"message\":\"success\"")) { 
  6.     switch (operateType) { 
  7.         //分詞 
  8.         case 0: 
  9.             String words = result.substring(result.indexOf(WORDS) + STEP, 
  10.                     result.lastIndexOf("]")).replaceAll("\""""); 
  11.             if ((words == null) || ("".equals(words))) { 
  12.                 // 未識別到分詞結(jié)果,返回"no keywords" 
  13.                 lists = new ArrayList<>(1); 
  14.                 lists.add("no keywords"); 
  15.             } else { 
  16.                 lists = Arrays.asList(words.split(",")); 
  17.             } 
  18.             //構(gòu)建事件 
  19.             event = InnerEvent.get(TWO, ZERO, lists); 
  20.     } 

4.釋放資源

  1. NluClient.getInstance().destroy(slice); 

 5.1.3 分詞粒度測試

  1. type=0 
  2. requestData:{“text”:我明天下午三點要去江寧萬達廣場看速度與激情,“type”:0} 
  3. 分詞結(jié)果: 
  4. {“code”:0,“message”:“success”,“words”: 
  5. [“我”,“明天”,“下午”,“三點”,“要”,“去”,“江寧萬達廣場”,“看”,“速度”,“與”,“激情”]} 
  6.  
  7. type=1 
  8. requestData:{“text”:我明天下午三點要去江寧萬達廣場看速度與激情,“type”:1} 
  9. 分詞結(jié)果: 
  10. {“code”:0,“message”:“success”,“words”: 
  11. [“我”,“明天”,“下午”,“三點”,“要”,“去”,“江寧萬達廣場”,“看”,“速度與激情”]} 
  12.  
  13. type=9223372036854775807 
  14. requestData:{“text”:我明天下午三點要去江寧萬達廣場看速度與激情,“type”:9223372036854775807} 
  15. 分詞結(jié)果: 
  16. {“code”:0,“message”:“success”,“words”: 
  17. [“我”,“明天下午三點”,“要去”,“江寧萬達廣場”,“看”,“速度與激情”]} 

5.2 詞性標注(getWordPos)

詞性標注提供了getWordPos()接口,該接口可以根據(jù)分詞粒度,為分詞結(jié)果中的每個單詞標注一個正確的詞性。

5.2.1 用法

用法和分詞能力類似,獲取詞性標注的接口是getWordPos(),傳入的requestData參數(shù)和返回對象ResponseResult都是一樣的。

  1. ResponseResult responseResult =  
  2. NluClient.getInstance().getWordPos(requestData, NluRequestType.REQUEST_TYPE_LOCAL); 

5.2.2 詞性標注結(jié)果

requestData:

  1. {"text":"我明天下午三點要去江寧萬達廣場看速度與激情","type":0} 

responseResult:

  1. {"code":0,"message":"success","pos":[ 
  2. {"word":"我","tag":"rr"}, 
  3. {"word":"明天","tag":"t"}, 
  4. {"word":"下午","tag":"t"},{"word":"三點","tag":"t"},{"word":"要","tag":"v"},{"word":"去","tag":"vf"}, 
  5. {"word":"江寧萬達廣場","tag":"n"},{"word":"看","tag":"v"},{"word":"速度","tag":"n"},{"word":"與","tag":"cc"},{"word":"激情","tag":"n"
  6. ]} 

詞性:rr:人稱代詞,t:時間詞,v:動詞,vf:趨向動詞,n:名詞,cc:并列連詞

tag詞性值就不一一列舉了,詳情查看

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ai-pos-tagging-guidelines-0000001050732512

5.3 提取關(guān)鍵詞(getKeywords)

關(guān)鍵字提取API提供了一個提取關(guān)鍵字的接口,通過該API可以在大量信息中提取出文本想要表達的核心內(nèi)容,可以是具有特定意義的實體,如:人名,地點,電影等。也可以是一些基礎(chǔ)但是在文本中很關(guān)鍵的詞匯。通過該API可以對提取的關(guān)鍵字按照在文本中所占權(quán)重由高到低排序。排序越靠前,權(quán)重越高,對文本的核心內(nèi)容的提取越準確。

5.3.1 用法

用法和分詞能力類似,提取關(guān)鍵詞接口是getKeywords(),requestData輸入數(shù)據(jù)的JSON 格式參數(shù)有所變化 {body,number,title}

body:要分析文本,必選,如新聞或email內(nèi)容或文章;

number:提取關(guān)鍵詞個數(shù),必選;title: 內(nèi)容標題,可選

  1. ResponseResult responseResult =  
  2. NluClient.getInstance().getKeywords(requestData, NluRequestType.REQUEST_TYPE_LOCAL); 

5.3.2 提取關(guān)鍵詞結(jié)果展示

requestData:

  1. {"body":"對接各資源服務中心接入衛(wèi)健、醫(yī)保、人社、民政等橫向單位數(shù)據(jù),逐步完善和豐富退役軍人健康檔案信息","number":5,"title":"退役軍人"
  2. 1. 
  3. 1. 
  4. 1. 
  5. 1. 

 responseResult:

  1. {"keywords":["退役","軍人","衛(wèi)健","醫(yī)保","對接"],"code":0,"message":"成功"

 5.4 實體識別(getEntity)

實體識別能夠從自然語言中提取出具有特定意義的實體,并在此基礎(chǔ)上完成搜索等一系列相關(guān)操作及功能。

5.4.1 用法

用法和分詞能力類似,獲取實體識別的接口是getEntity(),requestData輸入數(shù)據(jù)的JSON 格式參數(shù)有所變化 {text,module,callPkg,callType,callVersion,callState}

text:分析文本,必選,如新聞或email內(nèi)容;

module:需要分析的實體,可選,默認所有實體均會分析。

分析某個實體,傳實體鍵值,例如:只需要分析時間實體,傳“time”。可傳多個,表示分析多個實體,以半角逗號“,”分隔,例如:分析時間和地點,傳“time,location”。

取值范圍:name、time、location、phoneNum、email、url、movie、tv、anime、league、team、trainNo、flightNo、expressNo、idNo、verificationCode、app、carNo

  1. ResponseResult responseResult =  
  2. NluClient.getInstance().getEntity(requestData, NluRequestType.REQUEST_TYPE_LOCAL); 

5.4.2 分析實體結(jié)果展示

requestData:

  1. {"text":"我明天下午三點要去江寧萬達廣場看速度與激情"

responseResult:

  1.     "entity": { 
  2.         "movie": [{ 
  3.             "oriText""速度與激情"
  4.             "sequence": 1, 
  5.             "origin""1637301307158"
  6.             "heat": 0, 
  7.             "standardName""速度與激情"
  8.             "charOffset": 16, 
  9.             "normalValue""速度與激情"
  10.             "user.extend"false
  11.             "isCorrected"false 
  12.         }], 
  13.         "location": [{ 
  14.             "sequence": 1, 
  15.             "origin""1637301307158"
  16.             "oriText""江寧萬達廣場"
  17.             "key""江寧萬達廣場"
  18.             "type""nspHB"
  19.             "coreLocation": { 
  20.                 "value""江寧萬達廣場"
  21.                 "location": { 
  22.                     "value""江寧萬達廣場" 
  23.                 } 
  24.             }, 
  25.             "isAbstract""0"
  26.             "cost""29"
  27.             "charOffset": 9, 
  28.             "normalValue""江寧萬達廣場"
  29.             "user.extend"false
  30.             "isCorrected"false 
  31.         }], 
  32.         "time": [{ 
  33.             "normalTime": { 
  34.                 "start": { 
  35.                     "timestamp": 1637391600000, 
  36.                     "section""P"
  37.                     "standardTime""2021年11月20日15時00分00秒" 
  38.                 } 
  39.             }, 
  40.             "oriText""明天下午三點"
  41.             "sequence": 1, 
  42.             "origin""1637301307158"
  43.             "charOffset": 1, 
  44.             "normalValue""明天下午三點"
  45.             "user.extend"false
  46.             "isCorrected"false 
  47.         }], 
  48.         "varietyshow": [{ 
  49.             "oriText""速度與激情"
  50.             "sequence": 1, 
  51.             "origin""1637301307158"
  52.             "heat": 0, 
  53.             "standardName""速度與激情"
  54.             "charOffset": 16, 
  55.             "normalValue""速度與激" 
  56.         }] 
  57.     } 

6.思考總結(jié)

1.上述的AI能力不需要申請權(quán)限

2.這些AI能力使用起來還是非常方便的,開箱即用,可以靈活運用到應用開發(fā)中。

文章相關(guān)附件可以點擊下面的原文鏈接前往下載

https://harmonyos.51cto.com/resource/1514

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2021-11-30 14:51:11

鴻蒙HarmonyOS應用

2021-12-24 10:34:11

鴻蒙HarmonyOS應用

2021-09-15 14:55:49

鴻蒙HarmonyOS應用

2021-08-17 10:20:14

鴻蒙HarmonyOS應用

2021-09-17 14:43:54

鴻蒙HarmonyOS應用

2021-09-24 09:25:01

鴻蒙HarmonyOS應用

2021-11-02 10:10:49

鴻蒙HarmonyOS應用

2021-07-08 09:42:04

鴻蒙HarmonyOS應用

2021-09-22 09:42:41

鴻蒙HarmonyOS應用

2021-07-29 14:03:35

鴻蒙HarmonyOS應用

2021-12-10 15:06:56

鴻蒙HarmonyOS應用

2021-12-02 10:11:44

鴻蒙HarmonyOS應用

2021-08-24 15:13:06

鴻蒙HarmonyOS應用

2024-05-22 15:09:37

2019-12-12 10:58:37

Docker容器引擎

2021-09-23 10:00:57

鴻蒙HarmonyOS應用

2020-03-17 09:21:20

MariaDBSpider存儲

2022-07-19 19:53:58

Http請求AI寫詩

2023-09-07 17:05:58

語音增強AI音頻編碼

2023-07-26 19:03:28

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: av三级在线观看 | 亚洲福利一区二区 | 成人免费高清 | aaaaaaa片毛片免费观看 | 99久久婷婷国产综合精品首页 | 国产精品福利在线观看 | av色在线 | 国产精品久久久久久久久久久久久 | 在线免费观看黄色 | 日韩视频精品在线 | 天天干狠狠 | 性色视频在线观看 | 久久精品国产一区二区三区 | 国产视频在线一区二区 | 亚洲精品在线视频 | 国产丝袜一区二区三区免费视频 | 日日射影院 | 国产乱码精品一区二区三区五月婷 | 精品欧美一区免费观看α√ | 亚洲一区免费视频 | 午夜激情小视频 | 国产美女视频 | 欧美亚洲高清 | 午夜视频在线观看网址 | 粉嫩一区二区三区性色av | 69福利影院 | 高清免费av | 99精品久久| 91综合网 | aaaaaaa片毛片免费观看 | 在线日韩欧美 | 精品视频一区二区在线观看 | 成人免费观看男女羞羞视频 | 久久在线视频 | 久久中文字幕一区 | 欧美淫| 亚洲精品二区 | 天天亚洲| 欧美成人性生活 | 日韩www| 在线观看国产 |