Python文本处理基础培训
课程目标:
通过学习,学员应该能够
了解基本的Python程序设计方法;
了解Python语言的大部分特性,并以此为基础能够阅读复杂的源代码;
掌握基本分析和调试Python程序的方法;
熟练使用Python进行文本处理的各种工具及技巧;
使用Python进行基础的科学计算,例如数值,统计,图表等;
了解Python标准库及第三方开源软件的概况及组织结构,为进一步的自学做铺垫。
课程大纲:
主题:Python基础
内容:
环境介绍,Python及第三方库的安装等
Python程序的基本结构
联机帮助,查阅python的官方文档
内建类型的使用:int, float, bool, None, list, tuple, string, dict, set, immutable/mutable types
顺序,分支和循环
变量,函数及其参数
使用module和package
使用标准库:math,random
练习:
给定包含整数的样本(list of ints)编写函数summary,计算样本的描述性统计量,例如最大,最小,均值,方差,中位数,众数等。
给定文本(list of strings)编写函数,并利用summary对词频,字长的分布进行分析
主题:文本的整理:输入输出,正则,格式化的文本
内容:
str type和string lib
中文:Unicode和charset
文件读写:file
文件系统的读写:os, shutil
查找文件及感兴趣的内容:find,grep,awk, sort, uniq
正则表达式:re
格式化的文本:XML,HTML(minidom, lxml, pyquery)
获取WWW上的文本:HTTP,requests,wget/curl
从pdf,word中获取文本
练习:
编写程序从一个目录中递归寻找python文件,计算所有py文件中import的package名字及次数。
给定一个中文小说(文件)编写函数,利用mmseg进行分词,找出词频最高的前50项
从百度音乐获取音乐专辑的元信息(我没有找到大量的xml用来做练习,所以使用了HTML,它们都属于标记语言,很类似,可以使用相同的工具来处理)
主题:程序设计进阶
内容:
函数高级特性:列表生成,高阶函数,生成器,迭代器,装饰器
变量的作用域:全局变化,局部变量,类变量,实例变量等
OOP:面向对象的基本知识
__magic__ methods和操作符重载
异常捕获和处理
程序调试debug
工程目录结构和代码重用,版本控制
练习:
编写函数生成一个文本的所有bigram(trigram, n-gram),显示其中频率最高的10个
主题:常用第三方库的介绍
内容:
Matplotlib作图
Dot, graphiz, networkx 图可视化
Lex&Yacc做词法语法分析
Xapian做文本检索
Numpy和scipy做矩阵运算
Pandas做数据分析
scikit-learn机器学习
py2 vs. py3
P2P
应用层组播协议
IP组播与IGMP
组播的工作原理
组播地址分配
实现组播的前提条件
组播树
核心问题
覆盖层网络的节点延时聚集
覆盖网之间(Inter-Overlay)优化
P2P支撑平台
安全
linux
SSL、TLS与WTLS
TLS(SSL)功能与作用
基于TLS的HTTP
TLS协议
TLS体系结构
RFC2246标准
Handshake Protocol
Record Protocol
TLS加密
对称加密、非对称加密及单向散列函数(简单)
DES
RSA
TLS的密钥协商处理
LINUX组成
LINUX基础管理
LINUX内核
LINUX内核组成
LINUX内核编译
LINUX文件系统