标签归档:自然语言处理

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

AINLP

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

AINLP

这门课程录制于深度学习爆发前夕,授课是斯坦福教授 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/

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

AINLP

这门课程录制于深度学习爆发前夕,授课是斯坦福教授 Dan Jurafsky 和 Christopher Manning 教授,两位都是自然语言处理领域的神牛:前者写了《Speech and Language Processing》(中文译名:自然语言处理综论),后者写了《Foundations of Statistical Natural Language Processing》(中文译名:统计自然语言处理基础),这两本书几乎是NLPer的必读书。这门课程适合NLP入门学习,可以了解基本的自然语言处理任务和早期经典的处理方法。

这是第一讲课程介绍和第二讲正则表达式的相关内容,实话实说,正则表达式在工作中用得相当之多了。

李宏毅老师2020新课深度学习与人类语言处理正式开放上线

AINLP

前两天李宏毅老师机器学习2020版刚刚上线,这么他又马不停蹄的推出了又一款良心大作:深度学习与人类语言处理 (Deep Learning for Human Language Processing),非常适合NLPer门来追!

课程主页,包含视频和其他相关资料链接,建议保存:

http://speech.ee.ntu.edu.tw/~tlkagk/courses_DLHLP20.html

看了第一节课程视频,这门课程之所以叫做深度学习与人类语言处理,而不是深度学习与自然语言处理,主要是这门课程里文字和语音的内容个占一半,另外主要关注近3年的相关技术,譬如BERT及之后的预处理模型将重点讲述,非常值得期待。我们建立了一个这门课程的学习交流群,感兴趣的同学可以添加微信AINLPer(id: ainlper) ,备注“李宏毅”进群一起交流学习。

目前这门课程已经放出了2节课程内容,分别是课程概览和语音识别第一部分,感兴趣的同学可以直接观看:

如果觉得这个还不过瘾,可以关注AINLP公众号,回复"DLHLP",获取这门课程前2节课程视频和Slides,以后会持续更新相关资料。

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLP君微信(id:AINLP2),备注工作/研究方向+加群目的。

用 GPT-2 自动写诗,从五言绝句开始

AINLP

春节前用 GPT2 训练了一个自动对联系统:鼠年春节,用 GPT-2 自动生成(写)春联和对对联 ,逻辑上来说这套NLG方法论可以应用于任何领域文本的自动生成,当然,格式越固定越好,这让我自然想到了自动写诗词,诗词的格式相对比较固定,我们之前已经有所涉及,譬如已经在AINLP公众号上上线了自动写藏头诗首字诗的功能,不过是直接复用的:"自动作诗机"上线,代码和数据都是公开的 ,另外还有一个更大的诗词数据项目可以用作自动作诗的“原料”:【Github】Chinese-poetry: 最全中华古诗词数据库,加上 GPT2-Chinese 这个项目:【Github】GPT2-Chinese:中文的GPT2训练代码 ,可以说万事俱备,只欠试用。

所以本周我们从五言绝句开始继续自然语言生成的主题,关于五言绝句,百度百科是这样说的:

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

我主要用了 Chinese-poetry 里的《全唐诗》和《全宋诗》数据 ,首先向这个项目的作者致敬:

《全唐诗》是清康熙四十四年(1705年),彭定求、沈三曾、杨中讷、汪士鋐、汪绎、俞梅、徐树本、车鼎晋、潘从律、查嗣瑮10人奉敕编校,“得诗四万八千九百余首,凡二千二百余人”, 共计900卷,目录12卷。 来自百科

《全宋诗》继唐诗的高度繁荣之后,宋诗在思想内容和艺术表现上有新的开拓和创造,出现了许多优秀作家作品,形成了许多流派,对元、明、清的诗歌发展产生了深远影响。

说明
《全唐诗》和《全宋诗》是繁体存储, 如有需要请自己转换, 但转换后的字不符合上下文。

这里需要首先通过OpenCC做了繁简转换,其次提取里面的五言绝句,最后转换为 GPT2-Chinese 的训练格式,然后就是训练和测试了,感兴趣的同学可以自己尝试,很方便,训练经验可以复用上文关于自动对联的:

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

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

关键词“写诗/作诗”触发诗歌的自动生成,例如输入“写诗春”,自动作诗模型会基于“春”进行自动续写,会给出以“春”开头的诗,给出其他的字同理,目前不能多于五个字,因为只能自动生成五言绝句:

关键词“藏头诗”触发藏头诗生成,例如输入“藏头诗春夏秋冬",基于GPT2模型叠加trick生成:

最后,欢迎关注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情感分析模块

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

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

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

AINLP年度阅读收藏清单

AINLP

感谢大家的支持,祝大家新年快乐!今天花了大部分时间从前往后分类整理了一下阅读清单,文末附上很多资源的关键词索引,欢迎收藏和分享。AINLP致力于做一个有趣有AI的自然语言处理社区,欢迎关注:

如何学习NLP和NLP相关资源
如何学习自然语言处理:一本书和一门课
如何学习自然语言处理:NLP领域经典《自然语言处理综论》英文版第三版更新
2019斯坦福CS224n深度学习自然语言处理课程视频和相关资料分享
CS224N 2019最全20视频分享:斯坦福大学深度学习自然语言处理课程资源索引
李纪为博士:初入NLP领域的一些小建议
老宋同学的学习建议和论文:听说你急缺论文大礼包?
从老宋的角度看,自然语言处理领域如何学习?
刘知远老师NLP研究入门之道:NLP推荐书目
NLP研究入门之道:自然语言处理简介
NLP研究入门之道:走近NLP学术界
NLP研究入门之道:如何通过文献掌握学术动态
NLP研究入门之道:如何写一篇合格的学术论文
NLP研究入门之道:本科生如何开始科研训练
自然语言理解难在哪儿?
好的研究想法从哪里来
你是如何了解或者进入NLP这个领域的?
NLP is hard! 自然语言处理太难了系列

腾讯词向量和相似词、相似度、词语游戏系列
相似词查询:玩转腾讯 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公众号新增"狗屁不通文章生成器"接口
来,试试彩虹屁生成器

BERT及预训练模型相关文章
BERT相关论文、文章和代码资源汇总

张俊林博士系列解读:
放弃幻想,全面拥抱Transformer:自然语言处理三大特征抽取器(CNN/RNN/TF)比较
预训练在自然语言处理的发展: 从Word Embedding到BERT模型
从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史
Bert时代的创新(应用篇):Bert在NLP各领域的应用进展
效果惊人的GPT 2.0模型:它告诉了我们什么
XLNet:运行机制及和Bert的异同比较

高开远同学系列:
BERT源码分析PART I
BERT源码分析PART II
BERT源码分析PART III
站在BERT肩膀上的NLP新秀们(PART I)
站在BERT肩膀上的NLP新秀们(PART II)
站在BERT肩膀上的NLP新秀们(PART III)
Nvidia League Player:来呀比到天荒地老
Dive into BERT:语言模型与知识
当BERT遇上知识图谱
中文预训练模型ERNIE超详细使用指南

老宋的茶书会系列:
听说你还没读过 Bert 源码?
Bert 之后:预训练语言模型与自然语言生成
就最近看的paper谈谈预训练语言模型发展
Bert 改进: 如何融入知识
ALBERT 告诉了我们什么?

太子長琴同学系列:
BERT论文笔记
XLNet 论文笔记
ERNIE Tutorial(论文笔记 + 实践指南)

张贵发同学系列:
一步步理解BERT
最新语言表示方法XLNet
深度剖析知识增强语义表示模型——ERNIE

艾力亚尔同学的文章:
NLP - 基于 BERT 的中文命名实体识别(NER)
NLP - BERT/ERNIE 文本分类和部署

SunYanCN同学的文章:
详解BERT阅读理解
简单高效的Bert中文文本分类模型开发和部署

李如同学的文章:
【NLP】ALBERT粗读

其他相关:
BERT 的演进和应用
吴金龙博士的解读:BERT时代与后时代的NLP
谷歌BERT模型深度解析
BERT_Paper_Chinese_Translation: BERT论文中文翻译版
【Github】BERT-train2deploy:BERT模型从训练到部署
BERT/注意力机制/Transformer/迁移学习NLP资源大列表:awesome-bert-nlp
NLP中的词向量对比:word2vec/glove/fastText/elmo/GPT/bert
中文预训练ALBERT模型来了:小模型登顶GLUE,Base版模型小10倍速度快1倍
超小型bert横空出世:训练和预测提速10倍
RoBERTa for Chinese:大规模中文预训练RoBERTa模型
中文语言理解基准测评(chineseGLUE)来了,公开征集数据集进行中
最简单的BERT模型调用方法
【Github】BERT-NER-Pytorch:三种不同模式的BERT中文NER实验

中文分词
中文分词文章索引和分词数据资源分享
自然语言理解太难了之中文分词八级测试
中文分词工具评估:chinese-segmentation-evaluation
简单有效的多标准中文分词

命名实体识别
【论文笔记】命名实体识别论文
一文详解深度学习在命名实体识别(NER)中的应用

关系提取
关系提取简述
【论文】Awesome Relation Classification Paper(关系分类)(PART I)
【论文】Awesome Relation Classification Paper(关系分类)(PART II)
【论文】Awesome Relation Extraction Paper(关系抽取)(PART III
【论文】Awesome Relation Extraction Paper(关系抽取)(PART IV)
【论文】Awesome Relation Extraction Paper(关系抽取)(PART V)

文本分类/情感分析
几个可作为Baseline的文本分类模型
清华THUNLP多标签分类论文笔记:基于类别属性的注意力机制解决标签不均衡和标签相似问题
【论文串烧】基于特定实体的文本情感分类总结(PART I)
基于特定实体的文本情感分类总结(PART II)
基于特定实体的文本情感分类总结(PART III)
深度学习实践:从零开始做电影评论文本情感分析
5个例子,秒懂分类算法(达观数据王子豪)
NLP - 15 分钟搭建中文文本分类模型

文本摘要
真正理解指针生成网络——Summarization with Pointer-Generator Networks
抛开模型,探究文本自动摘要的本质——ACL2019 论文佳作研读系列
文本自动摘要任务的“不完全”心得总结
BottleSum——文本摘要论文系列解读

知识图谱
“原子”因果常识图谱
知识图谱存储与查询:自然语言记忆模块(NLM)
知识图谱从哪里来:实体关系抽取的现状与未来

问答系统/对话系统/聊天机器人
生成式对话seq2seq:从rnn到transformer
QA问答系统中的深度学习技术实现
从产品完整性的角度浅谈chatbot
来谈谈那些很棒的检索式Chatbots论文(一)
来谈谈那些很棒的检索式Chatbots论文(二)
Rasa介绍:对话系统、产品与技术
基于RASA的task-orient对话系统解析(一)
基于RASA的task-orient对话系统解析(二)——对话管理核心模块
基于RASA的task-orient对话系统解析(三)——基于rasa的会议室预定对话系统实例
Rasa入坑指南一:初识Rasa
Rasa 入坑指南二:基于 Rasa 构建天气查询机器人
做对话机器人的各家企业,都在关注哪些问题
从互联网爬虫、自动驾驶到对话机器人,什么是Semantic(语义)?

阅读理解
阅读理解之(bidaf)双向注意力流网络
陈丹琦博士论文翻译:神经阅读理解与超越(Neural Reading Comprehension and Beyond)

机器翻译
Philipp Koehn大神的神经网络机器翻译学习资料:NMT Book
清华大学NLP组整理的机器翻译论文阅读清单

文本生成
电脑也能写出连贯的文章吗?

推荐系统
当我们谈论“推荐系统”时在谈论什么?
推荐系统中的矩阵分解技术
受限玻尔兹曼机原理及在推荐系统中的应用
推荐系统召回四模型之:全能的FM模型
推荐系统召回四模型之二:沉重的FFM模型
推荐系统技术演进趋势:从召回到排序再到重排
【Github】深度学习在推荐系统中的应用及论文小结

论文笔记
用腻了 CRF,试试 LAN 吧?
Meta-Learning:Learning to Learn and Applications
可解释性论文阅读笔记1-Tree Regularization
使用Python复现SIGKDD2017的PAMAE算法(并行k-medoids算法)

竞赛相关
AI Challenger 2017 奇遇记
AI Challenger 2018 简记
AI Challenger 2018 文本挖掘类竞赛相关代码及解决方案汇总
AI Challenger 2018 机器翻译冠军参赛总结
AI Challenger_2018英中文本机器翻译_参赛小结
AI Challenger 2018 冠军 PPT 分享---细粒度情感分析赛道
AI Challenger 2018 冠军代码分享---细粒度情感分析赛道
AI Challenger 2018 第4名PPT分享---细粒度情感分析赛道
提供一个10分钟跑通 AI Challenger 细粒度用户评论情感分析的fastText Baseline
FlyAI算法竞赛平台初体验
法研杯要素识别第二名方案总结:多标签分类实践与效果对比
2019法研杯比赛--阅读理解任务第4名团队参赛总结
法研杯cail2019阅读理解比赛记录(第5名团队分享)
【Github】2019年达观信息提取比赛第九名代码和答辩PPT
CCF BDCI2019 金融信息负面及主体判定 冠军方案解析

求职相关
2021 校招算法岗, 劝退还是继续
EE转CS,拿了多个行业offer,最终选择NLP算法岗的同学的秋招总结
14种模式解决面试算法编程题(PART I)
14种模式解决面试算法编程题(PART II)

开源项目及资源
中文自然语言处理相关的开放任务,数据集,以及当前最佳结果
用于中文闲聊的GPT2模型:GPT2-chitchat
中文歌词生成,缺不缺语料?这里有一个开源项目值得推荐
深度学习资源大列表:关于深度学习你需要了解的一切
funNLP: 从文本中抽取结构化信息的超级资源包
NLP 2018 Highlights:2018自然语言处理技术亮点汇总
NLP Chinese Corpus项目:大规模中文自然语言处理语料
Awesome-Chinese-NLP:中文自然语言处理相关资料
Jiagu:中文深度学习自然语言处理工具
上百种预训练中文词向量:Chinese-Word-Vectors
lazynlp:构建大规模语料库的"懒人"工具箱
关于聊天机器人,这里有一份中文聊天语料库资源
复旦NLP实验室NLP上手教程
AI算法工程师手册
NLP学习新资料:旧金山大学2019夏季自然语言处理课程
中文自然语言处理数据集:ChineseNLPCorpus
【Github】nlp-journey: NLP相关代码、书目、论文、博文、算法、项目资源链接
NeuralNLP-NeuralClassifier:腾讯开源深度学习文本分类工具
【Github】Chinese-poetry: 最全中华古诗词数据库
【Github】ML-NOTE:注重数学推导的机器学习算法整理
【Github】All4NLP:自然语言处理相关资源整理
【Github】GPT2-Chinese:中文的GPT2训练代码
【Github】nlp-tutorial:TensorFlow 和 PyTorch 实现各种NLP模型
【Github】ML-NLP:机器学习、NLP面试中常考到的知识点和代码实现
【Github】Data Competition Top Solution: 数据竞赛top解决方案开源整理
【Github】nlp-roadmap:自然语言处理路相关路线图(思维导图)和关键词(知识点)
【Github】TextCluster:短文本聚类预处理模块 Short text cluster

其他相关
认真推荐一份深度学习笔记:简约而不简单
神经网络佛系炼丹手册
通过Docker部署深度学习项目环境
GPU 显存不足怎么办?
AINLP-DBC GPU 使用体验指南
200行写一个自动微分工具
定个小目标,发它一个亿条微博语料
推荐两份NLP读书笔记和一份NLTK书籍代码中文注释版
微软深度学习入门教程更新
Gilbert Strang教授的MIT公开课:数据分析、信号处理和机器学习中的矩阵方法
Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱
如何计算两个文档的相似度一
如何计算两个文档的相似度二
如何计算两个文档的相似度三
Hands-on Machine Learning with Scikit-Learn and TensorFlow 学习笔记
感知智能到认知智能中对知识的思考
polyglot:Pipeline 多语言NLP工具
A/B测试的数学原理与深入理解
详解TensorFlow™ GPU 安装
fastText原理及实践
中国科学技术大学计算机学院课程资源:USTC-CS-Courses-Resource
那些值得推荐和收藏的线性代数学习资源

资源关键字
AINLP聊天机器人除了日常搭讪外,还负责回复用户的日常查询,所以为一些关注度比较高的文章和NLP资源做了关键字和索引,分散在以前的一些文章介绍里,这里再统一贴出来:

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

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

正态分布系列文章索引

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

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

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

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

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

8、回复"bert" 获取:BERT相关论文、文章和代码资源汇总
博客版本持续更新:http://www.52nlp.cn/?p=10870

9、回复"HMM" 获取:HMM学习最佳范例全文PDF
HMM学习最佳范例全文PDF文档及相关文章索引

10、回复"Hinton" 获取:面向机器学习的神经网络公开课视频及课件
Geoffrey Hinton 大神面向机器学习的神经网络公开课及相关视频资料

11、回复"NLTK" 获取: NLTK相关资料
Python自然语言处理工具NLTK学习导引及相关资料

12、回复"youhua"获取:优化相关资料
凸优化及无约束最优化相关资料

13、回复"xiandai"获取:线性代数相关资料
那些值得推荐和收藏的线性代数学习资源

14、回复"cs224n"获取:深度学习自然语言处理课程最新视频:
2019斯坦福CS224n深度学习自然语言处理课程视频和相关资料分享
斯坦福大学深度学习自然语言处理课程CS224N 2019 全20个视频分享

15、回复"kuakua"获取:夸夸语料库(500条)
为了夸夸聊天机器人,爬了一份夸夸语料库

16、回复"fenci"获取:中文分词相关资源
中文分词文章索引和分词数据资源分享

17、回复”tongjixuexi”获取:李航老师统计学习方法第一版PPT(清华大学深圳研究生院袁春老师精心制作)
李航老师《统计学习方法(第二版)》出版及统计学习方法第一版PPT课件下载

18、回复"nmt"获取:Philipp Koehn大神的神经网络机器翻译学习资料:NMT Book

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLP君微信(id:AINLP2),备注工作/研究方向+加群目的。

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

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,对话回复“狗屁不通文章:主题句”:

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

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

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

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

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

Rasa 入坑指南二:基于 Rasa 构建天气查询机器人

AINLP

天气查询是聊天机器人里面常见和常用的功能之一,本文基于 Rasa 构建一个中文的天气查询机器人。幸运的是,这件事已经有同学操作过了:使用 Rasa 构建天气查询机器人,不仅有文章,还有训练数据和相关代码,以及Web UI查询界面,相当完备。而问题在于, Rasa的版本跳跃貌似比较大,我接触Rasa比较晚,第一篇文章《Rasa入坑指南一:初识Rasa》使用的Rasa版本是 1.2.3,貌似目前看到的很多实战文章都是0.x的 Rasa 相关版本,在一些操作方面好像有不小的区别,包括之前罗列的一些参考文章,以及这篇天气查询机器人实战教程。

学习一个项目最好是首先跑通它,从该项目的Github主页入手:https://github.com/howl-anderson/WeatherBot,一个使用 Rasa 技术栈 (Rasa NLU, Rasa Core, Rasa Core SDK)构建的简单的中文天气情况问询机器人(chatbot), 附带有基于 Web 的用户界面(UI) http://weather_bot.xiaoquankong.ai/ ,不过目前这个demo页面可以访问,但是chatbot demo无法使用,具体原因不详。该项目采用了组件相互隔离来构建整个系统:

整个系统分成 4 个 APP:

组件 仓库地址 说明
User Interface WeatherBot_UI 负责提供用户 UI ,方便用户使用,Rasa Core 支持和多种即时通讯软件(IM)的整合,Rasa Core 提供了一种称之为 Channel 的特性来方便接入 API。
Diaglog Manager WeatherBot_Core 负责管理整个对话的流程,它会主动调用 NLU 来解析用户的意图和提取相关的实体,在需要执行业务动作的时候会调用 Action Server 执行具体的业务动作。
NLU WeatherBot_NLU 负责理解用户的意图和提取相关的实体。
Action Server WeatherBot_Action 负责执行自定义 Action (通常都是具体的业务动作,在本项目中是请求远程服务器以查询天气情况)

继续阅读

推荐两份NLP读书笔记和一份NLTK书籍代码中文注释版

AINLP

推荐一下AINLP技术交流群里 zYx.tom 同学贡献给大家的两份NLP读书笔记和一份中文注释代码,包括:

《自然语言处理综论》中文版第二版学习笔记

《计算机自然语言处理》学习笔记

《Python自然语言处理》学习代码的中文注释版本:NLTK-Python-CN

作者博客:https://zhuyuanxiang.github.io/

由作者授权,我把2份pdf文件放到github上了,感兴趣的同学可以直接在github上下载:

https://github.com/panyang/AINLP-Resource/tree/master/zYx.Tom

自然语言处理综论》是NLP领域的经典著作,第一版、第二版国内都有中文翻译版,目前英文版第三版《Speech and Language Processing (3rd ed. draft)》正在撰写中,已完结的章节草稿可以直接从slp3官网下载:https://web.stanford.edu/~jurafsky/slp3/ ,加了很多深度学习自然语言处理的相关章节,这里引用李纪为博士《初入NLP领域的一些小建议》中的一段描述,供计划学习这本书的同学参考:

了解NLP的最基本知识:Jurafsky和Martin的Speech and Language Processing是领域内的经典教材,里面包含了NLP的基础知识、语言学扫盲知识、基本任务以及解决思路。阅读此书会接触到很多NLP的最基本任务和知识,比如tagging, 各种parsing,coreference, semantic role labeling等等等等。这对于全局地了解NLP领域有着极其重要的意义。书里面的知识并不需要烂熟于心,但是刷上一两遍,起码对于NLP任务有基本认识,下次遇到了知道去哪里找还是非常有意义的。

《计算机自然语言处理》是哈工大王晓龙、关毅两位老师的中文NLP著作,我在刚入门NLP的时候读过,但是已经很久了,这本书在我早期的博文里记述过:《几本自然语言处理入门书》,唯一的印象就是第一次了解到本科母校HIT在中文NLP领域是非常厉害的。这本书貌似已经无法在电商网站买到,感兴趣的同学可以看看zYx.Tom同学的学习笔记。

NLTK是经典的Python NLP工具包,配套的书籍《Natural Language Processing with Python》目前也有了中文翻译版本,感兴趣的同学可以参考zYx.Tom同学的这份《Python自然语言处理》学习代码的中文注释版本:NLTK-Python-CN

最后,欢迎大家关注AINLP公众号,加入AINLP技术交流群,一起维护一个NLP技术交流环境。

Rasa 入坑指南一:初识 Rasa

AINLP

最近对 Rasa 产生了浓厚的兴趣,准备用Rasa打磨一下聊天机器人,所以做了一些调研和学习,准备记录一下,这是第一篇,感兴趣的同学可以参考。

Rasa是一套开源机器学习框架,用于构建基于上下文的AI小助手和聊天机器人。Rasa有两个主要模块:Rasa NLU 用于对用户消息内容的语义理解;Rasa Core 用于对话管理(Dialogue management)。Rasa官方还提供了一套交互工具 RasaX 帮助用户提升和部署由Rasa框架构建的AI小助手和聊天机器人。

学习一套东西最好的方法是从官方文档开始,Rasa官方文档相当贴心,我们从 Rasa User Guide 走起。

一、安装Rasa及RasaX

我是在Ubuntu16.04, Python3 的 virtualenv 环境下测试安装的:

virtualenv -p python3 venv
source venv/bin/activate
pip install rasa-x --extra-index-url https://pypi.rasa.com/simple

如果一切正常,rasa 及 rasa x 将同时被安装,如果你不希望使用 RasaX,那么安装时直接"pip install rasa"即可,当然还可以继续安装 Rasa NLU 文本分析时所需的一些依赖,此处暂时忽略。

二、运行官方示例

Rasa 官方 tutorial 示例相当贴心,即使你没有安装rasa,也可以在这个页面通过浏览器运行示例代码,如果已经安装了,可以在自己的电脑上通过命令行follow整个流程。

1. 创建默认的初始项目

在终端运行:

rasa init --no-prompt

这个过程将有一个很快速的 Rasa 相关模型训练过程展示,最终提示:

...
NLU model training completed.
Your Rasa model is trained and saved at '/home/textminer/rasa/default/models/20190821-205211.tar.gz'.
If you want to speak to the assistant, run 'rasa shell' at any time inside the project directory.

如果不加 --no-prompt,会有几个问题提示。你也可以直接通过浏览器在官方页面执行“run”按钮,结果是这样的:

这个命令将在当前目录下新建以下文件:

__init__.py 空文件
actions.py 可以自定义 actions 的代码文件
config.yml ‘*’ Rasa NLU 和 Rasa Core 的配置文件
credentials.yml 定义和其他服务连接的一些细节,例如rasa api接口
data/nlu.md ‘*’ Rasa NLU 的训练数据
data/stories.md ‘*’ Rasa stories 数据
domain.yml ‘*’ Rasa domain 文件
endpoints.yml 和外部消息服务对接的 endpoins 细则,例如 fb messenger
models/<timestamp>.tar.gz 初始训练的模型数据

其中标志有 ‘*’ 的文件是比较重要的文件,以下我们来详细的了解。
继续阅读