DateWhale零基础入门NLP之新闻文本分类学习打卡task04--kk

费曼说:学习一件事情最好的方式是做它的老师,这也是写这篇博文的目的,写这篇博文,即便有其他原因,但更多的还是写给自己,话不多说,让我们开始进入NLP吧

  本次的内容主要还是对赛题进行基于深度学习的文本分类的问题,从族简单的FastText开始

  任务说明:任务task4

  基座课程:基座课程

1.方法解释

1.FastText 

  现有文本表示方法的缺陷
  在上一章节,我们介绍几种文本表示方法:

One-hot
Bag of Words
N-gram
TF-IDF
  也通过sklean进行了相应的实践,相信也有了初步的认知。但上述方法都或多或少存在一定的问题:转换得到的向量维度很高,需要较长的训练实践;没有考虑单词与单词之间的关系,只是进行了统计。

  与这些表示方法不同,深度学习也可以用于文本表示,还可以将其映射到一个低纬空间。其中比较典型的例子有:FastText、Word2Vec和Bert。在本章我们将介绍FastText,将在后面的内容介绍Word2Vec和Bert。

  FastText是一种典型的深度学习词向量的表示方法,它非常简单通过Embedding层将单词映射到稠密空间,然后将句子中所有的单词在Embedding空间中进行平均,进而完成分类操作。

  所以FastText是一个三层的神经网络,输入层、隐含层和输出层。

fast_text

2.10折交叉验证:10折交叉验证,每折使用9/10的数据进行训练,剩余1/10作为验证集检验模型的效果。这里需要注意每折的划分必须保证标签的分布与整个数据集的分布一致。

2.代码实践

1.安装fasttext:

第一次安装遇到了问题如:Usage of dash-separated 'description-file' will not be supported in future versions. Please use the underscore name 'description_file' instead 还有需要安装最新的C++库,通过安装Visual Studio来解决

the first time we engeging the problem such as:Usage of dash-separated 'description-file' will not be supported in future versions. Please use the underscore name 'description_file' instead And it needs the latest C++ library ,and we slove it by installing Visual Studio

2.导包测试:成功

3.代码运行及结果:准确率较高

3.作业一

阅读faxttext官方文档,调整代码及其参数

参数解释: 以下是对FastText参数的解释:

input: 训练文件的路径,是必需的参数。
lr: 学习率,默认值为0.1。学习率控制模型更新的速度。
dim: 词向量的维度,默认值为100。它定义了每个词的向量表示的长度。
ws: 上下文窗口的大小,默认值为5。在构建词向量时,考虑的相邻词的数量。
epoch: 迭代次数,默认值为5。整个训练数据集在模型训练过程中的重复次数。
minCount: 最小词频,默认值为1。忽略词频低于该阈值的词。
minCountLabel: 最小标签频率,默认值为1。忽略标签频率低于该阈值的标签。
minn: 最小字符n-gram的长度,默认值为0。用于构建字符级别的n-gram特征。
maxn: 最大字符n-gram的长度,默认值为0。用于构建字符级别的n-gram特征。
neg: 负采样的数量,默认值为5。在训练过程中每个正样本对应的负样本的数量。
wordNgrams: 词级别的n-gram的最大长度,默认值为1。用于构建词级别的n-gram特征。
loss: 损失函数,默认值为"softmax"。可选值有"ns"、"hs"、"softmax"和"ova"。
bucket: 桶的数量,默认值为2000000。用于加速模型训练过程。
thread: 线程数量,默认值为CPU的数量。用于并行训练。
lrUpdateRate: 学习率更新的频率,默认值为100。控制学习率的更新速度。
t: 采样阈值,默认值为0.0001。用于对高频词进行亚采样。
label: 标签前缀,默认值为"label"。用于指定标签的前缀。
verbose: 详细程度,默认值为2。控制训练过程中的输出信息的详细程度。
pretrainedVectors: 预训练的词向量文件路径。用于在有监督学习中使用预训练的词向量。

代码运行(在后台):可以看到,随着时间的变化,lr(learning rate)在随着decay机制下降,loss函数的结果也在下降 

可以看到对应的loss和lr变化

2.最大值:3.一些尝试:准确率都在92左右上下浮动

4.作业2

1.使用十折交叉验证去获得更好的超参数

2.贝叶斯优化器:十叉交叉验证

运行结果:一些错误并解决:贝叶斯优化器结果:实际测试:存在一定出入5.总结

本次学习了fasttext,是有CPU运行的机器学习模型,同时学习了交叉验证和贝叶斯优化器的使用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值