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文件系統
?