认真推荐一份深度学习笔记:简约而不简单

认真推荐一份深度学习笔记:dl-notes ,作者是我的师兄朱鉴,很多年前,他也给过我一份《无约束最优化》的笔记,在这里发布过。这份文件虽然被他命名为:一份简短的深度学习笔记,但是我读完后的第一反应是:简约而不简单。师兄在工作上一直是我的偶像,他在腾讯深耕自然语言处理相关方向6年,之后又一直在小米打拼,作为技术专家,现在主要负责对话系统相关的工作。他在工作上兢兢业业,但是工作之余也一直在学习,前两天他把这份笔记给我,说这是工作之余学习的一个总结,希望分享给大家。这份深度学习笔记共有150多页,从基础的微积分、线性代数、概率论讲起,再到数值计算、神经网络、计算图、反向传播、激活函数、参数优化、损失函数、正则化等概念,最后落笔于网络架构,包含前向网络、卷积网络、递归网络以及Transformer和Bert等,涵盖的内容非常系统全面。强烈推荐给大家,个人觉得这是一份极好的深度学习中文材料,可用于深度学习入门或者平时工作参考,当然也可以基于这份笔记的任何一个章节做深度扩展阅读和学习。

以下是这份笔记的完整目录:


继续阅读

Rasa 入坑指南一:初识 Rasa

最近对 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 初始训练的模型数据

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

通过Docker部署深度学习项目环境

深度学习环境部署的方法有很多种,其中Docker化深度学习环境和项目是一个很不错的选择。这里写过一些深度学习主机安装和部署的文章,这篇文章记录一下相关的通过Docker来部署和测试深度学习项目的一些经验,以下是在一台4卡1080TI,Ubutu16.04的机器上的记录。

一、安装Docker:

关于Docker的相关介绍资料比较多,这里就不多说了,感兴趣的同学可以自行Google或者看一下参考资料。

1)使用APT安装:

$ sudo apt-get update

$ sudo apt-get install \
        apt-transport-https \
        ca-certificates \
        curl \
            software-properties-common

2) 使用国内源:

curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# 官方源
# $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

3) 向source_list添加Docker源:

$ sudo add-apt-repository \
            "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu
            \
                $(lsb_release -cs) \
                stable"

# 官方源
# $ sudo add-apt-repository \
#    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
#    $(lsb_release -cs) \
#    stable"

4)更新 apt 软件包缓存,并安装 docker-ce:

$ sudo apt-get update
$ sudo apt-get install docker-ce

5) 添加用户组(安装后貌似这个组已经存在了):

sudo groupadd docker

6) 将当期用户添加到这个组里并退出重新登录:

sudo usermod -aG docker $USER

7) 测试Docker:

docker run hello-world

8) 添加过内镜像代理:

sudo vim /etc/docker/daemon.json
{
    "registry-mirrors": [
        "https://registry.docker-cn.com"
    ]
}

9)重启Docker服务

sudo systemctl daemon-reload
sudo systemctl restart docker

二、安装nvidia-docker:

单独安装Docker之后还无法使用带GPU的深度学习机器,需要再安装一下英伟达出品的Nvidia-docker。

1)安装:

# Add the package repositories
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
$ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

$ sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
$ sudo systemctl restart docker

继续阅读

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

强烈推荐一个项目: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相关任务的参考点,感谢建设和维护该项目的同学。

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

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

推荐一份中文数据,再试试汉字、词语、成语、歇后语在线检索

前段时间给公众号新增了一个成语接龙功能:AINLP公众号对话接口新增成语接龙,这个里面提到的项目用到了一份成语数据,包含了2万多条成语数据和释义。不过这个数据之外,推荐一个更棒的Github项目:

pwxcoo/chinese-xinhuahttps://github.com/pwxcoo/chinese-xinhua

这个项目收录了收录了 14032 条歇后语,16142 个汉字,264434 个词语,31648 个成语,并且以json格式提供了相关数据,非常方便:

项目结构:

chinese-xinhua/
|
+- data/ <-- 数据文件夹
|  |
|  +- idiom.json <-- 成语
|  |
|  +- word.json <-- 汉字
|  |
|  +- xiehouyu.json <-- 歇后语
|  |
|  +- ci.json <-- 词语

汉字例子:

    {
        "word": "吖",
        "oldword": "吖",
        "strokes": "6",
        "pinyin": "ā",
        "radicals": "口",
        "explanation": "喊叫天~地。\n 形容喊叫的声音高声叫~~。\n\n 吖ā[吖啶黄](-dìnghuáng)〈名〉一种注射剂。\n ────────────────—\n \n 吖yā 1.呼;喊。",
        "more": "吖 a 部首 口 部首笔画 03 总笔画 06  吖2\nyā\n喊,呼喊 [cry]\n不索你没来由这般叫天吖地。--高文秀《黑旋风》\n吖\nyā\n喊声\n则听得巡院家高声的叫吖吖。--张国宾《合汗衫》\n另见ā\n吖1\nā\n--外国语的音译,主要用于有机化学。如吖嗪\n吖啶\nādìng\n[acridine] 一种无色晶状微碱性三环化合物c13h9n,存在于煤焦油的粗蒽馏分中,是制造染料和药物(如吖啶黄素和奎吖因)的重要母体化合物\n吖1\nyā ㄧㄚˉ\n(1)\n喊叫天~地。\n(2)\n形容喊叫的声音高声叫~~。\n郑码jui,u5416,gbkdfb9\n笔画数6,部首口,笔顺编号251432\n吖2\nā ㄚˉ\n叹词,相当于呵”。\n郑码jui,u5416,gbkdfb9\n笔画数6,部首口,笔顺编号251432"
    }

词典例子:

{
    "ci": "总计", 
    "explanation": "1.总共计算。 \n2.犹统计。"}

成语例子:

{
    "derivation": "清·嬴宗季女《六月霜·恤纬》劝夫人省可闲愁绪,足食丰衣无所虑,何况俺爷贵胄都时誉。”", 
    "example": "无", 
    "explanation": "丰衣足食。形容生活富裕。", 
    "pinyin": "zú shí fēng yī", 
    "word": "足食丰衣", "abbreviation": 
    "zsfy"
}

歇后语例子:

   {
        "riddle": "正月十五云遮月",
        "answer": "不露脸"
    },
    {
        "riddle": "正月十五贴门神",
        "answer": "晚了半月"
    },
    {
        "riddle": "正月十五贴春联",
        "answer": "晚了半月了"
    },
    {
        "riddle": "正月十五卖元宵",
        "answer": "抱成团"
    },
    {
        "riddle": "正月十五看花灯",
        "answer": "走着瞧"
    },
    {
        "riddle": "正月十五赶庙会",
        "answer": "随大流"
    }

我把这份数据放到了Elasticsearch里,并且通过ES的Python接口elasticsearch-py提供后端检索服务,现在可以通过AINLP公众号对话接口检索了,感兴趣的同学可以一试,包括:

汉字检索:

词语检索:

成语检索:

歇后语检索:

感兴趣的同学可以关注AINLP公众号,直接公众号对话测试,更多功能可以参考:
一个有趣有AI的NLP公众号

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

本文链接地址:推荐一份中文数据,再试试汉字、词语、成语、歇后语在线检索 http://www.52nlp.cn/?p=12087

AINLP公众号对话接口新增成语接龙

成语接龙很有意思,原本计划找一些成语语料自己做一个,不过Google一圈后发现Github上有一个现成的项目:IdiomsSolitaire

Github链接:https://github.com/WangYihang/IdiomsSolitaire

这个项目自带2万多条成语数据,用法也很简单:

API Usage

>>> import IdiomsSolitaire
>>> IdiomsSolitaire.init()
>>> print IdiomsSolitaire.guess("一心一意")

Script Usage

# Install it first
pip install -r requirements.txt
# Use it in your termianl
$ python IdiomsSolitaire.py
Usage : 
        python IdiomsSolitaire.py [Idioms]
Example : 
        python IdiomsSolitaire.py '一心一意'
Author : 
        WangYihang <wangyihanger@gmail.com>
$ python IdiomsSolitaire.py '一心一意'
[+] Init finished! [23594] words.
[一语破的] : [一句话就击中要害。的,箭靶的中心,比喻要害之处。]
$ python IdiomsSolitaire.py '一心一意'
[+] Init finished! [23594] words.
[一至於此] : [竟到如此地步。]

所以很快把这个接口接入了AINLP的对话功能中,感兴趣的同学可以关注AINLP公众号直接测试:

也可以直接尝试语音输入,不过个别地方识别确实有点歪打正着:

最后,欢迎关注我们的公众号AINLP,可以对对联,自动作诗,查询相似词,玩词语加减游戏等:

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

本文链接地址:AINLP公众号对话接口新增成语接龙 http://www.52nlp.cn/?p=12067

欢迎关注AINLP:一个有趣有AI的NLP公众号

我们的公众号AINLP,致力于做一个有趣有AI的NLP公众号,作者是我爱自然语言处理博客博主,NLPJob、课程图谱网站"保姆",曾在腾讯从事文本挖掘相关工作。AINLP 关注自然语言处理、机器学习、深度学习相关技术,关注人工智能、文本挖掘相关算法研发职位,关注MOOC相关课程和公开课。公众号直接对话双语聊天机器人、调戏夸夸机器人、尝试自动对联、作诗机,使用中英机器翻译,查询相似词,计算相似度,玩词语加减游戏,测试NLP相关工具包,欢迎来聊,欢迎关注。

以下是一些文章和资源的相关索引:

如何学习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模型调用方法

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

中文分词
中文分词文章索引和分词数据资源分享
自然语言理解太难了之中文分词八级测试
中文分词工具评估: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 构建天气查询机器人
做对话机器人的各家企业,都在关注哪些问题

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

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

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

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

论文笔记
用腻了 CRF,试试 LAN 吧?
Meta-Learning:Learning to Learn and Applications

竞赛相关
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

另外我们建立了几个微信群,围绕招聘、求职、技术、竞赛交流相关主题,感兴趣的同学可以添加微信AINLP2或者扫描以下二维码,注明关键字,拉你入群:

AINLP公众号新增SnowNLP情感分析模块

上周给AINLP公众号对话增加了百度中文情感分析接口:百度深度学习中文情感分析工具Senta试用及在线测试,很多同学通过公众号对话进行测试,玩得很嗨,不过感觉中文情感分析的成熟工具还是不多。这个周末调研了一下之前用于测试中文分词和词性标注的工具,发现SnowNLP和HanLP提供情感分析的接口,不过后者貌似没有提供Python接口,而SnowNLP作为原生的Python中文自然语言处理工具包,用起来还是比较方便的,唯一的问题是它的训练语料覆盖领域,官方文档是这样说的:

SnowNLP: https://github.com/isnowfy/snownlp

情感分析(现在训练数据主要是买卖东西时的评价,所以对其他的一些可能效果不是很好,待解决)

使用起来也很简单,注意SnowNLP的情感分析只有正向概率,以下测试例子也有bad case:

In [1]: from snownlp import SnowNLP                                            
 
In [2]: s = SnowNLP('我爱自然语言处理')                                        
 
In [3]: s.sentiments                                                           
Out[3]: 0.9243733698974206
 
In [4]: s = SnowNLP('我不爱自然语言处理')                                      
 
In [5]: s.sentiments                                                           
Out[5]: 0.8043511626271524
 
In [6]: s = SnowNLP('太难吃了')                                                
 
In [7]: s.sentiments                                                           
Out[7]: 0.27333037073511146

感兴趣的同学可以直接关注AINLP公众号,直接测试这两个中文情感分析模块:BaiduSenta和SnowNLP


继续阅读

百度深度学习中文情感分析工具Senta试用及在线测试

情感分析是自然语言处理里面一个热门话题,去年参加AI Challenger时关注了一下细粒度情感分析赛道,当时模仿baseline写了一个fasttext版本:AI Challenger 2018 细粒度用户评论情感分析 fastText Baseline ,至今不断有同学在star这个项目:fastText-for-AI-Challenger-Sentiment-Analysis

周末通过PaddleHub试用了一下百度的深度学习中文情感分析工具Senta,还是很方便,于是,将这个作为中文情感分析的一个技能点加入到了AINLP公众号的对话中,感兴趣的同学可以先测试:

至于安装和使用,还是简单说一下,以下是在Ubuntu16.04, Python3.x virtualenv环境下安装和测试。

安装直接通过pip install即可:

pip install paddlepaddle(这里用的是CPU版本)
pip install paddlehub

关于如何使用百度这个中文情感分析工具,最直接的方法还是follow官方demo脚本:

PaddleHub/demo/senta/senta_demo.py

在iPython中大致如下调用:

Python 3.5.2 (default, Nov 12 2018, 13:43:14) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.5.0 -- An enhanced Interactive Python. Type '?' for help.
 
In [1]: import paddlehub as hub                                                                 
 
In [2]: senta = hub.Module(name="senta_bilstm")                                                 
2019-07-06 22:33:01,181-INFO: Installing senta_bilstm module
2019-07-06 22:33:01,182-INFO: Module senta_bilstm already installed in /home/textminer/.paddlehub/modules/senta_bilstm
 
In [3]: test_text = ["这家餐厅很好吃", "这部电影真的很差劲","我爱自然语言处理"]                
 
In [4]: input_dict = {"text": test_text}                                                        
 
In [5]: results = senta.sentiment_classify(data=input_dict)                                     
2019-07-06 22:33:53,835-INFO: 13 pretrained paramaters loaded by PaddleHub
2019-07-06 22:33:53,839-INFO: 20 pretrained paramaters loaded by PaddleHub
 
In [6]: for result in results: 
   ...:     print(result) 
   ...:                                                                                         
{'positive_probs': 0.9363, 'text': '这家餐厅很好吃', 'sentiment_key': 'positive', 'negative_probs': 0.0637, 'sentiment_label': 2}
{'positive_probs': 0.0213, 'text': '这部电影真的很差劲', 'sentiment_key': 'negative', 'negative_probs': 0.9787, 'sentiment_label': 0}
{'positive_probs': 0.9501, 'text': '我爱自然语言处理', 'sentiment_key': 'positive', 'negative_probs': 0.0499, 'sentiment_label': 2}

继续阅读

AINLP公众号"自动作诗机"上线

最近对自然语言生成或者文本自动生成技术比较感兴趣,做了一些调研,作为自然语言处理领域的难题之一,个人一直觉得自然语言生成(NLG)是最难的,虽然这一两年动辄会看机器模仿莎士比亚写剧本,模仿金庸写小说,这些不过是媒体用来吸引眼球的,总之这些字凑到一起看起来像模像样,但是读了之后不知所云。不过对于特定格式的文本,类似诗歌这种,如果不细究,从直观的角度来看确实还有点像那么回事,例如清华大学自然语言处理与社会人文计算实验室开发的九歌计算机诗词创作系统,还是很强大的:

所以我首先将目光瞄准了诗歌自动生成相关的资料上,在google了一圈后,锁定了ioiogoo同学的这篇文章和两个开源版本实现:

1)介绍文章:用Keras实现RNN+LSTM的模型自动编写古诗
2)ioiogoo同学原始版本代码:https://github.com/ioiogoo/poetry_generator_Keras
3)youyuge34同学的更新版本:https://github.com/youyuge34/Poems_generator_Keras

特别是最后这个版本,作者直接提供了训练好的模型数据:poetry_model.h5,如果不想训练,直接下载这个模型把玩即可。我尝试了一下训练流程,训练几百步的时候会报错,具体原因还没有细究。不过在继续训练自己的模型之前,可以基于作者提供的模型将这个自动作诗模块包装到AINLP公众号对话接口中去,所以花了一点时间,在AINLP公众号上上线了这个自动作诗机模块,算是玩具级别的自动作诗机吧,目前支持两个功能:藏头诗(提供四个字)和首字诗(提供一个字):

请注意这两个功能目前只提供'五言绝句'的生成,因为上述代码在训练模型的时候已经过滤了其他诗词,另外这套代码也用了一些trick,生成的结果也是随机的,每次都不一样。最后,感兴趣的同学欢迎关注AINLP公众号,直接在公众号对话里测试即可:

关于文本自动生成或者自然语言生成,如果有好的idea或者素材或者想法,欢迎留言讨论,这里也会继续关注这个话题。

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

本文链接地址:AINLP公众号"自动作诗机"上线 http://www.52nlp.cn/?p=11995