标签归档:自然语言处理

完结撒花!李宏毅老师深度学习与人类语言处理课程视频及课件(附下载)

李宏毅老师2020新课 深度学习与人类语言处理课程 昨天(7月10日)终于完结了,这门课程里语音和文本的内容各占一半,主要关注近3年的相关技术,自然语言处理部分重点讲述BERT及之后的预处理模型(BERT和它的朋友们),以及相关的NLP任务,包括文本风格迁移、问答系统、聊天机器人以及最新的GPT3解读等,是难得的深度学习NLP最新学习材料。当然最重要是这是一门中文课程,李宏毅老师的课程质量又极高,再次认真的推荐给各位NLPer:

课程主页:http://speech.ee.ntu.edu.tw/~tlkagk/courses_DLHLP20.html

B站传送门:https://www.bilibili.com/video/BV1RE411g7rQ

如果需要该课程视频和课件,可以关注AINLP公众号后台回复“DLHLP”获取课程视频和相关课件网盘链接,另外我们建立了一个李宏毅老师课程的学习交流群,感兴趣的同学可以添加微信AINLPer(id: ainlper) ,备注“B站李宏毅”进群一起交流学习。

继续阅读

一键收藏自然语言处理学习资源大礼包

虽然知道大多数同学都有资料收藏癖,还是给大家准备一份自然语言处理学习大礼包,其实是之前陆陆续续分享的NLP学习资源,包括自然语言处理、深度学习、机器学习、数学相关的经典课程、书籍和学习笔记,这些资料基本上都是公开渠道可以获得的,整理到一起,方便NLP爱好者收藏把玩。当然,学习的前提依然是”学自然语言处理,其实更应该学好英语“

获取方法很简单,关注AINLP公众号,后台回复关键词:ALL4NLP,一键打包收藏NLP学习资源: 继续阅读

学自然语言处理,其实更应该学好英语

关于如何学习自然语言处理,如何入门NLP,无论在博客、微博还是AINLP公众号以及技术交流群里,遇到过一些同学提这个问题,之前开玩笑的建议过:学好英语、打好数学和计算机科学的基础,然后再了解一点语言学,这个问题就简单了。今天,刚好看到一条微博,关于“为什么要学习英语”: 继续阅读

斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用

众所周知,斯坦福大学自然语言处理组出品了一系列NLP工具包,但是大多数都是用Java写得,对于Python用户不是很友好。几年前我曾基于斯坦福Java工具包和NLTK写过一个简单的中文分词接口:Python自然语言处理实践: 在NLTK中使用斯坦福中文分词器,不过用起来也不是很方便。深度学习自然语言处理时代,斯坦福大学自然语言处理组开发了一个纯Python版本的深度学习NLP工具包:Stanza - A Python NLP Library for Many Human Languages,前段时间,Stanza v1.0.0 版本正式发布,算是一个里程碑: 继续阅读

AINLP公众号增加"狗屁不通文章生成器"

最近比较火的一个Github项目是:狗屁不通文章生成器(https://github.com/menzi11/BullshitGenerator),虽然和自然语言生成有点关系,但是代码其实和自然语言处理基本无关,或者说作者用了一点trick和规则,不过项目本身还是很有意思的:

BullshitGenerator

本项目为python3版本, 还有由suulnnka修改在线版, 使用更加方便: https://suulnnka.github.io/BullshitGenerator/index.html

下一步计划:

防止文章过于内容重复
加入更多啰嗦话.
加入马三立<开会迷>里的内容
加入手写体直接渲染出图片的功能(仅仅用于测试本人的打印机是否工作正常, 请勿做它用).
关于Pull requests:
鄙人每个requests都会仔细阅读, 但因近期事情较多, merge未必及时, 毕竟是业余项目, 请大家见谅. 如果未来实在更新不及时, 也欢迎有志之士替代本人继续本项目.

关于中文变量名:
平时撸码鄙人是不写中文变量名的, 本项目中的中文变量名只是最开始瞎写的时候边写语料边写代码时懒得切英文输入法了. 不过既然如此就保持吧!

关于生成算法
鄙人才疏学浅并不会任何自然语言处理相关算法. 而且目前比较偏爱简单有效的方式达到目的方式. 除非撞到了天花板, 否则暂时不会引入任何神经网络等算法. 不过欢迎任何人另开分支实现更复杂, 效果更好的算法. 不过除非效果拔群, 否则鄙人暂时不会融合.

这套代码不复杂,我把这套“狗屁不通文章生成器”对接到AINLP公众号后台了,做了一点修改,并且将生成字数限制在500字了,方便微信查看,感兴趣的同学可以关注AINLP,对话回复“狗屁不通文章:主题句”:

例如我输入“狗屁不通文章:自然语言处理”,生成了这样一段废话:

吉姆·罗恩在不经意间这样说过,要么你主宰生活,要么你被生活主宰。这句话把我们带到了一个新的维度去思考这个问题: 不难发现,在当今社会中,越来越多的人开始自然语言处理。自然语言处理,发生了会如何,不发生又会如何。我们都知道,只要有意义,那么就必须慎重考虑。了解清楚自然语言处理到底是一种怎么样的存在,是解决一切问题的关键。自然语言处理的发生,到底需要如何做到,不自然语言处理的发生,又会如何产生。德国曾经说过,只有在人群中间,才能认识自己。我希望诸位也能好好地体会这句话。 那么,总结地来说,这种事实对本人来说意义重大,相信对这个世界也是有一定意义的。我强烈建议自然语言处理,对我个人而言,自然语言处理不仅仅是一个重大的事件,还可能会改变我的人生。自然语言处理的发生,到底需要如何做到,不自然语言处理的发生,又会如何产生。我强烈建议自然语言处理,我们一般认为,抓住了问题的关键,其他一切就会迎刃而解。问题的关键究竟为何?这种事实对本人来说意义重大,相信对这个世界也是有一定意义的。要想清楚,自然语言处理,到底是一种怎么样的存在。马克思曾经说过,一切节省,归根到底都归结为时间的节省。这句话语虽然很短,但令我浮想联翩。 屠格涅夫曾经提到过,凡事只要看得淡些,就没有什么可忧虑的了;只要不因愤怒而夸大事态,就没有什么事情值得生气的了。我希望诸位也能好好地体会这句话。

微信公众号对话是这样的:

注:原创文章,转载请注明出处及保留链接“我爱自然语言处理”:https://www.52nlp.cn

本文链接地址:AINLP公众号增加"狗屁不通文章生成器" https://www.52nlp.cn/?p=12405

斯坦福大学深度学习与自然语言处理第四讲:词窗口分类和神经网络

斯坦福大学在三月份开设了一门“深度学习与自然语言处理”的课程:CS224d: Deep Learning for Natural Language Processing,授课老师是青年才俊 Richard Socher,以下为相关的课程笔记。

第四讲:词窗口分类和神经网络(Word Window Classification and Neural Networks)

推荐阅读材料:

  1. [UFLDL tutorial]
  2. [Learning Representations by Backpropogating Errors]
  3. 第四讲Slides [slides]
  4. 第四讲视频 [video]

以下是第四讲的相关笔记,主要参考自课程的slides,视频和其他相关资料。
继续阅读

斯坦福大学深度学习与自然语言处理第三讲:高级的词向量表示

斯坦福大学在三月份开设了一门“深度学习与自然语言处理”的课程:CS224d: Deep Learning for Natural Language Processing,授课老师是青年才俊 Richard Socher,以下为相关的课程笔记。

第三讲:高级的词向量表示(Advanced word vector representations: language models, softmax, single layer networks)

推荐阅读材料:

  1. Paper1:[GloVe: Global Vectors for Word Representation]
  2. Paper2:[Improving Word Representations via Global Context and Multiple Word Prototypes]
  3. Notes:[Lecture Notes 2]
  4. 第三讲Slides [slides]
  5. 第三讲视频 [video]

以下是第三讲的相关笔记,主要参考自课程的slides,视频和其他相关资料。
继续阅读

斯坦福大学深度学习与自然语言处理第二讲:词向量

斯坦福大学在三月份开设了一门“深度学习与自然语言处理”的课程:CS224d: Deep Learning for Natural Language Processing,授课老师是青年才俊 Richard Socher,以下为相关的课程笔记。

第二讲:简单的词向量表示:word2vec, Glove(Simple Word Vector representations: word2vec, GloVe)

推荐阅读材料:

  1. Paper1:[Distributed Representations of Words and Phrases and their Compositionality]]
  2. Paper2:[Efficient Estimation of Word Representations in Vector Space]
  3. 第二讲Slides [slides]
  4. 第二讲视频 [video]

以下是第二讲的相关笔记,主要参考自课程的slides,视频和其他相关资料。
继续阅读

斯坦福大学深度学习与自然语言处理第一讲:引言

斯坦福大学在三月份开设了一门“深度学习与自然语言处理”的课程:CS224d: Deep Learning for Natural Language Processing,授课老师是青年才俊 Richard Socher,他本人是德国人,大学期间涉足自然语言处理,在德国读研时又专攻计算机视觉,之后在斯坦福大学攻读博士学位,拜师NLP领域的巨牛 Chris ManningDeep Learning 领域的巨牛 Andrew Ng,其博士论文是《Recursive Deep Learning for Natural Language Processing and Computer Vision》,也算是多年求学生涯的完美一击。毕业后以联合创始人及CTO的身份创办了MetaMind,作为AI领域的新星创业公司,MetaMind创办之初就拿了800万美元的风投,值得关注。

回到这们课程CS224d,其实可以翻译为“面向自然语言处理的深度学习(Deep Learning for Natural Language Processing)”,这门课程是面向斯坦福学生的校内课程,不过课程的相关材料都放到了网上,包括课程视频,课件,相关知识,预备知识,作业等等,相当齐备。课程大纲相当有章法和深度,从基础讲起,再讲到深度学习在NLP领域的具体应用,包括命名实体识别,机器翻译,句法分析器,情感分析等。Richard Socher此前在ACL 2012和NAACL 2013 做过一个Tutorial,Deep Learning for NLP (without Magic),感兴趣的同学可以先参考一下: Deep Learning for NLP (without Magic) - ACL 2012 Tutorial - 相关视频及课件 。另外,由于这门课程的视频放在Youtube上,@爱可可-爱生活 老师维护了一个网盘链接:http://pan.baidu.com/s/1pJyrXaF ,同步更新相关资料,可以关注。
继续阅读

立委科普:从产业角度说说NLP这个行当

“NLP is not magic, but the results you can get sometimes seem almost magical.”

这篇文章是前几天在科学网李维老师的博客上看到的,写得很棒,没有在NLP产业摸爬滚打几十年,是写不出的,这里全文转载,原文见科学网博客, 以下转载自李维老师的博文:立委科普:从产业角度说说NLP这个行当

前面一篇博文的本意,是想借题发挥,从工业运用的角度说说 NLP(Natural Language Processing:自然语言处理)这个行当。不好意思,我算是这个行当在工业界的老古董了(学界不算,学界有的是NLP师爷和大牛)。跟我同期学习这行的同门学长们有小20位,由于这个行当不能在工业界形成规模,他们无一例外都在不同时期改行了,我几乎是幸存在工业界的仅有的化石级元老,赶上了工业应用的末班车。我运气比较好,1986年硕士毕业不久就兼职中关村搞机器翻译的开发,1997年博士快结束又赶上了dot康泡沫的美国大跃进,技术资金源源不断。就是在泡沫破灭后的萧条年代,我也一直对这一行抱有信心,但是从来没有像现在这样信心满满。我的预计,今后20年是 NLP 大显神威的时机,NLP 技术支撑的包括搜索在内的各类信息系统是真正的朝阳产业。(卖瓜的说瓜甜,据说连饶教授这样的大牛都不免。所以读者诸君为免在下误导,可在此打个折扣。)

NLP 技术的工业可行性我认为已经完全被证明了(很多人也许还没有意识到)。证明的实例表现在我们解决了三个信息搜索的难题:1 是解决了搜索 how 的难题;2 是解决了搜索 why 的难题;3 是解决了对客户反馈情报及其动机的抽提(譬如客户对一个产品的好恶)。前两个问题是问答搜索业界公认的最难类型的题目,第三个题目涉及的是语言现象中较难把握的主观性言语(subjective language),并非NLP通常面对的对象(objective language,事实描述的客观性言语),因此成为语言处理最难的课题之一(叫 sentiment extraction)。从问答系统角度来看,回答who/when/where等实体(entity)事实(factoid)的问题比较简单,技术相对成熟,最突出的表现就是IBM的问答系统赢得美国家喻户晓的电视智力竞赛Jeopardy的冠军,电脑打败了人脑,见 COMPUTER CRUSHES HUMAN 'JEOPARDY!' CHAMPS)。这是因为 JEOPARDY! 的大多数问题是属于实体事实类的问题。具体细节就不谈了,以后有机会再论。总之,这三大公认的难题在过去五年中被我们一个一个解决,标志了作为实用技术的 NLP 已经过了需要证明自己的阶段。

很长一段时间,我们在学界测量一个系统,使用的是两个指标:1 查准率(precision:准确性, 即抓到的有多大比例是抓对了的);2 查全率(recall:覆盖面,即所有该抓到的有多大比例真地抓到了)。Precision 和 recall 的定义如下:

Precision 查准率 = correct 查对数 / (correct 查对数 + spurious 查错数)
Recall 查全率 = correct 查对数 / (correct 查对数 + missing 查漏数)

由于自然语言的歧义(和诡异),要想编制一套两项指标综合水平(术语叫 F-score)都很高的系统非常不容易。这跟打假也差不多,宁肯错杀一千,也不放过一个的蒋中正野蛮政策保证的是查全率;而宁肯放过一千,也不错杀一个的西方文明世界的准则保证的是查准率。要想兼顾二者,做到打得准也打得全,那是很难的。于是我们挖煤工人有时不得不叹气,面对汪洋大海的语言自觉渺小,吾生也有涯,口水没有涯,殆矣,觉得没什么指望了,疑惑红旗到底可以打得多久?

但是,事实是,自然语言系统能否实用,很多时候并不是决定于上述两个学界公认的指标。在信息爆炸的时代,在面对海量数据的时候,还有一个更重要的指标决定着一个系统在现实世界的成败。这个指标就是系统的吞吐量(through-put),系统可以不可以真正地 scale-up。由于电脑业的飞速发展,硬件成本的下降,由于并行分布式运算技术的成熟,吞吐量在现实中的瓶颈主要是经济上的羁绊,而不是技术意义上的难关。运行一个 farm 的 servers,只要有财力维护,能耐的工程师完全可以做到。其结果是革命性的。这种革命性成功的最突出的表现就是 Google 和 Facebook 等公司的做大。

在处理海量数据的问题解决以后,查准率和查全率变得相对不重要了。换句话说,即便不是最优秀的系统,只有平平的查准率(譬如70%,抓100个,只有70个抓对了),平平的查全率(譬如50%,两个只能抓到一个),只要可以scale up,一样可以做出优秀的实用系统来,创造应用程式的奇迹。为什么?根本原因在于两个因素:一是爆炸时代的信息冗余度;二是人类信息消化的有限度。查全率的不足可以用增加所处理的数据量来弥补,这一点比较好理解。既然有价值的信息,有统计意义的信息,不可能是“孤本”,它一定是被许多人以许多不同的说法重复着,那么查全率不高的系统总会抓住它也就没有疑问了。从信息消费者的角度,一个信息被抓住一万次,与被抓住一千次,是没有区别的,信息还是那个信息,只要准确就成。问题是一个查准率不理想的系统怎么可以取信于用户呢?如果是70%的系统,100条抓到的信息就有30条是错的,这岂不是鱼龙混杂,让人无法辨别,这样的系统还有什么价值?沿着这个思路,别说70%,就是高达90%的系统也还是错误随处可见。这样的视点忽略了实际系统中的信息筛选(sampling)与整合(fusion)的环节,因此夸大了系统的个案错误对最终结果的负面影响。实际上,典型的情景是,面对海量信息源,信息搜索者的几乎任何请求,都会有数不清的潜在答案。由于信息消费者是人,不是神,吃的是五谷杂粮,用的是一目最多十行的双眼,靠的是总比电脑慢三万拍的人脑,即便有一个完美无误的理想系统能够把所有结果,不分巨细都提供给他,他也无福消受,simply overwhelmed,就好比再超人的皇帝也无法应对360后宫720殿一样。因此,一个实用系统必须要做筛选整合,把统计上最有意义的结果呈现出来。这个筛选整合的过程可以保证最终结果的质量远远高于系统的个案质量。

总之,size matters,多了就不一样了。那天跟镜子提到这个在黑暗与半明半暗中摸索了几十年悟出来的体会,镜兄气定神闲地说:“那自然,大数定理决定的”。好像一切都在他的预料之中!!

信息的关键载体之一是语言。只要有语言,就需要NLP,你说说NLP该不该有光明的前景?

Quote:
NLP is not magic, but the results you can get sometimes seem almost magical.
(“NLP 不是魔术,但是,其结果有时几乎就是魔术一般神奇。”)

引自:http://www.confidencenow.com/nlp-seduction.htm

相关博文:【据说,神奇的NLP可以增强你的性吸引力,增加你的信心和幽会成功率】
http://bbs.sciencenet.cn/home.php?mod=space&uid=362400&do=blog&id=434774