2018 年 50+ 机器学习 API

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。本文是 KDnuggets 整理的 API 列表第三版,从 2017 年的列表中删除了停用的 API,并将其更新为新的 API。所有的机器学习 API 被分为新兴的几大类应用:

  • 人脸和图像识别
  • 文本分析、自然语言处理、文本情感分析
  • 语言翻译
  • 机器学习和预测

新一代人工智能顶会论文攻略

在人工智能领域,会议论文是证明研究人员学术水平的重要一环。是否存在一些「技巧」可以提高论文被大会接收的几率?人工智能是否可以帮助我们?近日,来自卡耐基梅隆大学(CMU)研究者们收集了上万篇 AI 顶级会议的接收/被拒论文,并使用机器学习工具进行分析,获得了一些有趣的结果。权威的科学会议利用同行评审来决定要将哪些论文列入其期刊或会议记录。虽然这一过程似乎对科学出版物至关重要,但其往往也饱受争议。意识到同行评审的重要影响,一些研究人员研究了这一过程中的各个方面,包括一致性、偏差、作者回应和一般评审质量 (Greaves 等,2006;Greaves 等,2011;De Silva and Vance, 2017)。例如,NIPS 2014 会议的组织者将 10% 的会议提交论文分配给两组不同的审查人员,以衡量同行评审过程的一致性,并观察到两个委员会对超过四分之一的论文接受/拒绝决定意见不一样 (Langford and Guzdial, 2015)。

尽管已经有了这些努力,但是关于同行评审的定量研究还是有限的,很大程度上是由于只有很少的人能够接触到一个学术活动的同行评审(例如期刊编辑和程序主席)。本文的目的是通过首次引入一个用于研究目的的同行评审公共数据集: PeerRead,来降低科学界研究同行评审的障碍。

同行评审是科学文献出版过程中的重要组成部分。在本研究中,我们提出了第一个可用于研究目的的科学文献同行评审公共数据集 ( PeerRead v1 ),该数据集为研究这一重要的现象提供了机会。该数据集由 1 万 4 千 700 份论文草稿,以及包括 ACL、NIPS 和 ICLR 在内的顶级学术活动对应的接受/拒稿决定组成。数据集还包括专家为论文子集撰写的 1 万零 700 份文本同行评审。我们描述了数据收集过程,并提供了在同行评审中观察到的有趣现象。我们在此基础上提出了两个新颖的 NLP 任务,并给出了简单的基线模型。在第一个任务中,我们展示了简单的模型可以预测一篇论文是否被接受,与大多数基线模型相比,误差减少了 21 %。在第二个任务中,我们预测了评审方面的数值分数,结果表明,对于诸如「原创性」和「影响」的高方差方面,简单模型可以优于平均基线。

GitHub地址项目 GitHub 地址

AI 语义技术体验

近日,Google AI 研究机构发布了一款基于人工智能的搜索引擎,该实验项目可以让普通人也能感受最新语义理解和自然语言处理技术的强大能力:它们是目前人工智能技术发展的重要方向。值得一提的是,《奇点临近》一书的作者,谷歌研究院工程总监雷·库兹韦尔也参与了这一工作。Semantic Experiences 网站上有两个示例,展示了这些新的方法如何驱动之前不可能的应用。Talk to Books 是一种探索书籍的全新方式,它从句子层面入手,而不是作者或主题层面。Semantris 是一个由机器学习提供支持的单词联想游戏,你可以在其中键入与给定提示相关联的词汇。此外,谷歌还发布了论文《Universal Sentence Encoder》,详细地介绍了这些示例所使用的模型。最后,谷歌为社区提供了一个预训练语义 TensorFlow 模块,社区可以使用自己的句子或词组编码进行实验。

另外,Google 还发布了该技术体验项目的预训练模型

百万级字符中文自然文本数据集:CTW

文字识别,一直是图像处理领域中的重要任务。近日,清华大学与腾讯共同推出了中文自然文本数据集(Chinese Text in the Wild,CTW)—— 一个超大的街景图片中文文本数据集,为训练先进的深度学习模型奠定了基础。目前,该数据集包含 ——

32,285 张图像和 1,018,402 个中文字符

规模远超此前的同类数据集。

研究人员表示,未来还将在此数据集之上推出基于业内最先进模型的评测基准。

GitHub地址项目GitHub地址

Python自然语言处理工具库(含中文处理)

自然语言处理(Natural Language Processing,简称 NLP),是研究计算机处理人类语言的一门技术。随着深度学习在图像识别、语音识别领域的大放异彩,人们对深度学习在 NLP 的价值也寄予厚望。再加上 AlphaGo 的成功,人工智能的研究和应用变得炙手可热。自然语言处理作为人工智能领域的认知智能,成为目前大家关注的焦点。NLP 研究领域包括:

  1. 句法语义分析:对于给定的句子,进行分词、词性标记、命名实体识别和链接、句法分析、语义角色识别和多义词消歧。
  2. 信息抽取:从给定文本中抽取重要的信息,比如,时间、地点、人物、事件、原因、结果、数字、日期、货币、专有名词等等。通俗说来,就是要了解谁在什么时候、什么原因、对谁、做了什么事、有什么结果。涉及到实体识别、时间抽取、因果关系抽取等关键技术。
  3. 文本挖掘(或者文本数据挖掘):包括文本聚类、分类、信息抽取、摘要、情感分析以及对挖掘的信息和知识的可视化、交互式的表达界面。目前主流的技术都是基于统计机器学习的。
  4. 机器翻译:把输入的源语言文本通过自动翻译获得另外一种语言的文本。根据输入媒介不同,可以细分为文本翻译、语音翻译、手语翻译、图形翻译等。机器翻译从最早的基于规则的方法到二十年前的基于统计的方法,再到今天的基于神经网络(编码-解码)的方法,逐渐形成了一套比较严谨的方法体系。
  5. 信息检索:对大规模的文档进行索引。可简单对文档中的词汇,赋之以不同的权重来建立索引,也可利用 1,2,3 的技术来建立更加深层的索引。在查询的时候,对输入的查询表达式比如一个检索词或者一个句子进行分析,然后在索引里面查找匹配的候选文档,再根据一个排序机制把候选文档排序,最后输出排序得分最高的文档。
  6. 问答系统: 对一个自然语言表达的问题,由问答系统给出一个精准的答案。需要对自然语言查询语句进行某种程度的语义分析,包括实体链接、关系识别,形成逻辑表达式,然后到知识库中查找可能的候选答案并通过一个排序机制找出最佳的答案。
  7. 对话系统:系统通过一系列的对话,跟用户进行聊天、回答、完成某一项任务。涉及到用户意图理解、通用聊天引擎、问答引擎、对话管理等技术。此外,为了体现上下文相关,要具备多轮对话能力。同时,为了体现个性化,要开发用户画像以及基于用户画像的个性化回复。

以上引用微软亚洲研究院首席研究员周明博士在知乎的回答

当前,用于自然语言处理(NLP)的 Python工具包括:

1.NLTK

NLTK 在使用 Python 处理自然语言的工具中处于领先的地位。它提供了超过 50 个包括如: WordNet 这种方便处理词汇资源的数据接口。同时,还有一套用于分类、标记化、词干标记、解析和语义推理的文本处理库,以及工业级 NLP 库的封装器和一个活跃的讨论论坛

统计语言学话题方面的手动编程指南加上全面的 API 文档,使得 NLTK 非常适用于语言学家、工程师、学生、教育家、研究人员以及行业用户等人群。NLTK 可以在 Windows、Mac OS X 以及 Linux 系统上使用。最好的一点是,NLTK 是一个免费、开源的社区驱动的项目。

因此,NLTK 被称为一个:

使用 Python 开发的用于统计语言学的教学和研究的有利工具,和一个自然语言处理的高效库。

2.Pattern

Pattern 拥有一系列的自然语言处理工具,比如说词性标注工具(Part-Of-Speech Tagger),N元搜索(n-gram search),情感分析(sentiment analysis),WordNet。它也支持机器学习的向量空间模型,聚类,向量机。

3.TextBlob

TextBlob 是一个处理文本数据的 Python 库。它提供了一个简单的 api 来解决一些常见的自然语言处理任务,例如词性标注、名词短语抽取、情感分析、分类、翻译等等。

4.Gensim

Gensim 是一个 Python 库,用于对大型语料库进行主题建模、文件索引、相似度检索等。它可以处理大于内存的输入数据。作者说它是:

纯文本上无监督的语义建模最健壮、高效、易用的软件。

5.PyNLPI

PyNLPI 全称是:Python 自然语言处理库(Python Natural Language Processing Library,音发作: pineapple) 是一个用于自然语言处理任务库。它集合了各种独立或松散互相关的,那些常见的、不常见的、对 NLP 任务有用的模块。PyNLPI 可以用来处理 N 元搜索,计算频率表和分布,建立语言模型。它还可以处理向优先队列这种更加复杂的数据结构,或者像 Beam 搜索这种更加复杂的算法。同时,该处理库还提供了完善的文档库

6.spaCy

spaCy 是一个商业的开源软件。结合了 Python 和 Cython 优异的 NLP 工具。是快速的,最先进的自然语言处理工具。

7.Polyglot

Polyglot 支持大规模多语言应用程序的处理。它支持 165 种语言的分词,196 中语言的辨识,40 种语言的专有名词识别,16 种语言的词性标注,136 种语言的情感分析,137 种语言的嵌入,135 种语言的形态分析,以及 69 种语言的翻译。

8.MontyLingua

MontyLingua 是一个免费的、功能强大的、端到端的英文处理工具。在 MontyLingua 输入原始英文文本 ,输出就会得到这段文本的语义解释。它适用于信息检索和提取,请求处理,问答系统。从英文文本中,它能提取出主动宾元组,形容词、名词和动词短语,人名、地名、事件,日期和时间等语义信息。

9.BLLIP Parser

BLLIP Parser(也叫做 Charniak-Johnson parser)是一个集成了生成成分分析器和最大熵排序的统计自然语言分析器。它包括命令行Python 接口。

10.Quepy

Quepy 是一个 Python 框架,提供了将自然语言问题转换成为数据库查询语言中的查询。它可以方便地自定义自然语言中不同类型的问题和数据库查询。所以,通过 Quepy,仅仅修改几行代码,就可以构建你自己的自然语言查询数据库系统。

GitHub地址项目GitHub地址

另外,上述工具大部分在处理英文自然语言上展示了良好的效果。同时,对于国内科研人员而言,自然语言处理往往需要考虑在中文应用中的差异处理。本文最后附上:复旦大学邱锡鹏教授整理并发布的中文自然语言处理工具列表,以供参考 ——

GitHub地址项目GitHub地址