凸优化及无约束最优化相关资料

很多年前,我的师兄 Jian Zhu 在这里发表过一个系列《无约束最优化》,当时我写下了一段话:

估计有些读者看到这个题目的时候会觉得很数学,和自然语言处理没什么关系,不过如果你听说过最大熵模型、条件随机场,并且知道它们在自然语言处理中被广泛应用,甚至你明白其核心的参数训练算法中有一种叫LBFGS,那么本文就是对这类用于解无约束优化算法的Quasi-Newton Method的初步介绍。

事实上,无论机器学习还是机器学习中的深度学习,数值优化算法都是核心之一,而在这方面,斯坦福大学Stephen Boyd教授等所著的《凸优化》堪称经典:Convex Optimization – Boyd and Vandenberghe ,而且该书的英文电子版在该书主页上可以直接免费下载:

http://web.stanford.edu/~boyd/cvxbook/bv_cvxbook.pdf

还附带了长达301页的Slides:

http://web.stanford.edu/~boyd/cvxbook/bv_cvxslides.pdf

以及额外的练习题、相关代码数据文件:

http://web.stanford.edu/~boyd/cvxbook/bv_cvxbook_extra_exercises.pdf
http://web.stanford.edu/~boyd/cvxbook/cvxbook_additional_exercises/

相当贴心,另外Stephen Boyd教授2014年还在斯坦福大学自家的MOOC平台上开过相关课程: CVX101

https://class.stanford.edu/courses/Engineering/CVX101

提示是:A MOOC on convex optimization, CVX101, was run from 1/21/14 to 3/14/14. If you register for it, you can access all the course materials.

不知道现在注册是否还可以访问课程材料,我当年竟然注册过这门课程,所以还能访问相关资料:

这本书也有中文翻译版,由清华大学出版社出版:

http://www.tup.tsinghua.edu.cn/bookscenter/book_03184902.html

最后提供上述相关材料的打包下载,包括凸优化课程视频、英文原版AMG88、练习题和Slides,另外也包括《无约束最优化》的PDF文档,感兴趣的同学可以关注我们的公众号AINLP,回复"youhua"下载:

注:原创文章,转载请注明出处及保留链接“我爱自然语言处理”:

本文链接地址:凸优化及无约束最优化相关资料 /?p=11222

Python自然语言处理工具NLTK学习导引及相关资料

NLTK 大概是最知名的Python自然语言处理工具了,全称"Natural Language Toolkit", 诞生于宾夕法尼亚大学,以研究和教学为目的而生,因此也特别适合入门学习。NLTK虽然主要面向英文,但是它的很多NLP模型或者模块是语言无关的,因此如果某种语言有了初步的Tokenization或者分词,NLTK的很多工具包是可以复用的。

88集团赠送38彩金NLTK,网上已经有了很多介绍资料,当然首推的NLTK学习资料依然是官方出的在线AMG88 NLTK Book:Natural Language Processing with Python – Analyzing Text with the Natural Language Toolkit ,目前基于Python 3 和 NLTK 3 ,可以在线免费阅读和学习。早期的时候还有一个基于Python 2 的老版本:http://www.nltk.org/book_1ed/ ,被 O'Reilly 正式出版过,2012年的时候,国内的陈涛同学无偿翻译过一个中文版,我还在这里推荐过:推荐《用Python进行自然语言处理》中文翻译-NLTK配套书 ,后来才有了基于此版本的更正式的中文翻译版:《Python自然语言处理》。不过如果英文ok的话,优先推荐看目前官方的最新版本:http://www.nltk.org/book/

几年前我尝试写英文博客,觉得可以从NLTK的入门介绍开始,所以写了一个英文系列:Dive into NLTK,基于Python 2,感兴趣的同学可以关注:

Part I: Getting Started with NLTK
Part II: Sentence Tokenize and Word Tokenize
Part III: Part-Of-Speech Tagging and POS Tagger
Part IV: Stemming and Lemmatization
Part V: Using Stanford Text Analysis Tools in Python
Part VI: Add Stanford Word Segmenter Interface for Python NLTK
Part VII: A Preliminary Study on Text Classification
Part VIII: Using External Maximum Entropy Modeling Libraries for Text Classification
Part IX: From Text Classification to Sentiment Analysis
Part X: Play With Word2Vec Models based on NLTK Corpus
Part XI: From Word2Vec to WordNet

这个过程中使用了NLTK中嵌入的斯坦福大学文本分析工具包,发现少了斯坦福中文分词器,所以当时动手加了一个:Python自然语言处理实践: 在NLTK中使用斯坦福中文分词器

斯坦福大学自然语言处理组是世界知名的NLP研究小组,他们提供了一系列开源的Java文本分析工具,包括分词器(Word Segmenter),词性标注工具(Part-Of-Speech Tagger),命名实体识别工具(Named Entity Recognizer),句法分析器(Parser)等,可喜的事,他们还为这些工具训练了相应的中文模型,支持中文文本处理。在使用NLTK的过程中,发现当前版本的NLTK已经提供了相应的斯坦福文本处理工具接口,包括词性标注,命名实体识别和句法分析器的接口,不过可惜的是,没有提供分词器的接口。在google无果和阅读了相应的代码后,我决定照猫画虎为NLTK写一个斯坦福中文分词器接口,这样可以方便的在Python中调用斯坦福文本处理工具。

后来,这个版本在 NLTK 3.2 官方版本中被正式引入:stanford_segmenter.py ,我也可以小自豪一下为NLTK做过一点微小的贡献:

使用NLTK来处理中文是很多同学想干的事情,这方面,在NLTK中调用斯坦福大学的中文工具包刚好是一个切入点,88集团赠送38彩金NLTK中如何使用斯坦福大学工具包进行中文信息处理,推荐两篇文章:

在 NLTK 中使用 Stanford NLP 工具包http://www.zmonster.me/2016/06/08/use-stanford-nlp-package-in-nltk.html

以及白宁超同学的系列文章:

干货!详述Python NLTK下如何使用stanford NLP工具包http://www.cnblogs.com/baiboy/p/nltk1.html

88集团赠送38彩金NLTK的AMG88,其实还有一本很不错:Python Text Processing with NLTK 2.0 Cookbook ,我之前看过这本,不过现在已经更新到Python 3了:Python 3 Text Processing with NLTK 3 Cookbook 。最后提供一个NLTK相关资料的打包下载,包括早期的中文翻译版和这个Cookbook,仅供个人学习使用,感兴趣的同学可以关注我们的公众号: AINLP, 回复'NLTK'获取相关下载链接:

注:原创文章,转载请注明出处及保留链接“我爱自然语言处理”:

本文链接地址:Python自然语言处理工具NLTK学习导引及相关资料 /?p=11190

Geoffrey Hinton 大神面向机器学习的神经网络公开课及相关视频资料

Geoffrey Hinton 大神的"面向机器学习的神经网络(Neural Networks for Machine Learning)"公开课早在2012年就在 Coursera 上开过一轮,之后一直沉寂,直到 Coursera 新课程平台上线,这门经典课程已开过多轮次,之前我们在《深度学习课程亚美游AMG88整理》隆重推荐过。

1月15日,Geoffrey Hinton 大神在twitter上宣布:

My Coursera MOOC "Neural Networks for Machine Learning" was prepared in 2012 and is now seriously out of date so I have asked them to discontinue the course. But the lectures are still a good introduction to many of the basic ideas and are available at /https://www.cs.toronto.edu/~hinton/coursera_lectures.html

大意是这门在Coursera上的MOOC课程是在2012年准备的,现在有点过时了,所以要求他们(Coursera)停止提供这门课程。但是这门深度学习课程依然是介绍神经网络相关基础概念的好资料,所以课程视频依然保留在多伦多大学hinton大神的主页下,感兴趣的同学可以直接观看:/https://www.cs.toronto.edu/~hinton/coursera_lectures.html

我试了一下Coursera,发现如果之前注册过,还能打开这门课程,但是一旦是非登录状态后,这门课程已经无法在Coursera上找到了:

https://www.coursera.org/learn/neural-networks

这样稍微有点遗憾,不能在Coursera上做相关的Quiz,感兴趣的同学可以参考课程图谱上早期88集团赠送38彩金这门课程的评论:

http://coursegraph.com/coursera_neuralnets

“宗派大师+开拓者直接讲课,秒杀一切二流子!”

“巨牛级别的人物来开课,我也不说啥了。”

“还有什么好说的呢?Deep Learning必修课程啊!”

该课程最后在Coursera上开课的时间大概在2018年11月份:

http://coursegraph.com/coursera-neural-networks

最后,如果你觉得访问多伦多Hinton教授主页那个教程页面不方便,这里提供早期从Coursera上下载的课程版本,包括视频、PPT、英文字幕等,关注AINLP公众号,回复“hinton"获取:

注:本文首发于“课程图谱博客”:http://blog.coursegraph.com

本文链接地址:Geoffrey Hinton 大神面向机器学习的神经网络公开课及相关视频资料 http://blog.coursegraph.com/?p=985

HMM学习最佳范例全文PDF文档及相关文章索引

HMM学习最佳范例系列大概翻译于10年前,是52nlp上早期访问量较高的一批文章,这里提供一个全文PDF下载,关注AINLP公众号,回复'HMM'获取网盘链接:

另外将博客上的隐马尔可夫模型相关文章做个索引,仅供参考:

HMM学习最佳范例

HMM相关文章

HMM应用

风云三尺剑,花鸟一床书---对联数据集和自动对联机器人

很多年前看到过微软的自动对联工具,写了一篇《机器翻译与微软对联》博文,赞了MSRA用统计机器翻译(SMT)的思路做自动对联系统,当时开玩笑的说:

微软研究院的这个“对联语料库”的规模是67万对,所采用的技术是他们自己的web语料库自动获取技术。开玩笑的说,如果周明老师能给我这个语料库,我也能几天之内构建一个简单的“52nlp自动对联系统”。

前段时间看到了一份对联语料:couplet-dataset

https://github.com/wb14123/couplet-dataset

这份数据包含70万条对联数据,按字切分,作者很用心的给大家准备了训练集、测试集还有词汇表;同时还开源了一个基于Tensorflow的深度学习工具来训练自动对联模型: seq2seq-couplet

https://github.com/wb14123/seq2seq-couplet

感兴趣的同学可以直接上手操作,作者甚至还提供了Demo供大家把玩,不过目前貌似需要科学上网才能访问:

https://ai.binwang.me/couplet/

对我来说,看到这份数据的第一想法就是用神经网络机器翻译(NMT)的思路来尝试自动对联系统,这里NMT开源工具可选择的范围很广,我还是选择了Marian,跑了一个简单的对联“翻译”模型,现在接入AINLP公众号聊天机器人,感兴趣的朋友可以一试。具体方法请关注AINLP公众号,然后后台和AINLP聊天机器人互动:

回复“上联 输入上联内容” ,AINLP机器人将自动回复“下联 自动对联内容”,例如:

例子1:
上联 风云三尺剑
自动回复:
下联 花鸟一床书

注意上图来自微软亚洲研究院电脑对联页面:https://duilian.msra.cn/

其他例子可参考:

88集团赠送38彩金AINLP公众号相关信息,可参考:AINLP公众号索引、关键字和其他相关亚美游AMG88

注:原创文章,转载请注明出处及保留链接“我爱自然语言处理”:

本文链接地址:风云三尺剑,花鸟一床书---对联数据集和自动对联机器人 /?p=11145

AINLP公众号索引、关键字和其他相关亚美游AMG88

前段时间,我在公众号发了一篇文章叫做《改个名,抽个奖》,正式宣告此前以 NLPJob 为主体的公众号改名为 AINLP ,同时承载 我爱自然语言处理, NLPJob课程图谱 三个网站的主题:

关注AI、NLP相关技术,关注人工智能、文本挖掘相关算法研发职位,关注MOOC和相关的公开课、在线课程;回复"文章"获取历史文章汇总;中英双语聊天机器人"无名",普通聊天请直接输入中英文,使用中英翻译机器人,请输入:#需要翻译的内容

很早之前就基于 WeRobot 和 Flask框架为这个微信后台混搭了一个“聊天机器人”,除了日常搭讪外,还负责回复用户的日常查询,所以为一些关注度比较高的文章做了关键字和索引,分散在以前的一些文章介绍里,这里再统一贴出来:

1、关注AINLP公众号,后台回复 “文章、历史消息、历史、history、存档” 任一关键字获取历史文章存档消息。

2、回复“正态分布,rickjin, 正态分布前世今生, 正态分布文章, 正太分布, 正太, 正态”任一关键字获取Rickjin正态分布前世今生系列:

正态分布系列文章索引

3、回复“nlp, 自然语言处理,学习自然语言处理,学习nlp, 如何学习nlp,如何学习自然语言处理” 任一关键字获取文章:如何学习自然语言处理

4、回复"slp" 获取:斯坦福NLPAMG88和课程网盘链接和密码

5、回复"slp3" 获取:自然语言处理综论英文版第三版及斯坦福NLP课程链接和密码

6、回复"ng" 获取:Andrew Ng老师课程相关资料链接和密码

7、回复"aic" 获取:AI Challenger 2018 文本挖掘类竞赛相关代码及解决方案汇总
博客版本持续更新,欢迎提供线索:/?p=10998

8、回复"bert" 获取:BERT相关论文、文章和代码亚美游AMG88汇总
博客版本持续更新:/?p=10870

AI Challenger 2018 简记

这两天在北京参加了 AI Challenger 2018 总决赛,这次又有点小幸运拿到了英中机器翻译决赛第5名,不过整个过程和去年的《AI Challenger 2017 奇遇记》有所不同。去年参加比赛的定位是“学”,学习NMT的相关知识和调研相关工具;今年参加比赛的定位是“用”,用熟悉的NMT工具。

与去年相比,今年的 AI Challenger 机器翻译赛道做了“优化”,首先没有了同传赛道,这个赛道去年因为有了“同传”二字吓走了一批人,其次最高奖金也降了,降到了20万,所以感觉相比于其他两个文本挖掘赛道,英中文本机器翻译赛道要冷清一些,另外一个原因可能是机器翻译的千万中英双语句对语料对机器亚美游AMG88的要求要高一些。

另外今年 AI Challenger 英中文本机器翻译大赛虽然语料还是口语领域的,但是额外增加了Document上下文语料,也是本次比赛新的命题点和关注点:
继续阅读

感知智能到认知智能中对知识的思考

知道创宇 IA实验室

尽管人工智能依靠深度学习和机器学习技术的进步取得了巨大的进展,例如,AlphaGo通过自我强化学习击败了人类顶尖的围棋选手,但人工智能在很多方面,如语言理解、视觉场景理解、决策分析等,仍然举步维艰。一个关键的问题就是,机器必须要掌握大量的知识,特别是常识知识才能实现真正类人的智能。这也说明当前随着大数据红利的消失殆尽,以深度学习为代表的感知智能水平日益接近其“天花板”,而以知识为中心的认知智能将是下一代人工智能技术的关键方向。自从谷歌收购 Freebase 在 2012 年推出知识图谱(Knowledge Graph)后,知识图谱在知识工程、专家系统、逻辑推理的人工智能技术上受到了推崇,行业巨头和创业公司都在建立与自己行业相关的行业知识图谱。

本文将结合认知心理学来谈谈知识与认知智能的一些思考,试着理清

  • 知识与数据、信息、智慧的关系;
  • 认知智能为什么依赖知识?

继续阅读

加速机器学习:从主动学习到BERT和流体标注

知道创宇IA-Lab  岳永鹏

机器学习模型代码优化是为了获得更高效(时间更少、存储更少、计算规模更大)执行的机器指令和具有更强泛化能力的模型,获得更高效执行的机器指令可以采用多核和高频的CPU计算,以及采用并行计算和向量化计算。而获得具有更强泛化能力的模型不仅仅与选择的模型有关,还与标注数据的数量和质量有关。而数据标注需要大量标注人员从事重复而枯燥的工作,这也必然会增加成本。

本文将介绍主动学习(Active Learning)以及主动学习结合Google今年发布的流体标注(Fluid Annotation)和BERT(Bidirectional Encoder Representation from Transformers)对加速机器学习有什么启示。

继续阅读

polyglot:Pipeline 多语言NLP工具

知道创宇IA-Lab 岳永鹏

目前,在NLP任务处理中,Python支持英文处理的开源包有NLTK、Scapy、StanfordCoreNLP、GATE、OPenNLP,支持中文处理的开源工具包有Jieba、ICTCLAS、THU LAC、HIT LTP,但是这些工具大部分仅对特定类型的语言提供支持。本文将介绍功能强大的支持Pipeline方式的多语言处理Python工具包:polyglot。该项目最早是由AboSamoor在2015年3月16日在GitHub上开源的项目,已经在Github收集star 1021个。

特征

  • 语言检测 Language Detection (支持196种语言)
  • 分句、分词 Tokenization (支持165种语言)
  • 实体识别 Named Entity Recognition (支持40种语言)
  • 词性标注 Part of Speech Tagging(支持16种语言)
  • 情感分析 Sentiment(支持136种语言)
  • 词嵌入 Word Embeddings(支持137种语言)
  • 翻译 Transliteration(支持69种语言)
  • 管道 Pipelines

继续阅读