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

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