标签归档:机器翻译

《自然语言处理综论(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

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

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

​柯林斯:追求完美

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

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

继续阅读

鼠年春节,用 GPT-2 自动生成(写)春联和对对联

鼠年春节临近,来试试新的基于 GPT2-Chinese 自动对联系统:自动写对联(输入开头进行对联自动生成)和自动对对联(输入上联自动写下联)。老的自动对联功能是去年基于深度学习机器翻译模型上线的一个自动对对联的对话模块:风云三尺剑,花鸟一床书---对联数据集和自动对联机器人

这一年来,以BERT为代表的预训练模型不断推陈出新,席卷整个自然语言处理(NLP)领域,这其中NLP的难题之一自然语言生成(NLG)也得到了很大的助力,特别是去年上半年 OpenAI 的 GPT-2 的推出,非常惊艳,不过 GPT-2 的模型主要是基于英文领域的语料训练的,虽然到目前为止已经发布了含有15亿参数的完整模型,对于英文领域的自动文本生成非常有帮助,但是对于中文领域的NLG来说还是很受限。

回到中文领域,我们之前推荐过AINLP技术交流群杜则尧同学的开源项目 GPT2-Chinese:GPT2-Chinese:《【Github】GPT2-Chinese:中文的GPT2训练代码》,这个项目可以针对中文数据进行GPT-2模型的训练,可以写诗,新闻,小说,或是训练通用语言模型。所以对于自动对联生成来说,我能想到的就是基于GPT2-Chinese和对联数据训练一份对联领域的GPT2模型,用于对联自动生成:写对联和对对联。幸运的是,对联数据已经有了,依然是我们去年使用过 couplet-dataset ,特别感谢提供这份数据的同学,这份对联数据包含70多万条对联,唯一可惜的是没有横批,要是有横批,就可以造更完整的自动写对联和对对联系统了。

特别需要说明的是,这里并不是基于一个大的中文 GPT-2 模型进行特定领域 finetune 的,虽然目前已经有了大型的中文 GPT-2 预训练模型:gpt2-ml ,但是和 GPT2-Chinese 是两个体系,而 GPT2-Chinese 目前还不支持这个大模型的迁移。关于如何使用 GPT2-Chinese 进行对联数据的 GPT2 模型训练,这个项目的代码和文档都写得非常清楚,直接参考即可,如果有问题,可以查看一下issue,我遇到的问题基本上就是通过文档和issue解决的,这里提几个注意的点:

1)训练数据可以按 GPT2-Chinese 训练数据的格式要求写个脚本进行转换,可以加一些标记符,譬如开头,结尾以及上联下联之间的分隔符,这样在生成的时候可以基于这些标记符做trick;
2)训练时请将参数 min-length 设置为一个较小的数字,默认为128,由于对联数据长度比较短,按默认的设置训练后只会得到乱码,我直接设置为1;
3)根据自己GPU显存的大小调整 batch_size 和配置参数, 这里 batch_size 默认为8,训练时在1080TI的机器上会出现OOM,将其设置为4就可以完全跑通了,其他参数不用动;

对联 GPT-2 模型训练完成后,可以直接基于 GPT2-Chinese 里面的 generate.py 脚本进行测试,很方便,我基于 generate.py 和 flask-restful 写了一个 server 版本,对接到AINLP公众号后台了,感兴趣的同学可以关注AINLP公众号,直接进行测试:

关键词“写对联”触发对联自动生成,例如输入“写对联鼠年”,对联模型会基于“鼠年”进行自动续写,会给出以“鼠年”开头大概3个对联:

关键词“对对联”触发基于上联对下联,例如输入“对对联 一帆风顺年年好”,会给出大概3个候选对联:

当然你可以用“上联”触发老的对联版本进行对比:

至于两个版本的效果,欢迎多做对比,如果遇到了很棒的机器对联,也欢迎在评论里分享。最后,欢迎关注AINLP公众号,测试自动生成对联和自动对对联功能:

关于AINLP对话功能模块,感兴趣的同学可以参考:

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

NLP相关工具及在线测试(公众号对话测试)
五款中文分词工具在线PK: Jieba, SnowNLP, PkuSeg, THULAC, HanLP
中文分词工具在线PK新增:FoolNLTK、LTP、StanfordCoreNLP
Python中文分词工具大合集:安装、使用和测试
八款中文词性标注工具使用及在线测试
百度深度学习中文词法分析工具LAC试用之旅
来,试试百度的深度学习情感分析工具
AINLP公众号新增SnowNLP情感分析模块

自动对联及作诗机
风云三尺剑,花鸟一床书---对联数据集和自动对联机器人
自动对联活动获奖结果以及机器对联赏析
"自动作诗机"上线,代码和数据都是公开的

夸夸聊天机器人及其他技能
一行Python代码实现夸夸聊天机器人
为了夸夸聊天机器人,爬了一份夸夸语料库
夸夸聊天机器人升级:从随机到准个性化
来,试试语音(识别)聊天(机器人)
来,试试成语接龙
推荐一份中文数据,来试试汉字、词语、成语、歇后语在线检索
AINLP公众号新增"狗屁不通文章生成器"接口
来,试试彩虹屁生成器

如果对AINLP公众号感兴趣,也欢迎参考我们的年度阅读清单:AINLP年度阅读收藏清单

中文自然语言处理相关的开放任务,数据集, 以及当前最佳结果

强烈推荐一个项目:Chinese NLP ,这是由滴滴人工智能实验室所属的自然语言处理团队创建并维护的,该项目非常细致的整理了中文自然语言处理相关任务、数据集及当前最佳结果,相当完备。

项目主页:https://chinesenlp.xyz

Github: https://github.com/didi/ChineseNLP

这个项目里面目前包含了18个中文自然语言处理任务,以及一个其他类别:

每个子任务下面,会详细介绍相关的任务背景、示例、评价指标、相关数据集及当前最佳结果。以中文分词为例,除了我们熟悉的backoff2005数据集外,还有一些其他数据来源:

再看一下机器翻译任务,关于评价指标,描述的相当详细:

直接评估(人工评判)。Amazon Mechnical Turk上的标注人员会看到一个系统生成的翻译和一个人工翻译,然后回答这样一个问题:“系统翻译有多么精确的表达了人工翻译的含义?”

Bleu score (Papineni et al 02 ).

大小写敏感 vs. 大小写不敏感

Brevity penalty 触发条件: 当机器翻译结果短于最短的参考译文 (reference) 或者短于最接近的参考译文 (reference)。

brevity penalty: 一个系数,用来惩罚长度短于参考翻译的机器翻译结果。

标准的Bleu计算流程会先对参考译文和机器翻译结果进行符号化 (tokenizition)。

如果中文是目标 (target) 语言, 则使用字符级别 {1,2,3,4}-gram匹配。

当只有1条人工参考翻译译文时使用Bleu-n4r1评估。

Bleu-n4r4: 词级别 {1,2,3,4}-gram 匹配, 与4条人工参考翻译译文比较

标准Bleu有很多重要的变种:

NIST. Bleu的一种变体,赋予少见的n-gram更高的权重。

TER (Translation Edit Rate). 计算机器翻译与人工参考译文之间的编辑距离 (Edit distance)。

BLEU-SBP ((Chiang et al 08)[http://aclweb.org/anthology/D08-1064] ). 解决了Bleu的解耦(decomposability) 问题,在Bleu和单词错误率取得一个折中。

HTER. 修改为一个良好的翻译所需要的人工编辑次数 (the number of edits)。

机器翻译相关语料资源方面,也包括我们比较熟悉的联合国语料库和AI Challenger:

其他相关任务感兴趣的同学可以自行参考,这是一个相当不错的了解当前中文NLP相关任务的参考点,感谢建设和维护该项目的同学。

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

本文链接地址:中文自然语言处理相关的开放任务,数据集, 以及当前最佳结果 https://www.52nlp.cn/?p=12099

Philipp Koehn大神的神经网络机器翻译学习资料:NMT Book

上午有同学在AINLP交流群里询问机器翻译书籍,看到后第一想到的就是Philipp Koehn大神,我读书的时候他活跃在统计机器翻译的一线,特别是他领导开源的Moses机器翻译工具,成了统计机器翻译时代的标配;现在他活跃在神经网络机器翻译的一线,这种一线,不仅仅指paper,还有代码,关注他的github,你会发现他还在为开源的神经网络机器翻译工具贡献代码。

2010年他出过一本SMT的专著:Statistical Machine Translation,这本书也有中文翻译版,个人觉得应该是机器翻译入门必读材料。这几年神经网络机器翻译风声水起,NMT伴随着深度学习的发展攻城略地,Koehn大神也为本书补充了一个专门的NMT章节,或者可以单独成书,关于这个章节,可以在这里找到和下载:https://arxiv.org/abs/1709.07809

Draft of textbook chapter on neural machine translation. a comprehensive treatment of the topic, ranging from introduction to neural networks, computation graphs, description of the currently dominant attentional sequence-to-sequence model, recent refinements, alternative architectures and challenges. Written as chapter for the textbook Statistical Machine Translation. Used in the JHU Fall 2017 class on machine translation.

或者可以在他维护的一个机器翻译课程相关页面上下载,这个主页上有很多已经开过的和再开的机器翻译课程信息:

http://mt-class.org/

最后,如果你觉得麻烦,欢迎关注AINLP公众号,后台回复 nmt 下载:

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

本文链接地址:Philipp Koehn大神的神经网络机器翻译学习资料:NMT Book https://www.52nlp.cn/?p=11835

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

很多年前看到过微软的自动对联工具,写了一篇《机器翻译与微软对联》博文,赞了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/

其他例子可参考:

关于AINLP公众号相关信息,可参考:AINLP公众号索引、关键字和其他相关资源

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

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

AI Challenger 2018 简记

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

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

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

AI Challenger 2018 文本挖掘类竞赛相关解决方案及代码汇总

AI Challenger 2018 已近尾声,各赛道top选手已经结束了代码核验,正在准备12月18、19日 AI Challenger 决赛答辩材料的路上。在本年度 AI Challenger 即将尘埃落定之时,这里整理一批目前网上可见的文本挖掘相关赛道的解决方案和代码,欢迎补充,同时感谢github,感谢各位开源的同学。

细粒度用户评论情感分析

在线评论的细粒度情感分析对于深刻理解商家和用户、挖掘用户情感等方面有至关重要的价值,并且在互联网行业有极其广泛的应用,主要用于个性化推荐、智能搜索、产品反馈、业务安全等。本次比赛我们提供了一个高质量的海量数据集,共包含6大类20个细粒度要素的情感倾向。参赛人员需根据标注的细粒度要素的情感倾向建立算法,对用户评论进行情感挖掘,组委将通过计算参赛者提交预测值和场景真实值之间的误差确定预测正确率,评估所提交的预测算法。

貌似是最火爆的一个赛道,Testa 提交队伍有468支,详细介绍请参考该赛道主页:https://challenger.ai/competition/fsauor2018
继续阅读

AI Challenger 2018 进行时

之前写过一篇《AI Challenger 2017 奇遇记》,记录了去年参加 AI Challenger 英中机器文本翻译比赛和英中机器同声传译比赛的过程,得到了一些反馈,特别是一些同学私下留言希望共享语料做科研用,但是限于去年比赛AI Challenger官方的约定,无法私下分享。不过好消息是,AI Challenger 2018 新赛季已经于8月29号启动,总奖金高达300万人民币,单个赛道冠军奖金最高到40万人民币。新赛季英中机器翻译文本大赛继续,提供了一批新的语料,中英双语句对规模大致到了1千3百万句对的水平,真的很赞。

我之前没有参加这类数据竞赛的经验,去年因为做 AIpatent专利机器翻译 产品的缘故,参加了 AI Challenger 2017 两个与机器翻译相关的赛道,并且侥幸进了英中机器同声传译比赛的 Top 5,过程中最大的收获其实是 follow 了一轮最新的神经网络机器翻译模型和试用了一些相关的NMT开源工具,另外也跟踪了机器翻译相关的论文,了解了当前机器翻译的进展情况,这些对于我的工作还是有相当帮助的。

10年前读研的时候,没有MOOC,没有Kaggle,也没有这么多开源的深度学习平台和工具,有时候不得不感慨,对于搞数据挖掘的同学来说,这是最好的时代。对于还在校学习的同学,如果实验室的任务不重,强烈建议参加类似 AI Challenger, Kaggle 这样的比赛,这可能是除了实习之外,又一个很好的积累实战经验的方法之一。在 NLPJob ,我们已经发现有一些招聘方加了一条加分项,例如:有Kaggle比赛获奖或者其他竞赛获奖的优先。而类似的,我们也发现很多同学的简历中参加Kaggle, 天池大数据等竞赛的经历逐渐成了标配。面向校招,在校同学缺乏实战经验,如果又没有一些很好的实验室项目或者实习经历作为筹码,那么参加这类比赛不失为一个很好的简历补充方式。

以下选自 AI Challenger 2018 的相关官方介绍,其中五大主赛道有三个与自然语言处理相关,可见NLP是多么的难。

继续阅读

专利文本数据挖掘之AIpatent

这两年,我花了很多时间在专利文本数据挖掘上,这是一件很好玩的事情。目前我们的产品陆续上线了,感兴趣的朋友可以关注:

AIpatent专利翻译引擎http://t.aipatent.com

AIpatent专利科技词典http://d.aipatent.com/

AIpatent专利情报信息http://x.aipatent.com/

接下来,还有好玩的AIpatent专利检索产品,敬请期待。