/team-learning

Datawhale组队学习计划与课程内容

Primary LanguageJupyter Notebook

Datawhale 组队学习

第15期 Datawhale 组队学习活动马上就要开始啦!

本次组队学习的内容为:Python编程语言自然语言处理实践(新闻文本分类)

大家可以根据我们的开源内容进行自学,也可以加入我们的组队学习一起来学。


基本信息

  • 内容设计:徐韬、马燕鹏
  • 教辅人员:马燕鹏、徐韬、何煊、韩绘锦、任帅
  • 学习周期:17天 2-3h/天
  • 学习形式:理论学习 + 练习
  • 人群定位:Python小白,对Python语言有兴趣。
  • 先修内容:无
  • 难度系数:低

学习目标

  • 了解Python的基础数据类型与运算。
  • 掌握Python基础的语言结构与异常判断。
  • 掌握列表、元组、字典和字符串等Python数据类型。
  • 理解Python函数的概念与相关用法。
  • 掌握Python类与对象用法,理解Python面向对象的特性。
  • 了解Python处理文件与操作文件系统过程。

任务安排

Task01: 变量、运算符、数据类型及位运算(2天)

理论部分

  • 了解python中基本的变量类型,运算符,及数据类型。
  • 了解python的位运算。

练习部分

  • 课后思考题
  • leetcode练习题

Task02:条件循环结构(1天)

理论部分

  • 掌握基本的条件,循环语句的使用。
  • 掌握assert断言break,continue,pass,等语句的使用。
  • 熟悉推导式的用法。

练习部分

  • 课后思考题
  • 龟兔赛跑游戏

Task03:异常处理(1天)

理论部分

  • 了解可能会出现的各类异常。
  • 熟练掌握try_except_finally结构,使用raise语句抛出指定的异常。

练习部分

  • 猜字游戏

Task04:列表(1天)

理论部分

  • 掌握列表的定义与创建。
  • 熟练添加、删除和获取列表中的元素。
  • 了解列表的常用操作符及其他方法。

练习部分

  • 列表操作练习
  • 课后思考题
  • leetcode练习题

Task05:元组(1天)

理论部分

  • 掌握元组定义,熟悉创建和访问元组。
  • 熟悉更新和删除元组。
  • 了解元组相关的操作符和内置方法,以及解压元组。

练习部分

  • 课后思考题
  • 知识扩展

Task06:字符串(1天)

理论部分

  • 掌握字符串的定义。
  • 熟悉字符串的切片和拼接。
  • 掌握字符串的常用内置方法和格式化。

练习部分

  • 字符串操作练习
  • 实现isdigit函数
  • leetcode练习题

Task07:字典(1天)

理论部分

  • 掌握字典的定义,创建和访问字典。
  • 熟悉字典的可变类型和不可变类型。
  • 了解字典的内置方法。

练习部分

  • 字典操作练习
  • 编程练习

Task08:集合、序列(1天)

理论部分

  • 掌握集合的创建与访问,熟悉集合的内置方法。
  • 熟悉集合的转换,了解不可变集合。
  • 熟悉针对序列的内置函数。

练习部分

  • 集合操作练习
  • 序列内置函数练习

Task09:函数与Lambda表达式(2天)

理论部分

  • 掌握函数的定义与调用,熟悉函数灵活的参数形态。
  • 熟悉变量的作用域和递归函数。
  • 熟悉匿名函数和定义与应用。

练习部分

  • 课后思考题
  • lambda表达式应用
  • 汉诺塔游戏

Task10:类、对象与魔法方法(3天)

理论部分

  • 掌握类、对象和实例对象之间的关系,熟悉类的继承与多态。
  • 理解self的含义,熟悉类的公有和私有,了解绑定的概念和相关内置函数。
  • 了解Python的魔法方法,理解Python面向对象特性的基础。

练习部分

  • 课后思考题
  • 编程实践

Task11:模块与datetime模块(2天)

理论部分

  • 了解python的模块定义,理解python的命名空间。
  • 熟悉python模块的引用方法与搜索路径。
  • 了解并应用datetime模块。

练习部分

  • 课后思考题
  • 编程实践

Task12: 文件与文件系统(1天)

理论部分

  • 掌握打开文件的open函数,熟练文件对象的操作方法与with语句使用方法。
  • 掌握OS模块关于文件/目录常用的函数。
  • 了解Python的序列化与反序列化,熟悉pickle模块。

练习部分

  • 课后思考题
  • 编程实践

参考资料


基本信息

  • 内容设计:刘羽中、张帆、陈海顺、但扬杰、王翔
  • 教辅人员:周郴莲、胡明豪、朱鑫海
  • 学习周期:15天 2-3h/天
  • 学习形式:理论学习 + 练习
  • 人群定位:有一定的Python和nlp基础,对参加天池新人赛有兴趣。
  • 先修内容:Python编程语言自然语言处理入门
  • 难度系数:中

任务安排

Task1 赛题理解(1天)

学习目标

  • 理解赛题背景与赛题数据
  • 完成赛题报名和数据下载,理解赛题的解题思路

本章作业

Task2 数据读取与数据分析(1天)

学习目标

  • 学习使用Pandas读取赛题数据。
  • 分析赛题数据的分布规律。

本章作业

  • 假设字符3750,字符900和字符648是句子的标点符号,请分析赛题每篇新闻平均由多少个句子构成?
  • 统计每类新闻中出现次数对多的字符。

Task3 基于机器学习的文本分类(3天)

学习目标

  • 学会TF-IDF的原理和使用。
  • 使用sklearn的机器学习模型完成文本分类。

本章作业

  • 尝试改变TF-IDF的参数,并验证精度。
  • 尝试使用其他机器学习模型,完成训练和验证。

Task4 基于深度学习的文本分类1(2天)

学习目标

  • 学习FastText的使用和基础原理。
  • 学会使用验证集进行调参。

本章作业

  • 阅读FastText的文档,尝试修改参数,得到更好的分数。
  • 基于验证集的结果调整超参数,使得模型性能更优。

Task5 基于深度学习的文本分类2(4天)

学习目标

  • 学习Word2Vec的使用和基础原理。
  • 学习使用TextCNN、TextRNN进行文本表示。
  • 学习使用HAN网络结构完成文本分类。

本章作业

  • 尝试通过Word2Vec训练词向量。
  • 尝试使用TextCNN、TextRNN完成文本表示。
  • 尝试使用HAN进行文本分类。

Task6 基于深度学习的文本分类3(4天)

学习目标

  • 了解Transformer的原理和基于预训练语言模型(Bert)的词表示。
  • 学会Bert的使用,具体包括pretrain和finetune。

本章作业

  • 完成Bert Pretrain和Finetune的过程。
  • 阅读Bert官方文档,找到相关参数进行调参。