NLP最新科研福利!MSRA开源学术界最全面语义分析数据集

微软亚洲研究院(MSRA),刚刚送出最新一批 AI 资源和福利。

在“中国高校人工智能人才国际培养计划” 2019 国际人工智能专家论坛暨 2019 微软新一代人工智能开放科研教育平台合作论坛,MSRA 面向高校提供最新的人工智能技术、工具、科研成果,以及数据集。

新增业界最全面的语义分析数据集

在新一代人工智能开放科研教育平台的合作框架下,微软开放了自身人工智能领域的数据集供合作高校在科研和教育工作上进行引用,如微软机器阅读理解(MS MARCO)、微软研究院社交媒体对话语料库、18K 数学文字题测试集 SigmaDolphin 等。

高校也通过平台贡献了各自在多个领域的数据集,如中国科学技术大学类脑实验室的海量类脑数据等。

2019 年,微软亚洲研究院正式发布自然语言处理(NLP)领域全新的语义分析数据集 MSParS (Multi-perspective Semantic ParSing Dataset)。

作为智能音箱、搜索引擎、自动问答和对话系统等人工智能产品中的核心技术,语义分析(Semantic Parsing)面临着因人工标注代价高昂而导致的数据缺乏问题,目前已有的语义分析数据集在数据规模和问题类型覆盖度上非常有限。

为此,微软亚洲研究院提出并构建了 MSParS,该数据集(1.0版本)包含 81,826 个自然语言问题及其对应的结构化语义表示,覆盖 12 种不同的问题类型和 2,071 个知识图谱谓词,是学术界目前最全面的语义分析数据集。未来,微软将与各高校一起开放、共享更多数据,促进产教融合合作生态的建设。

MSParS 数据集:

https://github.com/msra-nlc/MSParS

 

大规模中文自然语言处理语料

中文的信息无处不在,但如果想要获得大量的中文语料,却是不太容易,有时甚至非常困难。在 2019 年初这个时点上 —— 普通的从业者、研究人员或学生,并没有一个比较好的渠道获得极大量的中文语料。笔者想要训练一个中文的词向量,在百度和 Github 上上搜索了好久,收获却很少:要么语料的量级太小,要么数据过于成旧,或需要的处理太复杂。

为此,徐亮创建了一个中文自然语言处理语料库项目:nlp_chinese_corpus ,初步贡献了几个已经预处理好的中文语料,包括维基、新闻和百科语料。包括 ——

  1. 维基百科(wiki2019zh),100万个结构良好的中文词条;
  2. 新闻语料(news2016zh),250万篇新闻,含关键词、描述;
  3. 百科问答(baike2018qa),150万个带问题类型的问答;
  4. 社区问答json版(webtext2019zh),410万个高质量社区问答,适合训练超大模型;
  5. 翻译语料(translation2019zh),520万个中英文句子对;

GitHub地址项目 GitHub 地址

中文 NLP 词库

最近,在 GitHub 上,有人收罗了一份资源,汇集了 40 个关于中文 NLP 词库,涵盖了各个方面。中英文敏感词、语言检测、中外手机/电话归属地/运营商查询、名字推断性别、手机号抽取、身份证抽取、邮箱抽取、中日文人名库、中文缩写库、拆字词典、词汇情感值、停用词、反动词表、暴恐词表、繁简体转换、英文模拟中文发音、汪峰歌词生成器、职业名称词库、同义词库、反义词库、否定词库、汽车品牌 & 零件词库、时间抽取、连续英文切割、中文词向量大全、公司名字大全、古诗词库、IT词库、财经词库、成语词库、地名词库、历史名人词库、诗词词库、医学词库、饮食词库、法律词库、汽车词库、动物词库、中文聊天语料、中文谣言数据。

在应用这些语料库同时,你或者还需要 pyHanLPJieBa 等中文分词组件支持。

GitHub地址项目 GitHub 地址

NLP 科研编程指南

最近 AllenNLPEMNLP 2018 上做了一个主题分享,名为「NLP 科研编程指南」(Writing Code for NLP Research)。该演讲从写原型和写模块两方面介绍了 NLP 研究该如何复制别人的代码、测试自己的代码块、记录及分享研究等,总之在研究者也要高效码代码的年代,这是一份浓缩的实践经验。

这份内容干货满满,仅仅只是看了 PPT 就知道是非常有意思的一次演讲了。PPT 共有 254 页之多,在「赤乐君」知乎专栏分享。深度学习与新一代人工智能科研人员可以直接下载 PPT 了解详细内容,其中每一页 PPT 都带有简要的备注,根据这些备注可以将所有 PPT 以及整场演讲串联起来。

平行语料库数据集

与大部分机器学习模型一样,有效的机器翻译系统需要大量的训练数据才能产生可读性强的结果。平行文本翻译语料库是两种语言之间的结构化翻译文本集。此类平行语料库对训练机器翻译算法至关重要。但从哪里可以获得这些外语数据集呢?

机器之心整理了一份完整的名单:《囊括欧亚非大陆多种语言的 25 个平行语料库数据集

Google 开源全面超越人类的最强 NLP 预训练模型:BERT

近日,谷歌 AI 的一篇 NLP 论文引起了社区极大的关注与讨论,被认为是 NLP 领域的极大突破。谷歌大脑研究科学家 Thang Luong Twitter 表示,这项研究开启了 NLP 领域的新时代。该论文介绍了一种新的语言表征模型 BERT —— 来自 Transformer 的双向编码器表征。BERT 是首个在大批句子层面和 token 层面任务中取得当前最优性能的基于微调的表征模型,其性能超越许多使用任务特定架构的系统,刷新了 11 项 NLP 任务的当前最优性能记录。

刚刚,谷歌正式将其开源!这意味着所有 NLP 从业者都可以试用这个强大的 NLP 预训练模型并结合到自己的工作中。

GitHub地址项目 GitHub 地址

Tencent AI Lab 开源大规模 NLP 数据集

10 月19 日,Tencent AI Lab 宣布开源大规模、高质量的中文词向量数据。该数据集包含 800 多万中文词汇。Tencent AI Lab 表示,相比现有的公开数据,该数据在覆盖率、新鲜度及准确性上大幅提高,为对话回复质量预测和医疗实体识别等自然语言处理方向的业务应用带来显著的效能提升。

Tencent AI Lab 此次公开的中文词向量数据包含 800 多万中文词汇,其中每个词对应一个 200 维的向量。相比现有的中文词向量数据,Tencent AI Lab 的中文词向量着重提升了以下 3 个方面:

  • 覆盖率(Coverage):该词向量数据包含很多现有公开的词向量数据所欠缺的短语,比如『不念僧面念佛面』、『冰火两重天』、『煮酒论英雄』、『皇帝菜』、『喀拉喀什河』等。
  • 新鲜度(Freshness):该数据包含一些最近一两年出现的新词,如『恋与制作人』、『三生三世十里桃花』、『打call”、『十动然拒』、『供给侧改革』、『因吹斯汀』等。
  • 准确性(Accuracy):由于采用了更大规模的训练数据和更好的训练算法,所生成的词向量能够更好地表达词之间的语义关系。
Tencent AI Lab Embedding Corpus for Chinese Words and Phrases
Tencent AI Lab Embedding Corpus for Chinese Words and Phrases

Twitter 情感分析项目

Twitter sentiment analysis with Python
Twitter sentiment analysis with Python

本文为 Python 实战之 Twitter 情感分析项目系列,原作者为 Ricky Kim,全文共分 11 个子项目:

  1. 数据准备
  2. 数据清洗
  3. 数据可视化探索
  4. 构建分类模型
  5. 分类模型对比
  6. Doc2Vec 框架
  7. Doc2Vec 短语建模
  8. 降维
  9. 神经网络分析应用(Keras)
  10. 神经网络分析应用(Doc2Vec / Word2Vec / GloVe)
  11. 神经网络分析应用(CNN + Word2Vec)

GitHub地址项目 GitHub 地址

自然语言处理 (NLP) 库对比

本文概述和比较当前六大常用自然语言处理库 ——

NLTK、spaCy、scikit-learn、gensim、Pattern、polyglot。

现在自然语言处理NLP变得越来越流行,这在深度学习发展的背景下尤其引人注目。NLP 是人工智能的一个分支,旨在从文本中理解和提取重要信息,进而基于文本数据进行训练。NLP 的主要任务包括语音识别和生成、文本分析、情感分析、机器翻译等。

近几十年,只有适当受过语言学教育的专家才能从事自然语言处理方向的工作。除了数学和机器学习,他们还应该熟悉一些重要的语言概念。但是现在,我们可以使用写好的 NLP 库。它们的主要目的是简化文本预处理过程,这样我们可以专注于构建机器学习模型和超参数调整。

人们设计了很多工具和库来解决 NLP 问题。今天,我们想基于自身经验,概述和比较最流行、最有用的自然语言处理库。kdnuggets 近日发文介绍了所有库只有部分任务会重合。因此,有时候很难直接将它们进行对比。该文介绍了一些特征,然后对比这些库。详情查看:对比图片

  • NLTK(自然语言工具包)用于分词、词形还原、词干提取、解析、句法分析、词性标注等任务。该库具备可用于几乎所有 NLP 任务的工具。
  • spaCy 是 NLTK 的主要竞争者。这两个库可用于同样的任务。
  • scikit-learn 提供一个用于机器学习的大型库,包含用于文本预处理的工具。
  • gensim 是用于话题空间建模、向量空间建模和文档相似度的工具包。
  • Pattern 库是作为 web 挖掘模块提供服务的,因此,它也支持 NLP 任务。
  • polyglot 是另一个用于 NLP 的 Python 包。它不是很流行,但也可以用于大量 NLP 任务。

本文对比了几个流行的 NLP 库的特征。尽管大部分库适用的任务有重合,但一些库需要用独特的方法来解决特定的问题。确切来说,现在最流行的 NLP 包是 NLTK 和 spaCy。它们是 NLP 领域中的主要竞争者。我们认为,二者之间的差别在于解决问题的一般哲学。

NLTK 更加学术。你可以用它尝试不同的方法和算法,结合使用等等。spaCy 为每个问题提供一个开箱即用的解决方案。你不用思考哪种方法更好:spaCy 的作者已经替你考虑了。此外,spaCy 速度很快(是 NLTK 的好几倍)。它的一个缺陷在于支持的语言种类有限。但是,它所支持的语言数量在持续增加。因此,我们认为 spaCy 在大部分情况下是最优选,但是如果你想尝试一些特别的任务,可以使用 NLTK。

自然语言处理最新教材开放下载

乔治亚理工大学 Jacob Eisenstein 教授开放了自然语言处理领域的最新教材《Natural Language Processing》,该教材 2018 年 6 月第一版的 PDF 已经在 GitHub 上开放下载。这本书的内容主要分为四大章节,即 NLP 中监督与无监等学习问题、序列与解析树等自然语言的建模方式、语篇语义的理解,以及后这些技术最在信息抽取、机器翻译和文本生成等具体任务中的应用。

Eisenstein 将这一本非常完善的教材称之为「Notes」,它是在乔治亚理工大学学习自然语言处理相关领域所需要了解的基础。例如在介绍自然语言处理理论与方法的课程 CS4650/7650 中,这本开放书籍就作为标准的课程教材。

CS4650/7650 2018 春季课程需要阅读 GitHub 目录下 eisenstein-nlp-notes-jan-10-2018.pdf 文件,而另外一个文件 eisenstein-nlp-notes.pdf 会包含一些章节上的更新,不过它会在整个学期内进行。Eisenstein 表示这本开放书籍也可以用于其它研究或课程,书籍上的任何误差或反馈都能直接发邮件给作者。

自然语言处理是令计算机能访问人类语言的一组方法。在过去的十年中,自然语言处理已经深入了我们的日常生活:自动机器翻译在网站和社交媒体中已经无处不在、文本分类确保了电子邮箱在海量垃圾邮件中屹立不倒、搜索引擎已经不再只是字符匹配与网络分析,它已经能理解高维度的复杂语言,还有近来对话系统的兴起也令信息的分享与交互更高效。

这些强大的应用其实都基于一套通用的思想,即利用算法、语言规则、逻辑和统计知识理解自然语言。这本书的目的是提供这些思想与技术的基础,并应用于各种实际的任务中。此外,这本书除了详细的概念与算法,同时还包括一些高阶主题,读者可按需求学习与阅读。

此前,机器之心网站做了详细的课程介绍

GitHub地址项目 GitHub 地址

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地址