月度归档:2019年07月

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相关工具包,欢迎来聊,欢迎关注。

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

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

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

NLP相关工具及在线测试(公众号对话测试)
五款中文分词工具在线PK: Jieba, SnowNLP, PkuSeg, THULAC, HanLP
中文分词工具在线PK新增:FoolNLTK、LTP、StanfordCoreNLP
Python中文分词工具大合集:安装、使用和测试
中文分词工具评估:chinese-segmentation-evaluation
中文分词文章索引和分词数据资源分享
自然语言理解太难了之中文分词八级测试
八款中文词性标注工具使用及在线测试
百度深度学习中文词法分析工具LAC试用之旅
来,试试百度的深度学习情感分析工具
AINLP公众号新增SnowNLP情感分析模块

聊天机器人相关
一行Python代码实现夸夸聊天机器人
为了夸夸聊天机器人,爬了一份夸夸语料库
夸夸聊天机器人升级:从随机到准个性化
来,试试语音(识别)聊天(机器人)
来,试试成语接龙

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

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:来呀比到天荒地老

老宋的茶书会系列:
听说你还没读过 Bert 源码?
Bert 改进: 如何融入知识

张贵发同学系列:
一步步理解BERT
最新语言表示方法XLNet

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

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

其他相关:
吴金龙博士的解读:BERT时代与后时代的NLP
谷歌BERT模型深度解析
BERT_Paper_Chinese_Translation: BERT论文中文翻译版
【Github】BERT-train2deploy:BERT模型从训练到部署
BERT/注意力机制/Transformer/迁移学习NLP资源大列表:awesome-bert-nlp

资源关键字
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