自然语言处理:经典的两个数据集和评价指标

THUCNews中文数据集

THUCNews是根据新浪新闻RSS订阅频道2005~2011年间的历史数据筛选过滤生成,包含74万篇新闻文档2.19 GB),均为UTF-8纯文本格式清华大学THUCTC项目组.在原始新浪新闻分类体系的基础上,重新整合划分出14个候选分类类别:财经、彩票、房产、股票、家居、教育、科技、社会、时尚、时政、体育、星座、游戏、娱乐。
alt
该数据集可在清华大学THUCTC项目组网页中下载。
在这里插入图片描述
填写完姓名、邮箱、等信息,遵守相关协议后,即可下载。
在这里插入图片描述
如果,你觉得这个数据集太大,还可以下载其数据子集:
https://pan.baidu.com/s/1hugrfRu 密码:qfud

“Github”.上也有相关的数据子集生成方法,以及基于CNN和RNN的文本分类。

IMDB英文数据集

IMDB是Internet Movie Database(互联网电影数据库)的缩写。IMDB也是美国的一个权威的电影网站,除了电影资料外,还给影片做了评分。
在这里插入图片描述
IMDB数据集,包含了25000条高极性的电影评论训练集,和25000条的测试集。是自然语言处理文本二分类问题的经典数据集。

该数据集可以从“相关网址”上直接下载,若用于科研等,请引用该作者的论文,遵守相关协议即可。
在这里插入图片描述

召回率、准确率、ROC曲线、AUC、PR曲线

对于这些概念的理解,我们首先来认识4个指标。

  1. TP(True Positive):将正类预测为正类
  2. TN(True Negative):将负类预测为负类
  3. False Positive(FP) : 将负类预测为了正类
  4. False Negative(FN) : 将正类预测为了负类
    对于上述四个指标,我们可以建立混淆度矩阵来进行表示。
    在这里插入图片描述
    对于分类模型,我们希望越准越好。对应到混淆矩阵中,TP与TN的数量越大越好,而FP与FN的数量越小越好。当我们得到了模型的混淆矩阵后,就需要去看有多少观测值在第二、四象限对应的位置,这里的数值越多越好;反之,在第一、三四象限对应位置出现的观测值越少越好。

准确率(Accuracy)
准确率指,所有判断正确的结果占总观测值的比重。
在这里插入图片描述
精确率(Precision)
精确率指,在所有预测为positive的结果中,预测正确的比重。
在这里插入图片描述
召回率(Recall)
召回率指,在所有真实值为positive的结果中,预测正确的比重。
在这里插入图片描述
F1值
F1值是精确率召回率调和平均数(各变量倒数算术平均数的倒数)
在这里插入图片描述
F1值的计算如下
在这里插入图片描述
ROC曲线、AUC、PR曲线
待续…

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是使用CNN算法实现手写数字识别的Python代码,注释说明在代码中: ```python import numpy as np import keras from keras.datasets import mnist from keras.models import Sequential from keras.layers import Dense, Dropout, Flatten from keras.layers import Conv2D, MaxPooling2D from keras import backend as K # 定义输入图像的尺寸和类别数 img_rows, img_cols = 28, 28 num_classes = 10 # 加载MNIST数据集并进行预处理 (x_train, y_train), (x_test, y_test) = mnist.load_data() if K.image_data_format() == 'channels_first': x_train = x_train.reshape(x_train.shape[0], 1, img_rows, img_cols) x_test = x_test.reshape(x_test.shape[0], 1, img_rows, img_cols) input_shape = (1, img_rows, img_cols) else: x_train = x_train.reshape(x_train.shape[0], img_rows, img_cols, 1) x_test = x_test.reshape(x_test.shape[0], img_rows, img_cols, 1) input_shape = (img_rows, img_cols, 1) x_train = x_train.astype('float32') x_test = x_test.astype('float32') x_train /= 255 x_test /= 255 # 将类别标签转换为独热编码格式 y_train = keras.utils.to_categorical(y_train, num_classes) y_test = keras.utils.to_categorical(y_test, num_classes) # 定义CNN模型 model = Sequential() model.add(Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=input_shape)) model.add(Conv2D(64, (3, 3), activation='relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.25)) model.add(Flatten()) model.add(Dense(128, activation='relu')) model.add(Dropout(0.5)) model.add(Dense(num_classes, activation='softmax')) # 编译模型 model.compile(loss=keras.losses.categorical_crossentropy, optimizer=keras.optimizers.Adadelta(), metrics=['accuracy']) # 训练模型 model.fit(x_train, y_train, batch_size=128, epochs=12, verbose=1, validation_data=(x_test, y_test)) # 评估模型 score = model.evaluate(x_test, y_test, verbose=0) # 输出评估结果 print('Test loss:', score[0]) print('Test accuracy:', score[1]) ``` 在上述代码中,我们首先加载MNIST数据集,并对数据进行预处理,将输入图像的像素值缩放到0到1之间,将类别标签转换为独热编码格式。 然后,我们定义CNN模型,包括两个卷积层、一个池化层、两个Dropout层和两个全连接层。 接下来,我们编译模型,指定损失函数、优化器和评价指标,然后使用训练数据对模型进行训练。 最后,我们使用测试数据对模型进行评估,并输出评估结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值