關(guān)于背單詞軟件,你不知道的驚人真相

0x00 前言

  • 你想知道背單詞軟件有大概多少人注冊(cè)第一天都沒有背完嘛?
  • 你想知道背單詞軟件這么火,這么多人在使用,真的有多少人真的在背誦嘛?

別急,Python程序員用數(shù)據(jù)給你說話.

文章目錄如下:

  • 0x00 前言
  • 0x01 問題的提出和任務(wù)的分解
  • 0x02 任務(wù)一,信息爬取
  • ox03 任務(wù)二,清理和存儲(chǔ)
  • 0x04 任務(wù)三,分析
  • 0x05 任務(wù)四,結(jié)論
  • 0x06 整個(gè)流程的不足和反思.
  • 0x07 代碼.

0x01 問題的提出和任務(wù)的分解

前兩天,就在一個(gè)雷電交加的夜晚,我躺在床上,草草的看了一篇英文文章,突然想到一個(gè)非常有意思的問題:

是不是大部分的人做事真的不能堅(jiān)持呢?比如,背單詞.

好,那我就看看到底有多少人是堅(jiān)持不下來的?

那么,我們的問題就變成了這樣子:

  • 有多少人是在堅(jiān)持或者曾經(jīng)堅(jiān)持過背單詞呢?(假設(shè)100天以上算的上是背單詞的話)
  • 有多少夢(mèng)想,毀于不能堅(jiān)持?
  • 背單詞的人們學(xué)習(xí)的量,是不是符合正太分布呢?

于是我選中了業(yè)內(nèi)的標(biāo)桿扇貝軟件作為分析的對(duì)象.抽取其中的大約1/30的用戶的公開數(shù)據(jù),也就是游客用戶都可以看得到的數(shù)據(jù),進(jìn)行抽樣調(diào)查.

調(diào)查的具體內(nèi)容如下:

  • 打卡最高/成長值最高/學(xué)習(xí)單詞數(shù)量最高
  • 平均每個(gè)人打卡次數(shù)/成長值/學(xué)習(xí)單詞數(shù)量
  • 打卡/成長值/學(xué)習(xí)單詞數(shù)量的分布(也就是已經(jīng)堅(jiān)持了多少天了)

那么,我的任務(wù)也就可以分解如下:

  • 爬取數(shù)據(jù)
    • 使用Python2的Scrapy進(jìn)行爬站
  • 清理數(shù)據(jù)
    • sql語句和pandas運(yùn)算
  • 分析數(shù)據(jù)
    • pandas + seaborn + ipython book
  • 得出結(jié)論

0x02 任務(wù)一,信息爬取,清理和存儲(chǔ)

每個(gè)用戶的信息都在這里:

http://www.shanbay.com/bdc/review/progress/2

使用beautifulsoup4 進(jìn)行解析即可.其他部分參考代碼.

扇貝的工程師反爬蟲做的還不錯(cuò),主要有兩點(diǎn):

  • 訪問數(shù)量超標(biāo),封禁IP半個(gè)小時(shí).對(duì)應(yīng)的方法就是代理服務(wù)器.(代碼中已經(jīng)刪除代理服務(wù)器,所以,如果你運(yùn)行不了代碼,那你應(yīng)該知道怎么做了.)
  • cookie如果不禁用很快就無法爬取.對(duì)應(yīng)的方法就是禁用Cookie.

0x03 任務(wù)二,清理和存儲(chǔ)

對(duì)于數(shù)據(jù)庫,使用Postgresql存儲(chǔ)就好了.也沒有什么大問題.參考代碼.有問題在評(píng)論下面問.

通常情況下在存入數(shù)據(jù)庫的時(shí)候需要進(jìn)行數(shù)據(jù)的凈化,不處理也沒有什么大問題.

0x04 任務(wù)三,分析

分析階段,使用IPython notebook. 通常情況下,我們使用的是Anaconda里面的Python3版本 .可以到這里下載,注意,mac和ubuntu下載的是命令行版本.

https://www.continuum.io/downloads

安裝完畢以后,重啟終端.環(huán)境變量生效.

#直接安裝seaborn
pip install seaborn

切換到指定目錄然后敲入命令ipython notebook打開瀏覽器進(jìn)行編輯.

至于怎么使用,請(qǐng)看代碼.

0x05 任務(wù)三,結(jié)論

在這里省去部分的分析過程直接貼出結(jié)論.

總共抓取1111111張網(wǎng)頁,成功獲取610888個(gè)用戶的信息.

于是得出結(jié)論如下:

扇貝之最:

  • 最高打卡天數(shù): chainyu 1830天
  • 最高成長值: Lerystal 成長值 28767
  • 最高單詞數(shù)量: chenmaoboss 單詞量 38313

平均到每一個(gè)人身上

  • 平均每人打卡天數(shù): 14.18,而超過成長平均值的人數(shù)為71342,占總抽樣人數(shù)的,額,11.69%
  • 平均成長值: 121.79,而超過平均成長的人數(shù)為13351,占總抽樣人數(shù)的,額,11.42%
  • 平均學(xué)習(xí)單詞數(shù)量: 78.92,而背超過平均單詞的人數(shù)為13351,占總抽樣人數(shù)的,額,2.19%(注意,真的是2%左右)

那么,我們來看看打卡,成長值,單詞數(shù)量的,分布吧.

第一個(gè),所有人的打卡數(shù)量直方圖.

這是所有人的打卡數(shù)量直方圖

簡直慘不忍睹.

第二個(gè),非零用戶的打卡數(shù)量直方圖.

非零用戶的打卡數(shù)量的直方圖

這真是一段悲傷的故事.由于堅(jiān)持不了幾天的用戶實(shí)在是太多,簡直就是反比例函數(shù)嘛,導(dǎo)致圖像嚴(yán)重畸形.那么,我們只能分段了看用戶打卡天數(shù)在020,20100,100500,5002000范圍的分布圖了.

分別如下:

0~20
20~100
100~500
500~2000

其他成長值的各種分布也是如此,在此就不貼出來了.

正如你所看到的,我再來總結(jié)一下,

在抽樣中,

  1. 英語夢(mèng)死在前0天的有416351人,占總比68.15%;
  2. 英語夢(mèng)死在前1天的有466761人,占總比76.40%;
  3. 英語夢(mèng)死在前2天的有484535人,占總比79.31%;
  4. 英語夢(mèng)死在前5天的有510230人,占總比83.52%;
  5. 英語夢(mèng)死在前10天的有531219人,占總比86.95%;
  6. 英語夢(mèng)死在前20天的有551557人,占總比90.28%;
  7. 英語夢(mèng)死在前50天的有575975人,占總比的94.28%;
  8. 英語夢(mèng)死在前100天的有590700人,占總比96.69%;
  9. 英語夢(mèng)死在前200天的有575975人,占總比98.36%;
  10. 英語夢(mèng)死在前263天的有600875人,占總比98.81%;

你可以大致感受到殘酷的現(xiàn)實(shí),幾乎沒有多少人可以堅(jiān)持到200天以后.

但是,你還需要注意到的事情是:

抽樣的來源是ID為1~1111111之間的60W成員

眾所周知的事情是:

  • 早期的用戶往往質(zhì)量相對(duì)會(huì)高一些.而且,注冊(cè)的ID越大,證明注冊(cè)時(shí)間距離現(xiàn)在越近.獲得200天的幾率也就低了不少.

那么,這樣的話,英語夢(mèng)死在200天之前的人數(shù)比例還會(huì)大上不少.

回到文章開始:

問: 背單詞軟件有大概多少人注冊(cè)第一天都沒有背完嘛?
答:68.15%

問:有多少人是在堅(jiān)持或者曾經(jīng)堅(jiān)持過背單詞呢?(假設(shè)100天以上算的上是背單詞的話)
答:保守估計(jì),不足3.4%

問:有多少夢(mèng)想,毀于不能堅(jiān)持?
答:不妨干了這碗雞湯,歌唱青春一去不復(fù)返.

問:背單詞的人們學(xué)習(xí)的量,是不是符合正太分布呢?
答:不是,簡直就是反比例函數(shù).

拋出一個(gè)結(jié)論:

以絕大部分人努力之低,根本就用不著拼天賦.

贈(zèng)給你我,共勉.

0x06 整個(gè)流程的不足和反思.

扇貝的工程師反爬蟲做的還不錯(cuò),主要有兩點(diǎn):

  • 訪問數(shù)量超標(biāo),封禁IP半個(gè)小時(shí).對(duì)應(yīng)的方法就是代理服務(wù)器.
  • cookie如果不禁用很快就無法爬取.對(duì)應(yīng)的方法就是禁用Cookie.

爬蟲框架使用Scrapy,這樣就免去了大量的繁瑣的線程調(diào)度問題,直接寫獲取信息的邏輯代碼,以及存儲(chǔ)信息的邏輯代碼就好了.

在編寫爬蟲的過程中,有一些經(jīng)驗(yàn):

  • 在爬蟲開啟以后,由于我暴力的關(guān)閉,導(dǎo)致還是有不少的item沒有完成請(qǐng)求處理和存儲(chǔ).
  • 我在處理異常的時(shí)候忘了應(yīng)當(dāng)把失敗的item存放放在文件中,方便我第二次補(bǔ)充,這樣的話就不會(huì)丟失一部分的用戶信息了.
  • 代理服務(wù)器需要自己寫腳本進(jìn)行測試,否則你可能有很多很多的請(qǐng)求都會(huì)超時(shí)(畢竟很多代理服務(wù)器還是很不靠譜的).

我的分析數(shù)據(jù)能力并不是很強(qiáng),僅僅是從CS109里面偷學(xué)了一點(diǎn)點(diǎn),然后使用Seaborn畫圖,但是這整個(gè)過程中還是覺得自己分析不過來,不是寫不出代碼,而是不清楚使用什么樣的數(shù)據(jù)模型進(jìn)行分析更好.

0x07 代碼

代碼放在了Github上面,咳咳,注意,沒有把代理服務(wù)器放進(jìn)去.如果你跑一下會(huì)發(fā)現(xiàn)只能半小時(shí)抓取300+頁面,這不是我的問題,是你沒有把代理服務(wù)器填好.代碼比較粗糙,還請(qǐng)輕拍.

代碼的地址為:

https://github.com/twocucao/DataScience/

倉庫里包含了抓取網(wǎng)站的代碼和分析數(shù)據(jù)的IPython Notebook,自己閱讀吧.

如果喜歡本文,就點(diǎn)個(gè)喜歡吧.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末柄驻,一起剝皮案震驚了整個(gè)濱河市浸须,隨后出現(xiàn)的幾起案子响蓉,更是在濱河造成了極大的恐慌檬某,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钓试,死亡現(xiàn)場離奇詭異装黑,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)亚侠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門曹体,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人硝烂,你說我怎么就攤上這事箕别。” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵串稀,是天一觀的道長除抛。 經(jīng)常有香客問我,道長母截,這世上最難降的妖魔是什么到忽? 我笑而不...
    開封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮清寇,結(jié)果婚禮上喘漏,老公的妹妹穿的比我還像新娘。我一直安慰自己华烟,他們只是感情好翩迈,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著盔夜,像睡著了一般负饲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上喂链,一...
    開封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天返十,我揣著相機(jī)與錄音,去河邊找鬼椭微。 笑死洞坑,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的赏表。 我是一名探鬼主播检诗,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼瓢剿!你這毒婦竟也來了逢慌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤间狂,失蹤者是張志新(化名)和其女友劉穎攻泼,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鉴象,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡忙菠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了纺弊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片牛欢。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖淆游,靈堂內(nèi)的尸體忽然破棺而出傍睹,到底是詐尸還是另有隱情隔盛,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布拾稳,位于F島的核電站吮炕,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏访得。R本人自食惡果不足惜龙亲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望悍抑。 院中可真熱鬧鳄炉,春花似錦、人聲如沸传趾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽浆兰。三九已至,卻和暖如春珊豹,著一層夾襖步出監(jiān)牢的瞬間簸呈,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來泰國打工店茶, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蜕便,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓贩幻,卻偏偏與公主長得像轿腺,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子丛楚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容