一篇小总结

在实验室呆了有将近两个月了,算一下时间,真正用来科研的时间大概一个月(三月份准备了一段时间的语言考试,四月底至五月初准备了期中考试)以下是我这段时间的主要工作及一些心得~

做的任务是一个多标签分类问题,主要想进行的优化是对给定的知乎问题自动贴标签。需要根据知乎给出的问题及话题标签的绑定关系的训练数据,训练出对未标注数据自动标注的模型。

因为是第一次接触深度学习,所以先进行了一些课程的学习,主要学习了Andrew Ng机器学习相关课程的Course 1 Neural Networks and Deep Learning以及Course 5 Sequence Models 另外参考了本校自然语言处理课程和模式识别课程的课件,由于时间关系,只是粗略的看了一下,主要寻找适合解决多标签分类问题的相关信息。

总结出了一个初步的思路:


在查找资料的过程中,我发现可以借鉴知乎看山杯比赛的某些思想,我主要参考的是这篇https://blog.csdn.net/Jerr__y/article/details/77751885以及部分代码https://github.com/yongyehuang/zhihu-text-classification 

一。文本预处理

由于数据形式与词向量形式与看山杯给出的不同,所以在文本预处理阶段我主要进行了数据形式转换的工作,赛方提供了训练集和测试集两个数据集,其中训练集包含721609个问题,每个问题由问题标题和问题描述两部分组成。有部分问题缺失描述,这里用标题补全,词向量的编码为gbk编码,先转为utf-8编码再写入字典,问题的title和content用jieba分词后分别存储,通过word2id转换为与字典中序号对应的一串序列,缺失的词用-1代替。

预处理过程主要遇到的问题就是文件过大(更可能是代码太结构冗余)导致每一步都运行的很慢,尤其在进行词与序号映射时,需要用把两个文件左右拼接,用cat或者awk进行拼接的结果都不能跑出正确结果(返回NaN),最后测试发现复制粘贴的话就能正常运行,72w行的数据我复制粘贴了一整天orz。

进行完这一步已经到4/20了,为了把数据传到模型中,需要对数据进行划分和打包。由于每个问题的标题和描述长度不一,为了方便模型的训练,将所有样本的数据都截成统一的长度。每个问题的标题截取 30 个,长度少于 30 个词的数据使用‘UNKNOWN’进行填充。问题描述取150个词,少于此值的同样进行填充。这一步在服务器上进行,又花了两天解决了不会用服务器和因为库的版本问题导致跑不了代码的问题orz。最后将打包结果以npz格式存储在服务器上。

二。模型训练

第一个训练的模型是cnn,出现问题ResourseExhaustedError (see above for traceback): OOM when allocating tensor with shape…因为不熟悉tensorflow的运行,查了很多资料没有解决后,我觉得是因为我对tensorflow的运行调参等国成并不熟悉的原因,此处我先复现了一遍我参考的代码,---------运行代码中,有结果了再更新


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值