1. 程式人生 > >如何用python大資料文字挖掘來看“共享單車”的行業現狀及走勢呢?

如何用python大資料文字挖掘來看“共享單車”的行業現狀及走勢呢?

如何用python大資料文字挖掘來看“共享單車”的行業現狀及走勢呢?

2016年底以來,國內共享單車毫無徵兆的就火爆了起來,彼時一張手機截圖躥紅網路---在這張截圖上,24個共享單車應用的圖示霸滿了整個手機螢幕,昭示著共享單車市場搶奪大戰的激烈和殘酷。

如何用python大資料文字挖掘來看“共享單車”的行業現狀及走勢呢?

再看看一組來自易觀千帆的資料:共享單車領域兩大巨頭---摩拜單車和ofo近一年的客戶端使用者增長資料,二者的使用者增長曲線別無二致,都是一路高歌,共享單車領域的火爆勢頭在短時間內不會遏止。

如何用python大資料文字挖掘來看“共享單車”的行業現狀及走勢呢?

如何用python大資料文字挖掘來看“共享單車”的行業現狀及走勢呢?

同時,在全國各大城市,在街頭巷尾,在居民小區和創業園區,排滿了各種顏色的共享單車,彷彿一夜之間,共享單車如“千樹萬樹”的梨花一般,盛開到了氾濫成災的地步了。

與此同時,各種亂象也是接踵而至,觸目驚心:人為肆意毀壞單車、車身亂貼小廣告、街上隨意停放…

如何用python大資料文字挖掘來看“共享單車”的行業現狀及走勢呢?

對於當下共享單車在網際網路界的火熱狀況,筆者想從大資料文字挖掘的角度來做一番分析,主要是從海量的文字資料中找到有價值的訊息和觀察視角,透過文字挖掘瞭解共享單車相關的熱門話題潛在趨勢

同時,筆者也希望把一些常用的文字挖掘方法介紹給大家,以便大家在做產品和運營的過程中能派上用場。對於文字挖掘的相關知識在這裡就不贅述了,可以參考筆者之前寫的兩篇文章:《資料運營|資料分析中,文字分析遠比數值型分析重要!(上)》、《在運營中,為什麼文字分析遠比數值型分析重要?一個實際案例,五點分析(下)》。

以下是本文的行文路線圖和所涉及的文字挖掘方法。

如何用python大資料文字挖掘來看“共享單車”的行業現狀及走勢呢?

1 資料採集和預處理

在資料採集部分,筆者想採集跟共享單車關聯性強的文字資料,筆者沒有去寫爬蟲去爬取資料,而是用到了新浪微輿情資訊監測”中的“資料匯出”功能,根據設定的關鍵詞檢索邏輯,將所有涉及到共享單車的各類媒體文章的標題、釋出時間、媒體名稱、正文及正文分詞等資料下載下來,省去文字資料的清洗和預處理過程,直接進行文字挖掘部分。

在這裡,筆者選取了市場上主流的25個共享單車品牌,再加上關鍵字“共享單車”,形成如下關鍵詞檢索邏輯

共 享單車+(永安行 |小鳴單車 |小藍單車 |智享單車 |北京公共自行車 |騎點 |奇奇出行 |CCbike |7號電單車 |黑鳥單車 |hellobike |酷騎單車 |1步單車 |由你單車 |踏踏 |Funbike單車 |悠悠單車 |騎唄 |熊貓單車 |雲單車 |優拜單車 |電電Go單車 |小鹿單車 |小白單車 |快兔出行 |摩拜單車 | 綠遊GreenBike)

筆者選取2017-3-1~2017-6-30之間的資料,經由上面的檢索關鍵詞,可以得到我們想要的資料,為節省時間,筆者僅選取“新聞”這一資訊來源的文字資料作為分析物件,因為這部分的資料比較符合要求,包含的噪音較小。結果顯示如下:

匯出資料之後,結果如下:

上面圈紅的欄位是比較重要的分析維度,注意,匯出的文章正文資料已經經過系統分詞去停用詞處理,直接省去了文字預處理所要耗費的時間。

筆者再對其中的資料進行去重處理---去掉“標題/微博內容”和“正文切詞”相同的部分,再從“釋出日期”中提取出“月份”欄位(用於後面的按月份分類文字),最終得到如下結果:

由此,原先的資料量從30W+的資料量減少到88,291條資料。

2 常規描述性資料統計

在正式的文字分析之前,筆者再對上述預處理後的資料進行描述性分析,先從表層獲得這些資料的直觀印象。

首先是這4個月有關共享單車的文章數量的分佈情況,如下圖所示:

可以看到,中間兩個月的釋出文章數量最多,3月份的數量最少。

經統計,共有4056個媒體釋出了跟共享單車有關的文章,在Excel中使用“資料分析-描述統計”對這些媒體發文資料進行描述統計,得出如下結果:

由 此可見,在文章總數88,291篇、發文媒體4,056個的情況下,平均每個媒體的發文數約為22篇(21.66),其中的中位數為3篇,眾數為1篇,最 大發文數為4,815篇。結合下面的直方圖,數量分佈呈現明顯的左偏態,主要集中在“0-300篇”這個區間內(其中絕大部分為1篇)。

再來展示發文數量TOP30媒體的情況。排名榜首的是突襲網,它是一個資訊資訊“大雜燴”(上面有各類轉載過來的資訊和琳琅滿目的廣告,而且經常不標明資訊來源。。。),其次是騰訊新聞、搜狐媒體平臺、新浪和網易這樣的綜合資訊入口網站。有點意外的是,漢豐網(www.kaixian.tv)的關於共享單車的發文量竟然排在第四位,它原名“開縣新聞網”,原本是一個地方性質的媒體,於2010年成立,為把網站建設為報紙、電視、電臺“三網合一”的網路媒體,漢豐網全面整合開縣主流媒體資源,單從發文資訊量這點來說,該網站發展著實迅猛。

3 關鍵詞提取

在這部分,筆者除了對上述經分詞處理的正文文字進行詞頻統計的同時,還用到了資訊檢索領域裡的TF-IDF(Term Frequency–Inverse Document Frequency)關鍵詞統計方法:它用以評估一字/詞對於一個檔案集或一個語料庫中的其中一份檔案的重要程度,字/詞的重要性會隨著它在檔案中出現的次數成正比增加,但同時會隨著它在語料庫中出現的頻率成反比下降。

由此可見,在提取某段文字的關鍵資訊時,關鍵詞提取較詞頻統計更為可取,能提取出對某段文字具有重要意義的關鍵詞。

根據上面的闡述,權重值大小與詞頻數不呈正比。對這88,291篇文章的關鍵詞提取和詞頻統計如下。

從上表可以看出,提取出的關鍵詞跟共享單車的關聯性很明顯,大致上有如下幾類:

  • 共享單車的品牌及其創始人:“小黃車”(ofo)、“摩拜單車”、“永安行”、“小鳴(單車)”、“胡瑋煒”、“戴威”等。

  • 投融資、資本運作:“資本”、“投資”、“融資”、“戰略”、“資金”、“金融”、“商業”、“投資人”、“合夥人”等。

  • 政府對共享單車行業的監管:"政府"、"規範"、"監管"、"車管"、'城管“、‘機動車"、"車道”、“秩序"、"政策"等。

  • 共享單車運營相關(包括其中出現的問題):"投放"、"運營"、"停車"、"支付"、"手機"、"擁堵"、"街頭"、"開鎖"、"地鐵站"、"環境"等。

然後根據這些詞的詞頻大小製作出共享單車形狀的個性化詞雲,顯示如下:

4 LDA主題模型

如果小夥伴們覺得上面筆者用關鍵詞劃分主題的做法有點扯淡,表示不服,那麼筆者將拿出LDA主題模型來“回擊”你,操作之前,先來簡單科普下LDA主題模型到底啥玩意。

由於LDA屬於概率主題模型的子類,那就先從“概率主題模型”說起:

概率主題模型(Statistical Topic Models)是 一類從文字文件中提取潛在語義資訊的有效方法,近年來在文字挖掘領域得到了非常廣泛的應用,在文字分類、資訊檢索等相關領域取得了非常好的應用效果。概率 主題模型的基本原理認為文件是若干主題的混合概率分佈,而每個主題又是一個關於單詞的混合概率分佈,可以看作是文件的一種生成模型。在概率主題的各項方法 當中,潛在狄利克雷分配模型(LDA model)是最為有效的模型之一。

LDA 是一種典型的無監督(也就是每段文字沒有標籤,我們事先不知道里面說的是啥)、基於統計學習的詞袋模型,即它認為一篇文件是由一組詞構成的一個集合,詞與 詞之間沒有順序以及先後的關係。一篇文件可以包含多個主題,文件中每一個詞都由其中的一個主題生成。主題模型通過分析文字中的詞來發現文件中的主題、主題 之間的聯絡方式和主題的發展,通過主題模型可以使我們組織和總結無法人工標註的海量電子文件。

類似Kmeans聚類,LDA模型的主題數也需要人工來確定,筆者在嘗試了多個主題數之後,確定了最終的主題數,從下面的LDA視覺化圖形可以看出,主題數為6時,很多主題所涵蓋的關鍵詞出現嚴重的重疊,而分成10個主題後,情況得到好轉。

下 圖“列印”出這10個主題及其下轄的20個關鍵詞,以“權重值*詞彙”的累加形式呈現,各個權重值其實是該詞彙在指定主題下出現的概率大小,也可以理解為 該詞對該主題的“貢獻”程度,比如TOP0中的“孩子”前的權重係數為0.008,表明在TOP0的話題下,“孩子”被“抽中”的概率為0.008。依次 類推,各個詞語w在主題T下出現的概率分佈稱之為詞分佈,這個詞分佈也是一個多項分佈。

對 於上圖中的主題詞列表(表示與各個潛在主題最為相關的一些詞語),筆者還進行了可以點選互動的視覺化展示,可以看到每個主題下的關鍵詞在該話題下及總的文 本中的佔比情況,從中可以看出某個詞對於該主題的重要程度如何。如下圖中TOP1下的關鍵詞“摩拜”,在該主題中出現的概率最大,重要性最高,紅色條柱代 表它在TOP1下的比重,而藍色條柱的是它在整個文字(88,291篇文章)中的比重。某個詞對該主題重要性最顯著的情況是:藍色條柱更短、紅色條柱越 長,這類詞更能對主題進行區隔。

將上述TOP及其下轄的主題詞進行整理,排除主題中的“噪音”(明顯跟主題不相關的詞彙異常點),根據其中的詞彙構成(不僅僅是下列展示的20個關鍵詞,還包含後續的若干主題關鍵詞)及相關媒體報道,得出這10個主題的大致“內涵”:

主題對應的具體內容如下表所示:

5 文件聚類

接下來採用的是基於譜聯合聚類演算法(Spectral Co-clustering algorithm)的文件聚類,這部分的原理涉及到艱深的數學和演算法知識,可能會引起小夥伴們的閱讀不適感,如果是這樣,請快速跳過,直接看後面的操作和結果。

先 將待分析的文字經TF-IDF向量化構成了詞頻矩陣,然後使用Dhillon的譜聯合聚類演算法(Spectral Co-clustering algorithm)進行雙重聚類(Biclusters)。所得到的“文件-詞彙”雙聚類(Biclusters)會把某些文件子集中的常用詞彙聚集在 一起,由若干個關鍵詞構成某個主題。

在正式分析前,現將先前Excel中的正文分詞文字按月份進行分類,將其單獨放進所屬的月份資料夾下,操作如下圖所示。

最終的結果是,系統自動形成的幾個文件簇群,以及每個簇群下面最重要的TOP30關鍵詞。結果如下圖所示:

翻譯一下,說人話就是:

上 面的每一個Bicluster類別都可以看做是一個話題,從中可以看到,3-6月這四個月間的若干文字在Biclusters下分為4個話題。可以看到, 基於Biclusters聚類的話題區分度明顯要好於上述的主題模型,而且很神奇的是,類別相近的詞彙會自動劇集在一個話題下,橫跨這8W多個文字!

上面四個話題可以很容易的得出:

Biclusters類別0:共享單車相關的創投、資本和競爭相關,行業的視角

Biclusters類別1:共享單車相關的行政監管、整治,政府的視角

Biclusters類別2:共享單車運營中出現的各種社會問題,社會的視角

Biclusters類別3:共享單車方面的負面資訊,很多已經上升到違法違規,甚至觸犯刑法的層面了,法律的視角

由上面的資料,還可以得到這4個話題在總文字中的佔比情況。

從上圖可以看出,Biclusters類別1的比重最大,也就是4個月間關於共享單車行政監管方面的文章較多,共享單車在市場運營過程中的各類問題已然引起社會和有關部門的高度重視,各種行業亂象亟待整治和肅清。

將話題和月份進行交叉分析,可以看到每個月份下關於共享單車報道的話題構成情況。

比如,4月份有關共享單車的各種社會問題的媒體報道較多,而6月份對共享單車行業方面的報道居多。

6 情感分析

筆者在新浪微輿情“資訊監測”上觀察到,3~6月間關於共享單車的負面資訊的走勢情況,顯然,這段時間內的負面資訊一直處於一個較高的水平,平均每天好幾W的負面新聞報道量。

如何用python大資料文字挖掘來看“共享單車”的行業現狀及走勢呢?

緊接著,筆者使用機器學習的方法,對這8W多條文章的標題進行本地的情感分析,以便獲得媒體對共享單車報道的“情感傾向”的總體情況。

這 裡的“情感傾向”是以一個介於0~1之間的“情感極性值”來表徵---如果某條評論的情感極性值越接近於0,說明它的負面情感傾向越明顯,越接近於1,說 明它的正面情感傾向越明顯,而取值在0.5左右徘徊,這說明這種情感傾向不明顯,是為“中性”。筆者將情感傾向值的取值區間0~1細分為3個子區間,分別 對應不同的情感傾向。詳細操作請參考《用資料全方位解讀<歡樂頌2>》的2.1部分。

如何用python大資料文字挖掘來看“共享單車”的行業現狀及走勢呢?

經整理,將其製作成直方圖的形式呈現:

如何用python大資料文字挖掘來看“共享單車”的行業現狀及走勢呢?

從 上面的直方圖可以看出,情感極性值絕大部分在0.2上的分佈最多,而這個分值處在負面情感度的左端,很低的水平。根據上圖顯示,如果要給這段時間內共享單 車的總體情感傾向評級(5個級別,“極其負面”、“比較負面”、“中性”、“比較正面”、“極其正面”)的話,那麼這個評級接近於“極其負面”。

以下是關於共享單車“三元”情感傾向的佔比情況。

如何用python大資料文字挖掘來看“共享單車”的行業現狀及走勢呢?

由此,再次印證了這段時間內關於共享單車的各類負面報道不斷。

不 過,話又說回來,這些都是來自媒體的聲音,而媒體有喜好報道負面訊息的傳統,缺少了廣大網民發聲,對共享單車的輿情分析難免會存在資訊失真。對此,筆者選 擇了社會化媒體中具有重大影響力的新浪微博作為分析物件,對上面的網民情緒進行總覽。關於社會化媒體方面的大資料分析,小夥伴們可以參看《如何利用Social Listening從社會化媒體中“提煉”有價值的資訊?》

下面幾張圖來自新浪微輿情的“情緒地圖”部分,資料來源為新浪微博,為保持時效性,時間區間為近三日。

如何用python大資料文字挖掘來看“共享單車”的行業現狀及走勢呢?

整體上看,與媒體的報道不同,絕大部分網民對於共享單車的“氾濫成災”是持“喜悅”情緒的,由上面的LDA主題模型可以瞭解到,“便利出行”是形成這種讚許態度的原因之一。

7 LSI文字相似度索引

在 上面的主題分析和文字聚類分析中,“融資”這個關鍵詞出現了若干次,它成功的攫取了筆者的眼球。為此,筆者想通過“融資”這個關鍵詞去找尋與其最相關的 TOP20新聞標題。在這裡,筆者不採用直接通過關鍵詞查詢的方法去尋找這些相關標題,而是通過語義上的關聯性去尋找,也就是說,即使這些語句不包含“融 資”二字,只要體現這個含義就是我要尋找的目標。

鑑於此,筆者採用了基於LSI(Latent Semantic Index,潛在語義索引)的方法去查詢文字相似度最高的20個語句,大致上比較文字向量化後的餘弦夾角值(介於0-1之間),值越大,就代表相似度越高。詳細原理,小夥伴們可以自行Google腦補。

經過分析,找到了跟“融資”語義最相關的20條新聞。可以看到,裡面很多沒有包含“融資”二字,但意義上都有體現資本運作,比如“共享單車又掀起新一輪‘互掐’”這條新聞,裡面有這樣的論述:“公開資料顯示,截至2017年4月,兩家公司共計融資總額超過10億美元,其中ofo剛剛完成D3輪融資,估值超過16億美元”,第二個“…ofo共享單車獲4.5億美元”,也是講的融資方面的新聞,剩下的相似語句以此類推。

從這些新聞標題來看,共享單車領域的競爭不僅出現在使用者獲取和地盤爭奪上,在資本領域的爭鬥也是刀光劍影。

由此可以看到,計算機通過LSI演算法變得“聰明”了不少,在某種程度上,能“理解”自然語言了!

8 Word2vec

最後進行的是基於Word Embedding的Word2vec詞向量分析,將正文分詞文字直接進行詞向量模型訓練,然後用來進行關聯詞分析。

Word2vec 是Word Embedding(詞嵌入)中的一種,是將文字進行詞向量處理,將這些詞彙對映到向量空間,變成一個個詞向量(WordVector),以使這些詞彙在 便於被計算機識別和分析的同時,還具有語義上的關聯性,而不僅僅是基於詞彙之間的共現關係。類似的例子可以參看筆者之前的文章《用資料全方位解讀<歡樂頌2>》、《以<大秦帝國之崛起>為例,來談大資料輿情分析和文字挖掘》。

首先,筆者對共享單車的2大巨頭---摩拜單車、ofo(小黃車)及其各自CEO的相關詞彙感興趣,分析結果如下:

從上圖可以看出,跟“胡瑋煒”、“摩拜”最相關的詞彙是“陳偉鴻”,是中央電視臺的主持人、記者、編輯、製片人,而胡瑋煒畢業於浙江大學城市學院新聞系,在《每日經濟新聞》、《新京報》、《商業價值》 等媒體做過記者和報道,也就是說,他們有著類似的從業經歷,而且在6月25日的央視《對話》節目中,作為主持人的陳偉鴻與作為嘉賓的胡瑋煒有了交集。排在 第二位的是她的對手ofo的CEO戴威。值得注意的是,出現在關聯詞列表中的 “(王)曉峰”,曾任職Uber上海城市總經理,是摩拜單車大股東李斌“邀請”來擔任摩拜CEO一職的,理由是媒體出身的胡瑋煒在經營層面缺乏經驗,由此 業界傳聞“王曉峰是資本派來的管家”不脛而走。“曉峰”後面緊隨“崑崙決”,根據語境來講,這裡的“崑崙決”應該不是實指青海衛視的那項世界職業搏擊賽 事,而是用以隱喻共享單車行業競爭激烈的現狀,而且這種具有畫面感的語義聯想在媒體的報道中比較頻繁。

而ofo及其創始人最相關的詞依次是摩拜單車、胡瑋煒、(王)曉峰、CEO、小藍單車、悟空(單車)這些詞,多是對手。也涉及了其海外擴張戰略的相關詞彙,如“全球”“海外”“投放”等。

而跟“摩拜”和“ofo”相關的詞多是反映這個行業現階段的特徵,如“(圈地)投放”“(爭搶)使用者”、“入駐(城市、小區和國外等)”、“公司”、“數量”、“市場”和“大戰”等,還有它們的對手“小藍單車”“小鳴(單車)”、“哈羅單車”等。

如何用python大資料文字挖掘來看“共享單車”的行業現狀及走勢呢?

原始碼 群 960410445  

加入“大戰”之後預測出來的關聯詞彙,就更能反映共享單車這個行業競爭的硝雲彈雨了,在使用者和資本領域競爭的火藥味十足。

結語

在上面的各類文字挖掘中,反覆出現一些關鍵詞和主題,如“亂象”“監管”“愈演愈烈”等,給筆者一個最直觀的印象是“山雨欲來風滿樓”,共享單車這個行業已經到了“洗牌”的時間了:

經 過幾個月的火熱期,共享單車領域硝煙瀰漫,競爭的號角此起彼伏,在共享單車將觸角伸向城市各個角落的同時,各類社會亂象、人性考驗和法治問題接踵而至,政 府也被迫由先前的大力倡導到謹慎的規範引導,行業的集聚特徵也越來越明顯,或許可以大膽猜想一下,像之前的團購、拼車和外賣這些領域,由資本推動,從“千 團大戰”到“百團大戰”,再是“三足鼎立”,最後“三家歸晉”?

欲知後事如何,我們姑且看之。