标签归档:自然语言处理

《自然语言处理综论(Speech and Language Processing)》第三版终于在2020年年底更新了

自然语言处理领域的圣经《自然语言处理综论(Speech and Language Processing)》第三版(简称SLP3)备受瞩目,该书的正式出版日期一再推迟,不过该书作者NLP领域的大神 Daniel Jurafsky 教授和 James H. Martin 教授一直在该书官网上更新着相关章节的电子版,终于在2020年即将结束的前两天,两位教授发布了一个更新了若干章节的完整草稿版本(2020.12.30 version),而此前的版本大概是2019年10月版,估计这应该是正式出版前的最后一个完整电子草稿版了。

之前写过一篇《如何学习自然语言处理:一本书和一门课》,介绍了NLP领域经典书籍《自然语言处理综论(Speech and Language Processing)》第三版的相关情况,作为我的NLP入门书籍,十多年前我读过这本书的第一版中文翻译版,第二版英文版,进入深度学习自然语言处理时代,第三版英文版的更新迟迟未完结,也可能与目前NLP领域“日新月异”的发展有关,不过基础的东西不会过时,打好基础才是王道。

这个版本的更新官方说明如下:

  • new version of Chapter 8 (bringing together POS and NER in one chapter),
  • new version of Chapter 9 (with Transformers)
  • Chapter 11 (MT)
  • neural span parsing and CCG parsing moved into Chapter 13 (Constituency Parsing) and Statistical Constituency Parsing moved to Appendix C
  • new version of Chapter 23 (QA modernized)
  • Chapter 26 (ASR + TTS)
  • Plus a modernizing pass (and typo fixing, thanks to all of you!!!) on all the other chapters.

与之前的版本相比,这个版本新增了第8章(将词性标注和命名实体识别合并为一个章节),第9章(Transformer模型相关),第11章(机器翻译),第23章(对话技术),第26章(语音识别和语音合成),调整了句法分析中的部分内容到相应的章节和附录,以及修复了相关章节中错误内容。不过从全局来看,这本书剩下的章节已经不多了,预计2021年可以出版:

关于作者,两位都是NLP领域的神牛,以下是第二版中文翻译版中详细的介绍:

Daniel Jurafsky现任斯坦福大学语言学系和计算机科学系副教授。在此之前,他曾在博尔德的科罗拉多大学语言学系、计算机科学系和认知科学研究所任职。他出生于纽约州的Yonkers,1983年获语言学学士,1992年获计算机科学博士,两个学位都在伯克利加利福尼亚大学获得。他于1998年获得美国国家基金会CAREER奖,2002年获得Mac-Arthur奖。他发表过90多篇论文,内容涉及语音和语音处理的广泛领域。

James H. Martin现任博尔德的科罗拉多大学语言学系、计算机科学系教授,认知科学研究所研究员。他出生于纽约市,1981年获可伦比亚大学计算机科学学士,1988年获伯克利加利福尼亚大学计算机科学博士。他写过70多篇关于计算机科学的论著,出版过《隐喻解释的计算机模型》(A Computational Model of Metaphor Interpretation)一书。

最后是如何下载这个电子版,其实官网上已经提供了相关的下载链接:https://web.stanford.edu/~jurafsky/slp3/ ,包括最新的完整草稿电子版和相关章节电子版,以及对应的Slides。如果下载速度较慢或者希望保存到网盘上,可以关注我们的公众号:"AINLP" , 回复 "slp3" 获取该书电子版以及 Daniel Jurafsky 教授之前在Coursera上开播的斯坦福大学自然语言处理课程相关资料视频(目前已绝版),一并学习自然语言处理。

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

本文链接地址:https://www.52nlp.cn/?p=12985

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

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

课程主页:

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

B站传送门:

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

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

AINLP
继续阅读

相似词检索,近义词查询,同义词大全,这里不仅仅可查中文

大概一年前,我在AINLP的公众号对话接口里基于腾讯800万大的词向量配置了一个相似词查询的接口:

腾讯词向量和相似词、相似度、词语游戏系列
相似词查询:玩转腾讯 AI Lab 中文词向量
玩转腾讯词向量:词语相似度计算和在线查询
腾讯词向量实战:通过Annoy进行索引和快速查询
玩转腾讯词向量:Game of Words(词语的加减游戏)
词向量游戏:梅西-阿根廷+葡萄牙=?

通过这个接口,可以直接输入“相似词 自然语言处理"查询“自然语言处理”的相近词: 继续阅读

藏头诗生成器有了,藏尾诗生成器还会远吗?

自从AINLP公众号后台对话上线自动写诗功能,特别是藏头诗生成器的功能后,发现有不少同学在使用,特别是过程中发现有的同学不仅需要藏头诗,还需要藏尾诗,这也让我第一次了解了藏尾诗。不过如果让用户随意输入尾词,诗句尾部的押韵基本上破坏了,但是作为大众娱乐需求,这功能还是可以有的。所能想到的第一个方法是:基于目前的模型强制在结尾处替换关键字,然后逐句生成,但是这种方法合成的藏尾诗必定会很生硬;第二个方法直接训练一个反向模型:基于GPT2-Chinese,用之前的古诗训练语料逆序训练了一个古诗反向生成模型,然后对于用户的输入,同样也反向处理,最后再正向呈现给用户,这种方法生成的藏尾诗应该会平滑很多。所以说干就干,基于第二种方法训练了一个藏尾诗生成器模型,感兴趣的同学可以关注AINLP公众号,直接回复“藏尾诗输入内容”触发“藏尾诗生成器”,例如: 继续阅读

中文命名实体识别工具(NER)哪家强?

自去年以来,在AINLP公众号上陆续给大家提供了自然语言处理相关的基础工具的在线测试接口,使用很简单,关注AINLP公众号,后台对话关键词触发测试,例如输入 “中文分词 我爱自然语言处理”,“词性标注 我爱NLP”,“情感分析 自然语言处理爱我","Stanza 52nlp" 等,具体可参考下述文章:

五款中文分词工具在线PK: Jieba, SnowNLP, PkuSeg, THULAC, HanLP
中文分词工具在线PK新增:FoolNLTK、LTP、StanfordCoreNLP
Python中文分词工具大合集:安装、使用和测试
八款中文词性标注工具使用及在线测试
百度深度学习中文词法分析工具LAC试用之旅
来,试试百度的深度学习情感分析工具
AINLP公众号新增SnowNLP情感分析模块
斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用

既然中文分词、词性标注已经有了,那下一步很自然想到的是命名实体识别(NER,Named-entity recognition)工具了,不过根据我目前了解到的情况,开源的中文命名实体工具并不多,这里主要指的是一些成熟的自然语言处理开源工具,不是github上一些学习性质的代码。目前明确有NER标记的包括斯坦福大学的NLP组的Stanza,百度的Paddle Lac,哈工大的LTP,而其他这些测试过的开源NLP基础工具,需要从词性标注结果中提取相对应的专有名词,也算是一种折中方案。 继续阅读

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

虽然知道大多数同学都有资料收藏癖,还是给大家准备一份自然语言处理学习大礼包,其实是之前陆陆续续分享的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 版本正式发布,算是一个里程碑: 继续阅读

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

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

​柯林斯:追求完美

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

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

继续阅读

自动作诗机&藏头诗生成器:五言、七言、绝句、律诗全了

这是自然语言处理里面最有意思的任务之一:自然语言生成,本文主要是指古诗自动写诗,或者自动作诗机藏头诗生成器,目前支持五言绝句、七言绝句、五言律诗、七言律诗的自动生成(给定不超过7个字的开头内容自动续写)和藏头诗生成(给定不超过8个字的内容自动合成)。先看一下效果,也算是一个简单的自动作诗机和藏头诗生成器使用指南,感兴趣的同学请关注公众号AINLP,直接关键词触发测试:

自动作诗机或者自动写诗:
输入 “写诗 起头内容” 触发古诗自动生成(自动续写),输入内容不要超过7个字,会根据字数随机生成几首五言绝句、七言绝句、五言律诗、七言律诗:

藏头诗生成器:
输入 “藏头诗 藏头内容” 触发藏头诗自动生成,输入内容不超过8个字,会根据字数随机生成绝句或者律诗:

五言诗生成器:
输入“五言 起头内容” 触发五言诗自动生成,输入内容不要超过5个字,会随机生成五言绝句或者五言律诗

七言诗生成器:
输入 “七言 起头内容” 触发七言诗自动生成,输入内容不要超过7个字,会随机生成七言绝句或者七言律诗

绝句生成器:
输入 “绝句 起头内容” 触发绝句自动生成,输入内容不要超过7个字,会根据字数随机生成五言绝句或者七言绝句

律诗生成器:
输入 “律诗 起头内容” 触发律诗自动生成,输入内容不要超过7个字,会根据字数随机生成五言律诗或者七言律诗

五言绝句生成器和五言律诗生成器:
输入 “五言绝句 起头内容” 触发五言绝句自动生成,输入 “五言律诗 起头内容” 触发五言律诗自动生成,输入内容不要超过5个字:

七言绝句生成器和七言律诗生成器:
输入 “五言绝句 起头内容” 触发五言绝句自动生成,输入 “五言律诗 起头内容” 触发五言律诗自动生成,输入内容不要超过5个字:

最后让我们再看一下藏头诗自动生成的功能,支持任意8个字以内的输入,以下是对“自然语言”, “自然语言处理”,“我爱自然语言处理”的输入测试:

关于机器自动写诗,我们已经谈到多次,请参考:
AINLP公众号自动作诗上线
用GPT-2自动写诗,从五言绝句开始
鼠年春季,用GPT-2自动写对联和对对联

目前用 GPT2-Chinese 这个工具对古诗和对联数据一起训练,设计好数据格式,单个模型可以一站式支持多种体裁古诗和对联生成,非常方便,再次安利。

关于古诗体裁介绍,以下来源于百科:

五言绝句是中国传统诗歌的一种体裁,简称五绝,是指五言四句而又合乎律诗规范的小诗,属于近体诗范畴。此体源于汉代乐府小诗,深受六朝民歌影响,成熟定型于唐代。五绝每首仅二十字,便能展现出一幅幅清新的图画,传达一种种真切的意境。因小见大,以少总多,在短章中包含着丰富的内容,是其最大特色。五绝有仄起、平起二格。代表作品有王维的《鸟鸣涧》、李白的《静夜思》、杜甫的《八阵图》、王之涣的《登鹳雀楼》、刘长卿的《送灵澈上人》等。

七言绝句是中国传统诗歌的一种体裁,简称七绝,属于近体诗范畴。此体全诗四句,每句七言,在押韵、粘对等方面有严格的格律要求。诗体起源于南朝乐府歌行或北朝乐府民歌,或可追溯到西晋的民谣,定型、成熟于唐代。代表作品有王昌龄的《芙蓉楼送辛渐二首》、李白的《早发白帝城》、杜甫的《江南逢李龟年》、厉声教的《观潮有感》等。

五言律诗,是中国传统诗歌的一种体裁,简称五律,属于近体诗范畴。此体发源于南朝齐永明时期,其雏型是沈约等讲究声律、对偶的新体诗,至初唐沈佺期、宋之问时基本定型,成熟于盛唐时期。全篇共八句,每句五个字,有仄起、平起两种基本形式,中间两联须作对仗。代表作品有李白的《送友人》、杜甫的《春望》、王维的《山居秋暝》、厉声教的《辛卯季春谒厉杭二公祠》等。

七言律诗是中国传统诗歌的一种体裁,简称七律,属于近体诗范畴,起源于南朝齐永明时沈约等讲究声律、对偶的新体诗,至初唐沈佺期、宋之问等进一步发展定型,至盛唐杜甫手中成熟。其格律严密,要求诗句字数整齐划一,由八句组成,每句七个字,每两句为一联,共四联,分首联、颔联、颈联和尾联,中间两联要求对仗。代表作品有崔颢的《黄鹤楼》、杜甫的《登高》、李商隐的《安定城楼》等。