十種值得掌握的機器學習類API
譯文【51CTO.com快譯】現如今,從手機上的照片流識別系統到電子郵件收件箱中的過濾系統,機器學習可謂是無處不在。更有甚者認為:機器學習已成為了未來不可或缺的工具之一。當然,不可否認的是:隨著互聯網更加趨向于個性化,機器學習已經變得比以往任何時候都更加重要了。也許您早已聽說,像Amazon這樣的大公司正在使用其機器學習算法(具體請參見https://blog.eduonix.com/internet-of-things/6-machine-learning-algorithms-learn-newbie/),來根據用戶的興趣為客戶提供各種定制化的建議。
大約就在十年前,互聯網的主要目的還只是單純地為您提供信息,即:根據您所提供的某個關鍵字,在全球范圍內搜索并生成有關該特定關鍵字的結果。而如今,其主要目標已經變成了為用戶提供更多的相關信息,這些信息更接近于他們所搜索的內容。這便是機器學習真正起作用的地方。
目前,雖然機器學習主要還是由包括Google、Amazon、IBM和Microsoft在內的大公司所主導,但是各類小型公司也正在潛移默化地將其算法和API引入該領域。這些API使得不同的公司更容易地跨界共享各類知識和信息。下面,在深入研究那些創新式的機器學習類API之前,讓我們先簡單介紹一下到底何為API。
什么是API?
簡單說來,API或稱應用程序編程接口(請詳見https://searchmicroservices.techtarget.com/definition/application-program-interface-API)是實現兩個軟件程序相互通信的代碼片段。它是一組用于構建軟件的定義、協議和工具。API實現了兩個軟件之間的連接,不但負責將請求從一個軟件發送到另一個軟件,還會將請求的應答原路返回。
一般而言,API由兩部分組成:一、描述如何在程序之間交換信息的規范;二、作為寫入該規范并以某種方式發布出去,以供使用的軟件接口。
因此,API有如下三種類型:
- 本地API - 這些API為應用程序提供了操作系統或中間件的服務,例如Microsoft的.NET API。
- Web API - 這些API可運行在互聯網上,實現消息的發送和接收,包括各種URL。
- 程序API - 基于遠程過程調用(Remote Procedure Call)技術的一些API,使得某個遠程程序組件對于軟件的其他部分而言,就像是運行在本地一樣。
我們在此為您列舉了本年度值得掌握的十種“現象級”機器學習類API:
1. PredictionIO
PredictionIO是一個基于Apache的開源類機器學習API,它能夠使得數據科學家更加輕松地構建出各種預測機(predictive machines)。它可以與Apache Spark、MLlib、HBase、Elasticsearch和Spray輕松地捆綁到一起。另外,它使用獨特的模板系統來創建不同的機器學習系統,并使得開發人員可以根據自己的需要更加輕松地定制引擎。
同時,PredictionIO還可以自動評估預測引擎,以確定應該采用的各種***超參數(hyperparameters)。由于該API承擔了主要的任務,因此開發人員只需簡單地添加自定義的組合。總的說來,PredictionIO提供的功能包括:用于快速構建和部署的引擎,可自定義的模板,對于動態查詢的實時響應,通過系統性流程實現更快的機器學習建模,預構建的評估措施,以及簡單的數據基礎架構管理等。
Geneea是一種自然語言處理(Natural Language Processing)類API,它可以對所提供的原始信息進行分析。此類API可以從給定的URL中提取文本、或直接從給定文檔里對原始文本信息執行各種分析。另外,開發人員還可以通過提供諸如:既用語言和特定域等其他信息,來協助提高結果的準確性。因此,Geneea能夠對語言、矯正、變音、標記、主題檢測、名稱實體識別等主題類型進行多種分析。
IBM Watson的視覺識別(Visual Recognition)API,通過使用機器學習算法來正確地識別、分類和標記對象。同時,它還可以被用來搜索各種視覺內容,包括:辨識顏色,查找人臉,標記圖像,分辨年齡與性別,甚至可以在某個集合里查找相類似的圖像。另外,開發人員也可以通過創建和訓練自定義的分類器,來識別他們的目標對象。另一方面,IBM 視覺識別隸屬于IBM Watson Developer Cloud API套件的一部分,后者還包括:語音到文本,文本到語音,問與答,個性見解,音調分析等服務。
4. Slack API
幾年前,Slack曾是***的協同工作通訊工具之一。從那之后,它推出了自己的API,允許開發人員為其協作空間構建自定義的通信系統。開發人員可以通過該RESTful API來學習并使用Slack代碼。該API不但提供了Slack強大的自然語言處理功能,還允許開發人員構建與Slack相集成的各類應用,包括:智能聊天機器人和安排會議機器人。
5. AT&T Speech
AT&T Speech API允許開發人員將語音識別功能,集成到他們的應用程序之中。由AT&T Watson語音引擎所提供支持的這款API,還包含有自然語言處理功能,例如:自然語言的理解、語音的識別、以及語音的轉錄等。它不但可以輕松地將口語(spoken word,一種表演藝術)文件轉錄為文本,還可以通過調整API以滿足諸如:Web搜索、商業搜索、語音郵件、短信、問與答等特定的需求。
Microsoft在機器學習方面已經取得了長足進步。它提供的API允許開發人員在執行翻譯操作之前,先自動檢測文本的語言類型。同時,它也可以從您所提供的文本中解讀出一定的“話外之音”。另外,它還提供諸如:關鍵短語提取,語言檢測,情感分析,翻譯,甚至能夠識別文本中的字符實體等其他功能。
Amazon的機器學習類API可以實現許多不同的功能,其中包括:欺詐檢測,內容個性化,文檔分類和客戶流失預測等。同時,它還允許開發人員快速地培訓并部署出屬于自己的模型。不過,Amazon的API并非開源,它提供了一套按需付費的使用計劃。
8. BigML
BigML是一種機器學習類REST API,它允許開發人員輕松地為自己的應用構建和部署出AI模型。此類API能夠構建各種包含監督和無監督類機器學習的任務,以及具有機器學習管道的預測模型。BigML的亮點在于:它允許用戶使用各種標準的HTTP方法去創建、檢索、更新和刪除BigML的相關資源。
一直致力于創新的Google,在機器學習領域時常給人帶來驚喜。它擁有一整套的Cloud API,旨在簡化開發人員的各項繁瑣任務。Google的機器學習類API包括:Cloud Vision API、Cloud Speech API、Natural Language API、Translation API和Dialogflow API五種,它們的各自特點如下:
- Cloud Vision API - 包括:圖像的標注,面部、徽標和地標的檢測,光學字符的識別,以及顯式內容的檢測。
- Cloud Speech API - 包括:語音識別,對麥克風或文件的音頻轉換,80多種語言的文本轉換。
- Natural Language API - 包括:結構分析,文本含義識別,情感分析,實體識別和文本注釋。
- Translation API – 將一種語言翻譯成另一種語言。
- Dialogflow API – 一種為各種會話接口開發的完整套件,例如:聊天機器人,或語音(voice-powered)應用等。
10.Wit.ai
Wit.ai是一個開源的自然語言處理平臺,它提供向Web和移動應用添加智能的語音功能。它可以為家庭自動化、聯網汽車、智能電視、機器人、智能手機、可穿戴設備等應用提供智能化的語音接口。Wit.ai的文檔簡潔易懂,不但包括了各種代碼的示例,而且針對其適用于多種流行語言與平臺的SDK,提供了快速的入門指南,以及完整的Wit應用指南。
結論
隨著機器學習的廣泛應用,各位開發人員都需要在激烈的競爭中保持優勢,必須潛心研究并“玩轉”機器學習類的各種API。希望上述十種API能夠為您提供方向和幫助。
原文標題:10 Machine Learning APIs You Should Learn,作者:Shweta Datar
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】