标签归档:语言模型

台大这门深度学习自然语言处理课程,可能被低估了

估计很多同学的第一反映是李宏毅老师的“深度学习人类语言处理”课程,不过这次我们说的是台湾大学陈蕴侬老师的“应用深度学习”课程,这门课程我们之前在AINLP公众号上推荐过,不过主要给大家推荐的是课程视频和课件资源。前段时间,我把这门课程放在了B站上,并花了一点时间看了一下这门课程,觉得这门课程完全可以叫做“深度学习自然语言处理”,因为基本上就是讲得深度学习NLP的事情。个人觉得这门课程结构安排得相当合理,并且重点在BERT及其相关的内容和NLP任务上,对于学习深度学习自然语言处理的同学来说,完全可以和李宏毅老师深度学习人类语言处理的课程互补。

课程主页:

https://www.csie.ntu.edu.tw/~miulab/s108-adl/

B站传送门:

https://www.bilibili.com/video/BV1Mi4y1V7A1

课程视频及课件网盘链接,请关注AINLP公众号并回复"ADL2020"获取:

AINLP
继续阅读

哥伦比亚大学经典自然语言处理公开课,数学之美中盛赞的柯林斯(Michael Collins)教授授课

在我读书的时候,最早是从谷歌黑板报中吴军老师的《数学之美》里了解到 Michael Collins 教授的,在“数学之美 系列十五 繁与简 自然语言处理的几位精英”,是这样描述他的:

​柯林斯:追求完美

柯林斯从师于自然语言处理大师马库斯 (Mitch Marcus)(我们以后还会多次提到马库斯),从宾夕法利亚大学获得博士学位,现任麻省理工学院 (MIT) 副教授(别看他是副教授,他的水平在当今自然语言处理领域是数一数二的),在作博士期间,柯林斯写了一个后来以他名字命名的自然语言文法分析器 (sentence parser),可以将书面语的每一句话准确地进行文法分析。文法分析是很多自然语言应用的基础。虽然柯林斯的师兄布莱尔 (Eric Brill) 和 Ratnaparkhi 以及师弟 Eisnar 都完成了相当不错的语言文法分析器,但是柯林斯却将它做到了极致,使它在相当长一段时间内成为世界上最好的文法分析器。柯林斯成功的关键在于将文法分析的每一个细节都研究得很仔细。柯林斯用的数学模型也很漂亮,整个工作可以用完美来形容。我曾因为研究的需要,找柯林斯要过他文法分析器的源程序,他很爽快地给了我。我试图将他的程序修改一下来满足我特定应用的要求,但后来发现,他的程序细节太多以至于很难进一步优化。柯林斯的博士论文堪称是自然语言处理领域的范文。它像一本优秀的小说,把所有事情的来龙去脉介绍的清清楚楚,对于任何有一点计算机和自然语言处理知识的人,都可以轻而易举地读懂他复杂的方法。

柯林斯毕业后,在 AT&T 实验室度过了三年快乐的时光。在那里柯林斯完成了许多世界一流的研究工作诸如隐含马尔科夫模型的区别性训练方法,卷积核在自然语言处理中的应用等等。三年后,AT&T 停止了自然语言处理方面的研究,柯林斯幸运地在 MIT 找到了教职。在 MIT 的短短几年间,柯林斯多次在国际会议上获得最佳论文奖。相比其他同行,这种成就是独一无二的。柯林斯的特点就是把事情做到极致。如果说有人喜欢“繁琐哲学”,柯林斯就是一个。

继续阅读

斯坦福大学自然语言处理经典入门课程-Dan Jurafsky 和 Chris Manning 教授授课

这门课程录制于深度学习爆发前夕,授课是斯坦福教授 Dan JurafskyChristopher Manning 教授,两位都是自然语言处理领域的神牛:前者写了《Speech and Language Processing》(中文译名:自然语言处理综论),目前第三版SLP3还在更新中;后者写了《Foundations of Statistical Natural Language Processing》(中文译名:统计自然语言处理)和《Introduction to Information Retrieval》(中文译名:信息检索导论),这几本书几乎是NLPer的必读书。这门课程适合NLP入门学习,可以了解基本的自然语言处理任务和早期经典的处理方法,以及和信息检索相关的一些方法。我把这门课程整理了一下按章节放在了B站,感兴趣的同学可以关注。

斯坦福自然语言处理经典入门课程-第一讲课程介绍及第二讲正则表达式

https://www.bilibili.com/video/av95374756/

斯坦福自然语言处理经典入门课程-第三讲编辑距离

https://www.bilibili.com/video/av95620839/

斯坦福自然语言处理经典入门课程-第四讲语言模型

https://www.bilibili.com/video/av95688853/

斯坦福自然语言处理经典入门课程-第五讲拼写纠错

https://www.bilibili.com/video/av95689471/

斯坦福自然语言处理经典入门课程-第六讲文本分类

https://www.bilibili.com/video/av95944973/

斯坦福自然语言处理经典入门课程-第七讲情感分析

https://www.bilibili.com/video/av95951080/

斯坦福自然语言处理经典入门课程-第八讲生成模型判别模型最大熵模型分类器

https://www.bilibili.com/video/av95953429/

斯坦福自然语言处理经典入门课程-第九讲命名实体识别NER

https://www.bilibili.com/video/av96298777/

斯坦福自然语言处理经典入门课程-第十讲关系抽取

https://www.bilibili.com/video/av96299315/

斯坦福自然语言处理经典入门课程-第十一讲最大熵模型进阶

https://www.bilibili.com/video/av96314351/

斯坦福自然语言处理经典入门课程-第十二讲词性标注

https://www.bilibili.com/video/av96316377/

斯坦福自然语言处理经典入门课程-第十三讲句法分析

https://www.bilibili.com/video/av96675221/

斯坦福自然语言处理经典入门课程-第十四、十五讲概率句法分析

https://www.bilibili.com/video/av96675891/

斯坦福自然语言处理经典入门课程-第十六讲词法分析

https://www.bilibili.com/video/av96676532/

斯坦福自然语言处理经典入门课程-第十七讲依存句法分析

https://www.bilibili.com/video/av96676976/

斯坦福自然语言处理经典入门课程-第十八讲信息检索

https://www.bilibili.com/video/av96736911/

斯坦福自然语言处理经典入门课程-第十九讲信息检索进阶

https://www.bilibili.com/video/av96738129/

斯坦福自然语言处理经典入门课程-第二十讲语义学

https://www.bilibili.com/video/av96738928/

斯坦福自然语言处理经典入门课程-第二十一讲问答系统

https://www.bilibili.com/video/av96739766/

斯坦福自然语言处理经典入门课程-第二十二讲文本摘要二十三讲完结篇

https://www.bilibili.com/video/av96740680/

中英文维基百科语料上的Word2Vec实验

注:目前可以直接在AINLP公众号上体验腾讯词向量,公众号对话直接输入:相似词 词条

最近试了一下Word2Vec, GloVe 以及对应的python版本 gensim word2vecpython-glove,就有心在一个更大规模的语料上测试一下,自然而然维基百科的语料进入了视线。维基百科官方提供了一个很好的维基百科数据源:https://dumps.wikimedia.org,可以方便的下载多种语言多种格式的维基百科数据。此前通过gensim的玩过英文的维基百科语料并训练LSI,LDA模型来计算两个文档的相似度,所以想看看gensim有没有提供一种简便的方式来处理维基百科数据,训练word2vec模型,用于计算词语之间的语义相似度。感谢Google,在gensim的google group下,找到了一个很长的讨论帖:training word2vec on full Wikipedia ,这个帖子基本上把如何使用gensim在维基百科语料上训练word2vec模型的问题说清楚了,甚至参与讨论的gensim的作者Radim Řehůřek博士还在新的gensim版本里加了一点修正,而对于我来说,所做的工作就是做一下验证而已。虽然github上有一个wiki2vec的项目也是做得这个事,不过我更喜欢用python gensim的方式解决问题。

关于word2vec,这方面无论中英文的参考资料相当的多,英文方面既可以看官方推荐的论文,也可以看gensim作者Radim Řehůřek博士写得一些文章。而中文方面,推荐 @licstar的《Deep Learning in NLP (一)词向量和语言模型》,有道技术沙龙的《Deep Learning实战之word2vec》,@飞林沙 的《word2vec的学习思路》, falao_beiliu 的《深度学习word2vec笔记之基础篇》和《深度学习word2vec笔记之算法篇》等。
继续阅读

微软:Web N-gram Services

  微软研究院的官方网站上近期发布了一篇文章:“Microsoft Web N-gram Services",大意是邀请整个社区使用其提供的"Web N-gram services",这个服务旨在通过基于云的存储平台,推动网络搜索,自然语言处理,语音技术等相关领域,在研究现实世界的大规模网络数据时,利用该服务所提供动态数据对项目中的常规数据进行补充更新,进而有所发现和创新。 继续阅读

Beautiful Data-统计语言模型的应用三:分词8

  对于一个包含n个字符的单词来说,利用语言模型进行分词的前提是首先枚举出所有的候选切分,而segment函数中:
  candidates = ( [first] + segment( rem ) for first, rem in splits( text ) )
的作用正是如此,它包含了递归调用,因此能枚举出所有的候选切分。那么,这个函数的时间复杂度是多少呢?一个包含n个字符的字符串有2^(n-1)种不同的分词方案(在字符之间有n-1个位置,每一个位置既可以作为单词边界也可以不作为边界),因此segment函数的时间复杂度为O(2^n),难怪之前的测试当字符串比较长时就跑不出结果了! 继续阅读

安装Srilm的一点新变化

  读者Fanlc昨天在《Ubuntu 64位系统下SRILM的配置详解》下留言:“为什么我下载到的1.5.10版本,没有test文件夹呢?编译之后也没有……这怎么测试”。我手头没有Srilm的1.5.10版本,于是下载了一个看看,发现主目录下的确没有test文件夹,对比了一下1.5.9版本的Srilm目录,发现这是一点新变化。 继续阅读

Beautiful Data-统计语言模型的应用三:分词5

  上一节我们已经解读了Pdist类中的__init__函数,这一节重点关注一下Python类中的__call__函数。首先简单的回顾一下上一节提到的一段话:缺省的情况,对于未知的单词,其概率均为1/N,但是对于每一个实例,Pdist均提供一个函数重载这个缺省值。为了避免过长 的单词拥有过高的概率,我们从概率10/N出发,对于候选单词的每一个字母都除以10。 继续阅读