NLP理论基础和实践
一、TensorFlow安装
Tensorflow的主要优势有以下几点:高度的灵活性、支持python语言开发、可视化效果好、功能更加强大、运行效率高、强大的社区。
本文以Windows安装为例,参考资料来自http://www.tensorflownews.com/2018/03/28/tensorflow-windows-install/
- 安装TensorFlow之前需要先安装Anaconda,因为它集成了很多Python的第三方库及其依赖项,方便我们在编程中直接调用。需要在官网下载安装包:https://www.anaconda.com/download/ (注意自己的系统版本),直接点击下一步即可安装成功,验证办法:在命令行输入conda --version出现版本号即安装成功。
- 下载TensorFlow,在命令行界面输入pip install Tensorflow来进行安装(下载可能比较慢),验证TensorFlow安装成功的方法,输入图片中的内容
二、TensorFlow基础
http://wiki.jikexueyuan.com/project/tensorflowzh/get_started/basic_usage.html
参考本篇博客进行学习
三、数据集探索
相关代码 https://github.com/gaussic/text-classification-cnn-rnn.git
用来处理数据集以及数据预处理部分
四、召回率、准确率、ROC曲线、AUC、PR曲线这些基本概念
- 召回率
召回率(Recall Rate,也叫查全率)是检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率;精度是检索出的相关文档数与检索出的文档总数的比率,衡量的是检索系统的查准率。
- 准确率
准确度的科学定义:指在一定实验条件下多次测定的平均值与真值相符合的程度,以误差来表示。它用来表示系统误差的大小。在实际工作中,通常用标准物质或标准方法进行对照试验,在无标准物质或标准方法时,常用加入被测定组分的纯物质进行回收试验来估计和确定准确度。在误差较小时,也可通过多次平行测定的平均值 作为真值μ的估计值。测定精密度好,是保证获得良好准确度的先决条件,一般说来,测定精密度不好,就不可能有良好的准确度。对于一个理想的分析方法与分析结果,既要求有好的精密度,又要求有好的准确度。 - ROC曲线和PR(Precision - Recall)曲线皆为类别不平衡问题中常用的评估方法,二者既有相同也有不同点。本篇文章先给出ROC曲线的概述、实现方法、优缺点,再阐述PR曲线的各项特点,最后给出两种方法各自的使用场景。
ROC曲线是根据一系列不同的二分类方式(分界值或决定阈),以真阳性率(灵敏度)为纵坐标,假阳性率(1-特异度)为横坐标绘制的曲线。传统的诊断试验评价方法有一个共同的特点,必须将试验结果分为两类,再进行统计分析。ROC曲线的评价方法与传统的评价方法不同,无须此限制,而是根据实际情况,允许有中间状态,可以把试验结果划分为多个有序分类,如正常、大致正常、可疑、大致异常和异常五个等级再进行统计分析。因此,ROC曲线评价方法适用的范围更为广泛。 - AUC
AUC(Area under the Curve of ROC)是ROC曲线下方的面积,是判断二分类预测模型优劣的标准。ROC(receiver operating characteristic curve)接收者操作特征曲线,是由二战中的电子工程师和雷达工程师发明用来侦测战场上敌军载具(飞机、船舰)的指标,属于信号检测理论。ROC曲线的横坐标是伪阳性率(也叫假正类率,False Positive Rate),纵坐标是真阳性率(真正类率,True Positive Rate),相应的还有真阴性率(真负类率,True Negative Rate)和伪阴性率(假负类率,False Negative Rate)。
- PR曲线
查准率-查全率曲线(PR曲线)
若一个学习器的P-R曲线被另一个学习器完全”包住”,则后者的性能优于前者。当存在交叉时,可以计算曲线围住面积,但比较麻烦,平衡点(查准率=查全率,BEP)是一种度量方式。