手把手教你使用百度大腦地址識別API

2020-12-06 CSDN技術社區

最近筆者在某小程序上購物時發現,不管公司大小、客戶多少,凡是涉及到電商基本上都有自己的下單系統,業務十分成熟。想到各家快遞公司,都有獨立的下單平臺,出於好奇筆者在網上搜索了下,發現百度大腦竟然有地址識別接口,趕緊來試一波。測試後發現,這個接口能大幅提升地址文本的處理效率,非常適合物流、快遞、電商、貿易行業,有了它就可以自己搭建快遞下單平臺了。

一、 百度大腦地址識別的功能和亮點

通過百度大腦地址識別產品頁面上的介紹,筆者羅列了這個接口的一些功能點和亮點:

1.針對快遞、電商行業客戶在線提交的大量非結構化地址單據,該接口可以幫助提取單據中的姓名、電話、地址信息;

2. 融合百度地圖權威數據,自動補全地址中缺失的信息和錯誤糾正,地址信息的識別準召率可達到88%;

3. 融合詞法分析技術,自動識別文本中的人名和電話信息,識別準確率可達97%以上;

4. 基於語義分析構建的智能算法與場景策略相配合,平均準召率可達95%。

二、百度大腦地址識別的應用場景

從接口名稱可以了解到,地址識別可以用於快遞下單發貨以及電商客戶訂單處理等場景。

三、百度大腦地址識別的使用攻略

接下來一步步帶領大家調用地址識別API接口。需要說明的是,[X1] 本文採用C# 語言,開發環境為.Net Core 3.1,採用在線API接口方式實現。

(1)平臺接入

登陸 百度智能雲-管理中心 創建 「自然語言處理」應用,獲取 「API Key 」和 「Secret Key」:https://console.bce.baidu.com/ai/?_=1578390135051&fromai=1#/ai/nlp/app/list

(2)接口文檔

文檔地址:https://ai.baidu.com/ai-doc/NLP/vk6z52h5n

請求說明

HTTP方法:POST

請求URL:https://aip.baidubce.com/rpc/2.0/nlp/v1/address

URL參數:

Header如下:

Body中放置請求參數,參數詳情如下:

{ "text": "上海市浦東新區納賢路701號百度上海研發中心 F4A000 張三"}

body整體文本內容可以支持GBK和UTF-8兩種格式的編碼。

1、GBK支持:默認按GBK進行編碼,輸入內容為GBK編碼,輸出內容為GBK編碼,否則會接口報錯編碼錯誤

2、UTF-8支持:若文本需要使用UTF-8編碼,請在url參數中添加charset=UTF-8 (大小寫敏感) 例如 https://aip.baidubce.com/rpc/2.0/nlp/v1/lexer?charset=UTF-8&access_token=24.f9ba9c5241b67688bb4adbed8bc91dec.2592000.1485570332.282335-8574074

請求參數

返回說明

返回參數

返回格式

JSON格式

默認返回內容為GBK編碼

若用戶指定輸入為UTF-8編碼(通過指定charset參數),則返回內容為UTF-8編碼

返回示例:

{ "province": "上海市", "city": "上海市", "province_code": "310000", "log_id": 1420038644986026316, "text": "上海市浦東新區納賢路701號百度上海研發中心 F4A000 張三", "town": "張江鎮", "phonenum": "", "detail": "納賢路701號百度上海研發中心F4A000", "county": "浦東新區", "person": "張三", "town_code": "310115125", "county_code": "310115", "city_code": "310100"}

(3)源碼共享

(3-1)根據 API Key 和 Secret Key 獲取 AccessToken

/// /// 獲取百度access_token/// /// API Key/// Secret Key/// public static string GetAccessToken(string clientId, string clientSecret){ string authHost = "https://aip.baidubce.com/oauth/2.0/token"; HttpClient client = new HttpClient(); List paraList = new List(); paraList.Add(new KeyValuePair("grant_type", "client_credentials")); paraList.Add(new KeyValuePair("client_id", clientId)); paraList.Add(new KeyValuePair("client_secret", clientSecret)); HttpResponseMessage response = client.PostAsync(authHost, new FormUrlEncodedContent(paraList)).Result; string result = response.Content.ReadAsStringAsync().Result; JObject jo = (JObject)JsonConvert.DeserializeObject(result); string token = jo["access_token"].ToString(); return token;}

(3-2)調用API接口獲取識別結果

(3-2-1) 建立Index.cshtml文件

(3-2-1-1)前臺代碼:

    由於html代碼無法原生顯示,只能簡單說明一下:

    主要是一個form表單,需要設置屬性method="post";

    form表單裡面有幾個控制項:

一個Input:type="file",asp-for="Text" ,輸入地址信息;一個Input:type="submit",asp-page-handler="Address" ,提交請求。

(3-2-1-2) 後臺代碼: 

主程序代碼:

[BindProperty]public string Text { get; set; }public List msg = new List();public string curPath { get; set; }string NLP_API_KEY="你的API KEY";string NLP_SECRET_KEY="你的SECRET KEY";public async Task OnPostAddressAsync(){ if (string.IsNullOrEmpty(Text)) { ModelState.AddModelError(string.Empty, "請輸入具體內容!"); } if (!ModelState.IsValid) { return Page(); } msg = new List(); DateTime startTime = DateTime.Now; string result = GetNLPJson(Text, NLP_API_KEY, NLP_SECRET_KEY); DateTime endTime = DateTime.Now; TimeSpan ts = endTime - startTime; JObject jo = (JObject)JsonStringToObj(result); try { msg.Add("地址識別結果(耗時" + ts.TotalSeconds + "秒):\n"); msg.Add("聯繫人"); msg.Add("姓名:" + jo["person"].ToString()); msg.Add("電話號碼:" + jo["phonenum"].ToString()); msg.Add("地址"); msg.Add("省:" + jo["province"].ToString()); msg.Add("市:" + jo["city"].ToString()); msg.Add("區(縣):" + jo["county"].ToString()); msg.Add("街道(鄉/鎮):" + jo["town"].ToString()); msg.Add("詳細地址:" + jo["detail"].ToString()); msg.Add(result); } catch (Exception e) { msg.Add(result); } return Page();}

其他相關函數:

/// /// 自然語言處理Json字符串/// /// 內容/// API Key/// Secret Key/// public static string GetNLPJson(string text, string clientId, string clientSecret){ string token = GetAccessToken(clientId, clientSecret); string host = "https://aip.baidubce.com/rpc/2.0/nlp/v1/address?charset=UTF-8&access_token=" + token; Encoding encoding = Encoding.Default; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host); request.Method = "post"; request.ContentType = "application/json"; request.KeepAlive = true; string str = "{\"text\":\"" + text; str += "\"}"; byte[] buffer = encoding.GetBytes(str); request.ContentLength = buffer.Length; request.GetRequestStream().Write(buffer, 0, buffer.Length); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); string result = reader.ReadToEnd(); return result;}/// /// 獲取百度access_token/// /// API Key/// Secret Key/// public static string GetAccessToken(string clientId, string clientSecret){ string authHost = "https://aip.baidubce.com/oauth/2.0/token"; HttpClient client = new HttpClient(); List paraList = new List(); paraList.Add(new KeyValuePair("grant_type", "client_credentials")); paraList.Add(new KeyValuePair("client_id", clientId)); paraList.Add(new KeyValuePair("client_secret", clientSecret)); HttpResponseMessage response = client.PostAsync(authHost, new FormUrlEncodedContent(paraList)).Result; string result = response.Content.ReadAsStringAsync().Result; JObject jo = (JObject)JsonConvert.DeserializeObject(result); string token = jo["access_token"].ToString(); return token;}/// /// 生成一個隨機唯一文件名(Guid)/// /// public static string GetRandomName(){ return Guid.NewGuid().ToString("N");}/// /// json轉為對象/// /// Json字符串/// public static Object JsonStringToObj(string jsonString){ Object s = JsonConvert.DeserializeObject(jsonString); return s;}

四、效果測試

1、頁面:

2、筆者輸入了5個地址,識別結果如下:

2.1

2.2

2.3

2.4

2.5

五、測試結果及建議

從上面的測試結果可以了解到,百度大腦地址識別API接口的識別速度基本上能夠在半秒識別出來,並且準確度也不錯,還能自動補齊或糾正地址信息,很方便。

考慮到百度大腦還有豐富的OCR技術和語音識別技術,在未來可以將文本輸入、語音輸入和圖片輸入考慮在內,做成綜合的地址識別解決方案,方便各大快遞公司或電商企業使用。

不過,聯想到人們對地址、電話信息安全方面越來越重視,一些企業可以在隱私安全保護這方面下功夫。比如聯合各大商城、快遞公司,搭建統一地址管理平臺,生成唯一的識別碼/二維碼,客戶可以在平臺填寫身份地址信息,進行實名認證,然後使用唯一的識別碼/二維碼發送快遞信息,既方便客戶管理個人地址信息(不用再在各個平臺去分別更新地址信息、進行實名認證),又加強了隱私安全保護。

一些個人想法,不過百度大腦地址識別是個可直接用於業務生產的接口,還是十分推薦的(*^▽^*)

相關焦點

  • 百度快速收錄API提交代碼適合各種網站及APP教程
    使用說明:1、快速收錄僅限於提交移動端頁面及移動端自適應頁面。2、快速收錄工具可以向百度搜索主動推送資源,縮短爬蟲發現網站連結的時間,對於高實效性內容推薦使用快速收錄工具,實時向搜索推送資源。3、資源不符合移動資源標準,依然會佔用配額,請您謹慎選擇提交類型。判斷站點是否符合移動體驗標準,請參考《百度搜索優質內容指南》及《百度APP移動搜索落地頁體驗白皮書5.0》。
  • 手把手教你在ppt中設置超連結
    手把手教你在ppt中設置超連結時間:2017-08-05 13:37   來源:三聯   責任編輯:沫朵 川北在線核心提示:原標題:ppt中超連結怎麼添加? 手把手教你在ppt中設置超連結 ppt中超連結怎麼添加?
  • dedecms添加百度地圖api可動態放縮,支持http和https的方法
    做了一個和本地信息有關的網站,需要用到百度地圖,網上相關的教程比較少,而且都是使用iframe的方式來加載,雖然實現了可動態放縮功能,但是對於https的網站卻不顯示,分享一下dedecms添加百度地圖api3.0的經驗。
  • 手把手教你學Numpy——常用API合集
    numpy當中的聚合函數在使用的時候允許傳入軸這個參數,限制它聚合的範圍。我們通過axis這個參數來控制,axis=0表示對列聚合,axis=1表示對行聚合。我們死記的話總是會搞混淆,實際上axis傳入的也是一個索引,表示第幾個索引的索引。我們的二維數組的shape是[行, 列],其中的第0位是行,第1位是列,可以認為axis是這個索引向量的一個索引。
  • 使用百度地圖精準定位經緯度坐標的方法
    如何在百度地圖上精確定位自己的地理位置,很多朋友都不是很清楚。 小空在使用百度地圖的過程中有一些經驗體會,願與大家分享, 以方便大家可以精確的定位自己地理位置,少走彎路。打開百度地圖「坐標拾取系統」:輸入網址」http://api.map.baidu.com/lbsapi/getpoint/index.html「,進入」坐標拾取系統「進入」坐標拾取系統「後,就可以方便的查詢自己的精準地理信息了,我們以」海爾工業園「為例,尋找它的詳細坐標。
  • adobe after effects插件怎麼安裝 手把手教你ae插件怎麼安裝
    adobe after effects插件怎麼安裝 手把手教你ae插件怎麼安裝時間:2017-07-17 15:09   來源:系統天堂   責任編輯:沫朵 川北在線核心提示:原標題:adobe after effects插件怎麼安裝 手把手教你ae插件怎麼安裝 adobe after effects插件怎麼安裝
  • 手把手教你使用win7電腦放大鏡
    手把手教你使用win7電腦放大鏡時間:2018-03-27 08:25   來源:系統天堂   責任編輯:沫朵 川北在線核心提示:原標題:win7放大鏡怎麼用? 手把手教你使用win7電腦放大鏡 win7放大鏡怎麼用?有時候網頁的字太小,我們會遇到看不清楚的情況,這時候我們可以藉助電腦本身的放大鏡功能,來清晰查看內容。
  • 百度大腦產品上新&技術升級:圖像處理、智能寫作平臺、語音識別
    百度大腦一月一次的最新技術&產品盤點來了。在這裡,與百度大腦一起成長,見證 AI 的力量。您可以從 PC 端訪問百度 AI 開放平臺(ai.baidu.com)申請邀測,或使用最新產品。新開放 AI 技術能力語音識別語音識別極速版支持60秒內音頻使用 REST API 方式進行調用,簡單易用。
  • 資源 從人臉識別到機器翻譯:52個有用的機器學習和預測API
    連結:http://api.animetrics.com2.Betaface:一個面部識別和檢測的網頁服務。提供了包括多面部識別、面部遮蔽、123 個面部點(22 個基本,101 個高級)檢測、面部驗證、鑑定、大數據集中相似度搜索等功能。
  • 百度大腦人機大戰險勝,我們來聊點乾貨:人臉識別的原理
    Google的人工智慧AlphaGo剛剛剛在圍棋領域60連勝,百度也玩起了人機大戰。 綜藝節目《最強大腦》在第四季設置了人機對戰環節,百度將「百度大腦」的人工智慧技術植入到機器人「小度」人上,來節目上踢館。 《最強大腦》中有個名人堂,裡面全是以往節目中的高手,是心算、辨音、記憶等各個領域各自的大師。
  • 學姐分享|手把手教你免費安裝、激活Office
    以下僅供個人學習、交流使用,請勿傳播。每次要安裝各種大型軟體比如Office時,頭就大了,作為一個工科女,這點小事怎麼難得到我呢?來,小九學姐手把手教你免費安裝、激活office各版本!在這個過程中,我們只需要下載一個內存只有11M的軟體——Office Tool Plus。是的,就是這麼簡單。
  • 教你如何正確的使用BT種子(防和諧利器)
    相信經常用百度網盤看資源的夥伴最煩的就是這張圖,目前網上最流行的解決辦法是把這些敏感資源轉化成BT種子的形式;類似這樣的文件,文件結尾為torrent,佔用空間幾百K,就是BT種子;今天豆豆就手把手教大家如何正確的使用這些BT種子~
  • 手把手教你如何使用註冊谷歌郵箱
    但國內正常情況下是打不開谷歌Gmail郵箱註冊入口進行註冊的,下面小編就就教大家谷歌郵箱Gmail怎麼註冊。上面那我們提到國內正常情況下是打不開谷歌Gmail郵箱,那該怎麼辦呢?沒事小編這裡就給大家介紹一款軟體工具 - 361。如果沒有會員號的朋友們,可以先使用免費試用,如果覺得不錯之後再來購買會員。這款加速器裡面有很多節選點,大家可以打來看看。
  • 手把手教你如何使用斐波那契回調線
    原標題:手把手教你如何使用斐波那契回調線 在交易市場上,大多數的技術指標都具有滯後性,導致交易者在使用時不太好掌握。但是,斐波那契回調線具有提前性,能很好的幫助交易者掛單操作,提前布局。 斐波那契位38.2%和61.8%這些位置被所有的交易者關注著,它們是潛在的入場位,以追隨趨勢市場。
  • 2019百度AI開發者大會前夕,解讀百度大腦的半年「豹變」
    而在北京海澱公園,有一種智能垃圾箱卻成為網紅,你只要將垃圾放到攝像頭識別區域,它就能對垃圾圖片進行智能判斷,顯示垃圾是否可回收,並打開對應箱體的擋板。垃圾分類原來如此簡單!這種智能垃圾箱的背後,是百度大腦的AI技術。北京分形科技使用百度大腦EasyDL制化訓練及服務平臺,識別準確率高達99%。
  • 手把手教你製作ppt日記本
    手把手教你製作ppt日記本時間:2017-07-16 15:06   來源:三聯   責任編輯:沫朵 川北在線核心提示:原標題:ppt怎麼製作筆記本? 手把手教你製作ppt日記本 ppt怎麼製作筆記本?本文介紹了使用ppt製作日記本的方法,製作方法簡單,一起來學習吧!
  • 手把手教你正確使用方法
    手把手教你正確使用方法 2019年12月17日 13:12作者:網絡編輯:宏偉   俗話說有數據表明,電動牙刷相比較普通牙刷,在便捷性和清潔性方面都提升不少,所以不少人選擇使用電動牙刷。  但是你知道嗎?電動牙刷的操作也是有技巧,正確使用可以達到事半功倍的效果。接下來,就以小編最近入手的usmile Y4電動牙刷為例,來詳細說說「電動牙刷怎麼用」的那些事。
  • 手把手教你做「永動機」 --奇妙的電磁學
    手把手教你做「永動機」--奇妙的電磁學
  • 從人臉識別到文本分析,50+超實用的 API 推薦清單
    它可以幫你找到感興趣的圖像,並迅速獲得豐富的注釋。它將圖像分為數千個類別(如船、獅子和艾菲爾鐵塔),能檢測相關人臉表情,並識別多種語言的印刷文字。8.它是基於 PaaS 的圖像識別 API。10. Kairoshttps://www.kairos.com/docs/api/它可快速將情緒分析和人臉識別功能添加到應用和服務平臺。
  • 使用Python+百度OCR文字識別提取圖片內容
    ,我們常常會將圖片中的文字整理成word文檔,過去主要依靠人工識別,費時費力,隨著人工智慧技術的發展,OCR文字識別的準確度越來越高,此項工作完全可以交給系統來完成了,下面是一段Python版的文字識別代碼,使用了百度的「百度文字識別接口」。