十种值得掌握的机器学习类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应用指南。
结论