線上文字實體抽取能力,助力應用解析海量文字資料
隨著資訊化的發展,很多具有重要價值的知識隱藏分佈在海量資料中,影響了人們獲取知識的效率,如何處理繁雜的非結構化文字資料成為難題。
近日,HMS Core 機器學習服務 ,該能力可以檢測出文字中是否存在比如日期、姓名、專有名詞等實體資訊,並將此類實體抽取出來,即自動處理非結構化自然語言文字資料的能力。例如,影視行業的應用中常常會出現大量文字的影評、資訊等內容,使用線上文字實體抽取能力即可快速提取結構資訊,幫助搭建知識圖譜,便於使用者清晰理解。
此外,文字實體抽取能力更多應用於問答系統、資訊索引、知識圖譜構建等領域。
問答系統
問答系統是資訊檢索系統的一種高階形式,它能用準確、簡潔的自然語言回答使用者提出的問題。在問答系統實現過程中,則需要用到文字實體抽取能力識別問題和知識庫中的實體資訊,再通過多種演算法模型匹配出精準回答。
資訊索引
使用線上文字實體抽取能力,可命名特定實體資訊作為索引和超連結。比如使用者在評論時提到的專有名詞,可以生成超連結,便於其他使用者檢索瞭解相關內容。
知識圖譜構建
知識圖譜是由實體、關係和屬性組成的一種資料結構,即具有有向圖結構的一個知識庫,文字實體抽取能力作為知識圖譜構建過程中的底層能力,有著極其重要的作用。比如構建音樂知識圖譜,首先需要大量的文字資料中提取出歌手、歌曲、作詞、影視等相關資訊,然後再進行知識圖譜的搭建。 目前,華為機器學習服務線上文字實體抽取能力共支援人名、金錢、影視名、網頁連結在內的16個實體類別,可根據實際語義場景應用於不同類別的App中。
整合步驟
- 開發準備
詳細準備步驟可參考 華為開發者聯盟官網 。
- 整合和配置apigateway鑑權
基於apigateway的鑑權機制:
"paths": { "/entityExtract": { "post": { "operationId": "entityExtract", "parameters": [{"in": "body", "name": "req", "required": true, "schema": { "$ref": "#/definitions/NerEnterReq" } }, { "name": "X-Request-ID", "in": "header", "required": true, "type": "string" }, {"name": "X-Package-Name", "in": "header", "required": true, "type": "string" }, ……], "responses": {"200": { "description": "response of 200", "schema": { "$ref": "#/definitions/ResponseEntityNerBodyVo"}}}}}
- 建立線上文字實體構造器
// 使用自定義的引數配置建立語種檢測器。 MLRemoteNerSetting setting = new MLRemoteNerSetting.Factory() .setSourceLangCode("zh") .create(); MLRemoteNer ner = MLNerFactory.getInstance().getRemoteNer(setting); 進行文字實體抽取。
- 線上獲取文字實體抽取
非同步方法示例程式碼:
ner.asyncEntityExtract(input).addOnSuccessListener(new OnSuccessListener<RemoteNerResultItem[]>() { @Override public void onSuccess(RemoteNerResultItem[] remoteNerResults) { // 成功的處理邏輯。 if(remoteNerResults != null){ // 有識別結果 }else { // 識別結果為空 } } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(Exception e) { // 識別失敗,獲取相關異常資訊。 try { MLException mlException = (MLException) e; // 獲取錯誤碼,開發者可以對錯誤碼進行處理,根據錯誤碼進行差異化的頁面提示。 int errorCode = mlException.getErrCode(); // 獲取報錯資訊,開發者可以結合錯誤碼,快速定位問題。 String errorMessage = mlException.getMessage(); } catch (Exception error) { // 轉換錯誤處理。 } } });
同步方法示例程式碼:
try { RemoteNerResultItem[] remoteNerResults = ner.syncEntityExtract(input); // 識別成功邏輯 if(remoteNerResults != null){ // 有識別結果 }else { // 識別結果為空 } } catch (MLException mlException) { // 失敗的處理邏輯。 // 獲取錯誤碼,開發者可以對錯誤碼進行處理,根據錯誤碼進行差異化的頁面提示。 int errorCode = mlException.getErrCode(); // 獲取報錯資訊,開發者可以結合錯誤碼,快速定位問題。 String errorMessage = mlException.getMessage(); }
- 完成後,釋放資源
if (ner != null) { ner.stop(); }
瞭解更多詳情>>
訪問 華為開發者聯盟官網
獲取 開發指導文件
華為移動服務開源倉庫地址: GitHub
關注我們,第一時間瞭解 HMS Core 最新技術資訊~
- 個人開源專案如何上傳maven中央倉庫
- 遊戲創作者能夠為玩家創造出快樂的體驗,這或許就是做遊戲的魅力吧!
- 用Python自動生成 圖文並茂的資料分析 報告
- 軟體測試之測試代表使用者
- 分散式前修課:Zookeeper鎖實現方式
- Python 資料分析師的基本修養
- 設計模式之介面卡模式
- 如何做好企業數字化轉型?這10份靠譜案例收藏了(附下載)
- 效能提升400倍丨外匯掉期估值計算優化案例
- 如何面向物件程式設計?程式設計師:我也要先有“物件”啊
- 技術分享| 融合排程系統中的電子圍欄功能說明
- #yyds乾貨盤點# leetcode演算法題:環形連結串列 II
- 網站建設流程
- Java池化技術你瞭解多少?
- 如何實時計算日累計逐單資金流
- JAVA面試解析之Spring
- 一文參透分散式儲存系統Ceph的架構設計、叢集搭建(手把手)
- MQTT over QUIC:下一代物聯網標準協議為訊息傳輸場景注入新動力
- DataOps 不是工具,而是幫助企業實現資料價值的最佳實踐
- HTTP快取通天篇,可能有你想要的