Python數據科學入門
Dmitry Zinoviev著
熊子源 譯
第三章 使用文本數據
第13單元 處理HTML文件
Beautifulsoup通過Python字典接口實現對HTML標簽屬性的訪問。如果標簽對象t表示超鏈接,則超鏈接目標的字符串值為t[“herf”].string。HTML標簽是不區分大小寫的。
Soup最有用的函數:
soup.find() | 找到目標的一個實例 |
---|---|
soup.find_all() | 找到目標的所有實例 |
HTML\XML之所以強大,是因為有多樣化的功能,但是這些功能未嘗不是他們的魔咒。尤其是涉及到表格數據。
第14單元 處理CSV文件
CSV寫入器提供writerow()和writerows()兩個函數:
Writerow() | 將一個字符串或數字作為一條記錄寫入文件 |
---|---|
Writerows() | 將字符串或數字列的列表作為記錄集寫入文件 |
第15單元 讀取JSON文件
JSON是一種輕量級的數據交換格式,該格式與編碼語言無關。
某些Python中的數據類型和結構(集合、復數)無法存儲在JSON中。需要在導入前將他們轉換成JSON可表示的數據類型。
數據序列化:
(序列化:將復雜數據存放在JSON文件中的操作)
dump() | 將一個用JSON表示的Python對象導出到先前打開的文本中 |
---|---|
dumps() | 導出的Python對象是文本字符串 |
loads():將有效的JSON字符串轉換為Python對象
第16單元 處理自然語言中的文本
NLTK語料庫:
NLTK語料庫都存儲在模塊nltk.corpus中。
nltk.corpus.wordnet對象:一個在線語義網絡WordNet(用詞性和序列號標記的同義詞集合)
同義詞可以具有上義詞(含義比較抽象的同義詞)和下義詞(含義比較具體的同義詞)
plaintextCorpusReader創建自己的語料庫:
fields() #返回包含在新創建的語料庫中的文件列表
raw() #返回語料庫中原始的“原始”文件
sents() #返回所有句子的列表
words() #返回所有單詞的列表
規范化
Word_tokensize(text) | 切分單詞 |
---|---|
sent_tokensize(text) | 切分句子 |
regexp_tokensize(text,re) | 基于正則表達式的分詞 |
NLTK提供了兩種基本的詞干分析器:
- Porter:比較保守
- Lancaster:比較激進,會產生更多的音型相近但含義不同的句子
Nltk.pos_tag(text) :為文本中的每一個單詞分配一個詞性標簽,其中文本是一個單詞列表。函數的返回值是一個元組列表,其中元組的第一個元素是原始單詞,第二個元素是標簽。
(
"All we can do is our best, and sometimes the best we can do is to start over."--《Avengers: Endgame》
)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
