Introduction
以自然语言处理为背景,对所给新闻文本进行分类。利用训练样本训练模型,利用测试样本预测,根据F1-score得分来评判预测结果好坏1。
数据集:这里数据集提前被匿名处理,共有14个labels标签,对应关系如下:
{‘科技’: 0, ‘股票’: 1, ‘体育’: 2, ‘娱乐’: 3, ‘时政’: 4, ‘社会’: 5, ‘教育’: 6, ‘财经’: 7, ‘家居’: 8, ‘游戏’: 9, ‘房产’: 10, ‘时尚’: 11, ‘彩票’: 12, ‘星座’: 13}
测试样本 :A/B each 5W
训练样本 :20W
Task
Tool:python(以前大多数还是会用R,买了几本python的书还是会闲置在家,这里推荐《python语言程序设计》这本书,可以一起来学习。)
- 数据读取—pandas
- 训练模型方法学习
- 测试集合预测
- F1-score综合评分
1、数据读取-pandas学习
pd.read_csv(filepath,encoding,sep,header,names,usecols,index_col,skiprows,nrows)
//注意事项:
filepath尽量使用英文名称
encoding默认编码为utf-8,如果是csv,且数据中有中文时,则要指定encoding=‘gbk’
sep:指定分割符形式,CSV默认逗号分割,可以忽略这个参数,如果是其它分割方式,则要填写其他分割字符。
names: 当header=0时,用names可以替换掉第数据中的第一行作为列名,header=None,用names可以增加一行作为列名,无header参数时,用names会增加一行作为列名,原数据的第一行仍然保留。
usecols:指定读取的列名
index_col: 指定哪几列作为索引
skiprows: 跳过n行再读取数据
nrows: 读取多少行
2、 转化分词
赛题本质是一个文本分类问题,需要根据每句的字符进行分类。但赛题给出的数据是匿名化的,不能直接使用中文分词等操作,这个是赛题的难点。
3、匿名字符建模
这里关于建模涉及特征提取相关工作
4、方法思路
-
TF-IDF + 机器学习分类器
直接使用TF-IDF对文本提取特征,并使用分类器进行分类。在分类器的选择上,可以使用SVM、LR、或者XGBoost。- TF_IDF入门系列,根据词频来统计关键词,提取完相关特征后可以利用svm或者回归进行分类训练】
-
FastText
FastText是入门款的词向量,利用Facebook提供的FastText工具,可以快速构建出分类器。1 -
WordVec + 深度学习分类器WordVec是进阶款的词向量,并通过构建深度学习分类完成分类。深度学习分类的网络结构可以选择TextCNN、TextRNN或者BiLSTM。
- wordvec转化为词向量,文本神经网络TextCNN or BiLSTM。
- word2vec主要有两种模型:skip-gram 模型和CBOW模型,
-
Bert词向量
Bert是高配款的词向量,具有强大的建模学习能力。
5、F1-score
召回率和准确率的计算。