机器读中文2:“辨古识今”

机器读中文2:“辨古识今”


比赛概述


本比赛为个人练习赛,主要针对于数据新人、尤其中文文本处理方面的新手进行自我练习、自我提高,与大家切磋。

练习赛时限:2017-11-01 至 2019-11-01

任务类型:自然语言处理、二元分类

背景介绍:
本次练习赛是“机器读中文”系列的第二期(第一期为机器读中文:根据名字判断性别)。
自然语言处理是机器学习中的一个重要方向,但是现在流行的学习资料和网上的数据集都是以英文为主。SofaSofa旨在推动初学者对中文自然语言处理的学习热情以及能力掌握。
每次练习赛任务是做一次简单的“辨古识今”———二元分类。对于给定的一句话或者片段,选手来判定这句话是文言文还是白话文

数据来源:
文言文数据来自《史记》《三国志》《旧唐书》《新唐书》《宋史》《明史》《聊斋志异》以及历代名家短篇,白话文来自其对应的注释。标题图片来源:百度。

   


数据下载


数据文件(三个):
train.txt 训练集,文件大小 239kb
test.txt 预测集, 文件大小 156kb
sample_submit.csv 提交示例 文件大小 34kb

下载该数据即同意不以商业为目的传播、发布该数据集。

训练集中共有5000条样本,预测集中有3385条样本。

变量说明:
变量名 解释
id 编号
text 文本内容,每个样本长度为3到20个汉字。文中的标点符号均已被空格取代。
y 表示该文本对应的标签。0表示白话文,1表示文言文。这是需要被预测的标签。
选手的任务是提交每条文本是文言文的概率。

train.txt, test.txt均为逗号分隔形式的文件。在python中可以通过如下形式读取。
train = pd.read_csv('train.txt')
test = pd.read_csv('test.txt')


评价方法


您提交的结果为每句话为文言文的概率。评价方法为log-loss。

log-loss的取值范围是0到正无穷。越接近0,说明模型预测的结果越佳。log-loss的计算公式为: $$\text{log-loss}=-\frac{1}{n}\sum_{i=1}^n\left((y_i\log p_i)+(1-y_i)\log(1-p_i)\right)$$ 其中$n$为总样本数,$y_i$为第$i$个样本的真实标签,$p_i$为预测第$i$个样本的标签是$1$的概率。

比如说有两句话:
“少时 一狼径去 其一犬坐于前”:实际为文言文。模型预测为文言文的概率为0.8。
“一会儿 一只狼径直走开了 另一只狼像狗似的蹲坐在屠夫的前面”:实际为白话文。模型预测其为文言文的概率为0.4。
那么在这个两个样本上的log-loss为 $$\text{log-loss}=-\frac{1}{2}\left((\log 0.8)+\log(1-0.4)\right)=0.36698$$ log-loss的计算函数可参考这里(python以及R)。


提交结果


提交前请确保预测结果的格式与sample_submit.csv中的格式一致,以及提交文件后缀名为csv。文件大小不超过5mb。

您提交的结果为每句话为文言文的概率。

   文件名不可以包含中文字符,长度在20字节以内。

排行榜每两小时更新一次。每次更新之前,参赛选手可以多次上传预测结果,但是系统只保留排行榜更新之前最后一次上传结果。

   

每次比赛为练习赛,所以评测结果是基于全部3385条预测样本。