标签归档:PaddleNLP

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}

继续阅读

百度深度学习中文词法分析工具LAC试用之旅

之前在调研中文分词词性标注相关工具的时候就发现了百度的深度学习中文词法分析工具:baidu/lac(https://github.com/baidu/lac),但是通过这个项目github上的文档描述以及实际动手尝试源码编译安装发现非常繁琐,缺乏通常中文分词工具的易用性,所以第一次接触完百度lac之后就放弃了:

LAC是一个联合的词法分析模型,整体性地完成中文分词、词性标注、专名识别任务。LAC既可以认为是Lexical Analysis of Chinese的首字母缩写,也可以认为是LAC Analyzes Chinese的递归缩写。

LAC基于一个堆叠的双向GRU结构,在长文本上准确复刻了百度AI开放平台上的词法分析算法。效果方面,分词、词性、专名识别的整体准确率95.5%;单独评估专名识别任务,F值87.1%(准确90.3,召回85.4%),总体略优于开放平台版本。在效果优化的基础上,LAC的模型简洁高效,内存开销不到100M,而速度则比百度AI开放平台提高了57%。

本项目依赖Paddle v0.14.0版本。如果您的Paddle安装版本低于此要求,请按照安装文档中的说明更新Paddle安装版本。如果您使用的Paddle是v1.1以后的版本,请使用该项目的分支for_paddle_v1.1。注意,LAC模块中的conf目录下的很多文件是采用git-lfs存储,使用git clone时,需要先安装git-lfs。

为了达到和机器运行环境的最佳匹配,我们建议基于源码编译安装Paddle,后文也将展开讨论一些编译安装的细节。当然,如果您发现符合机器环境的预编译版本在官网发布,也可以尝试直接选用。

最近发现百度将自己的一些自然语言处理工具整合在PaddleNLP下,文档写得相对清楚多了:

PaddleNLP是百度开源的工业级NLP工具与预训练模型集,能够适应全面丰富的NLP任务,方便开发者灵活插拔尝试多种网络结构,并且让应用最快速达到工业级效果。

PaddleNLP完全基于PaddlePaddle Fluid开发,并提供依托于百度百亿级大数据的预训练模型,能够极大地方便NLP研究者和工程师快速应用。使用者可以用PaddleNLP快速实现文本分类、文本匹配、序列标注、阅读理解、智能对话等NLP任务的组网、建模和部署,而且可以直接使用百度开源工业级预训练模型进行快速应用。用户在极大地减少研究和开发成本的同时,也可以获得更好的基于工业实践的应用效果。

继续阅读