基于Python的語料庫數(shù)據(jù)處理(一)
△?是新朋友嗎?記得先點(diǎn)數(shù)據(jù)科學(xué)與人工智能關(guān)注我哦~
《Python玩語料庫數(shù)據(jù)》專欄·第1篇
文?| 段洵??
1032字 | 5?分鐘閱讀
【數(shù)據(jù)科學(xué)與人工智能】已開通Python語言社群,學(xué)用Python,玩弄數(shù)據(jù),求解問題,以創(chuàng)價值。喜樂入群者,請加微信號shushengya360,或掃描文末二維碼,添加為好友,同時附上Python-入群。有朋自遠(yuǎn)方來,不亦樂乎,并誠邀入群,以達(dá)相互學(xué)習(xí)和進(jìn)步之美好心愿。一起來學(xué)習(xí)用Python進(jìn)行語料庫數(shù)據(jù)處理吧!
一、計(jì)算二元組的共信息值
二元組(Bigram)指的是字符串中兩個相鄰的單詞組合。比如在字符串“I love Python programming”中有“I love”、“l(fā)ove Python”、“Python programming”三個二元組。我們可以通過計(jì)算二元組的共信息值來判斷該二元組內(nèi)的兩個單詞的共現(xiàn)是否具有顯著意義。二元組共信息值得計(jì)算公式如下:

其中f(x)為x詞在語料庫中出現(xiàn)的頻次,f(y)為y詞在語料庫中出現(xiàn)的頻次,f(x,y)為(x,y)在語料庫中共現(xiàn)的頻次,N為語料庫的庫容。
接下來舉一個例子加深理解:假設(shè)二元組(there,are)在某庫容為1000000詞的語料庫中共現(xiàn)的頻次為335,there在該語料庫中的頻次為2844,are在該語料庫中出現(xiàn)的頻次為4393,試計(jì)算二元組(there,are)的共信息值。

通過計(jì)算,共信息值約為4.74,說明共現(xiàn)意義顯著。
二、計(jì)算二元組的T值
除了計(jì)算共信息值以外,還可以通過計(jì)算T值來判斷該二元組內(nèi)兩個單詞的共現(xiàn)是否具有顯著意義。二元組T值計(jì)算公式為:

其中f(x)為x詞在語料庫中出現(xiàn)的頻次,f(y)為y詞在語料庫中出現(xiàn)的頻次,f(x,y)為(x,y)在語料庫中共現(xiàn)的頻次,N為語料庫的庫容。
以上一二元組為例加深理解:假設(shè)二元組(there,are)在某庫容為1000000詞的語料庫中共現(xiàn)的頻次為335,there在該語料庫中的頻次為2844,are在該語料庫中出現(xiàn)的頻次為4393,試計(jì)算二元組(there,are)的共信息值。

通過計(jì)算,T約為17.62,說明共現(xiàn)意義顯著。
三、頻次轉(zhuǎn)換
接下來我們來練習(xí)觀測頻次(observed frequency)與相對頻次(relative frequency)或標(biāo)準(zhǔn)化頻次(normalized frequency)的轉(zhuǎn)換。假設(shè)某單詞x在某語料庫中出現(xiàn)了1538次,那么1538就是該單詞在語料庫中的觀測頻次。在匯報(bào)數(shù)據(jù)時,通常匯報(bào)觀測頻次,但相對頻次或標(biāo)準(zhǔn)化頻次也可匯報(bào),即某單詞在語料庫中每1000詞次或10000詞次出現(xiàn)的頻次。假設(shè)某語料庫的庫容為2156586詞,求單詞x的相對頻次或標(biāo)準(zhǔn)化頻次。

通過計(jì)算,每1000詞次中x的相對頻次或標(biāo)準(zhǔn)化頻次約為0.71,每10000詞次中x的相對頻次或標(biāo)準(zhǔn)化頻次約為7.13。
四、結(jié)語
這是基于Python的語料庫數(shù)據(jù)處理專欄的第一期,以后也會定期更新。有在研究語料庫的朋友可以一起來學(xué)習(xí),使用Python進(jìn)行語料庫數(shù)據(jù)處理會更方便、更快捷。
公眾號推薦
數(shù)據(jù)思踐
數(shù)據(jù)思踐公眾號記錄和分享數(shù)據(jù)人思考和踐行的內(nèi)容與故事。
Python語言群
誠邀您加入
請掃下方二維碼加我為好友,備注Python-入群。有朋自遠(yuǎn)方來,不亦樂乎,并誠邀入群,以達(dá)相互學(xué)習(xí)和進(jìn)步之美好心愿。。
