本文轉自知乎html
做者:蘇格蘭折耳喵算法
—————————————————————————————————————————————————————網絡
對於當下共享單車在互聯網界的火熱情況,筆者想從大數據文本挖掘的角度來作一番分析,主要是從海量的文本數據中找到有價值的訊息和觀察視角,透過文本挖掘瞭解共享單車相關的熱門話題和潛在趨勢。
Note:本文寫於2017.07,那個時候,共享單車界算是「那時花開月正圓」,局勢還湊合。機器學習
2016年末以來,國內共享單車毫無徵兆的就火爆了起來,彼時一張手機截屏躥紅網絡---在這張截圖上,24個共享單車應用的圖標霸滿了整個手機屏幕,昭示着共享單車市場搶奪大戰的激烈和殘酷。工具
再看看一組來自易觀千帆的數據:共享單車領域兩大巨頭---摩拜單車和ofo近一年的客戶端用戶增加數據,兩者的用戶增加曲線別無二致,都是一路高歌猛進,共享單車領域的火爆勢頭在短期內不會遏止。學習
同時,在全國各大城市,在街頭巷尾,在居民小區和創業園區,排滿了各類顏色的共享單車,彷彿一晚上之間,共享單車如「千樹萬樹」的梨花通常,怒放到了氾濫成災的地步了。大數據
與此同時,各類亂象也是接踵而至,觸目驚心:人爲肆意毀壞單車、車身亂貼小廣告、街上隨意停放…網站
對於當下共享單車在互聯網界的火熱情況,筆者想從大數據文本挖掘的角度來作一番分析,主要是從海量的文本數據中找到有價值的訊息和觀察視角,透過文本挖掘瞭解共享單車相關的熱門話題和潛在趨勢。翻譯
同時,筆者也但願把一些經常使用的文本挖掘方法介紹給你們,以便你們在作產品和運營的過程當中能派上用場。對於文本挖掘的相關知識在這裏就不贅述了,能夠參考筆者以前寫的兩篇文章:《數據運營|數據分析中,文本分析遠比數值型分析重要!(上)》、《在運營中,爲何文本分析遠比數值型分析重要?一個實際案例,五點分析(下)》。3d
如下是本文的行文路線圖和所涉及的文本挖掘方法。
在數據採集部分,筆者想採集跟共享單車關聯性強的文本數據,筆者沒有去寫爬蟲去爬取數據,而是用到了新浪微輿情「信息監測」中的「數據導出」功能,根據設置的關鍵詞檢索邏輯,將全部涉及到共享單車的各種媒體文章的標題、發佈時間、媒體名稱、正文及正文分詞等數據下載下來,省去文本數據的清洗和預處理過程,直接進行文本挖掘部分。
在這裏,筆者選取了市場上主流的26個共享單車品牌,再加上關鍵字「共享單車」,造成以下的關鍵詞檢索邏輯:
共享單車+(永安行 |ofo|小鳴單車 |小藍單車 |智享單車 |北京公共自行車 |騎點 |奇奇出行 |CCbike |7號電單車 |黑鳥單車 |hellobike |酷騎單車 |1步單車 |由你單車 |踏踏 |Funbike單車 |悠悠單車 |騎唄 |熊貓單車 |雲單車 |優拜單車 |電電Go單車 |小鹿單車 |小白單車 |快兔出行 |摩拜單車 | 綠遊GreenBike)
筆者選取2017-3-1~2017-6-30之間的數據,經由上面的檢索關鍵詞,能夠獲得咱們想要的數據,爲節省時間,筆者僅選取「新聞」這一信息來源的文本數據做爲分析對象,由於這部分的數據比較符合要求,包含的噪音較小。結果顯示以下:
導出數據以後,結果以下:
上面圈紅的字段是比較重要的分析維度,注意,導出的文章正文數據已經通過系統分詞和去停用詞處理,直接省去了文本預處理所要耗費的時間。
筆者再對其中的數據進行去重處理---去掉「標題/微博內容」和「正文切詞」相同的部分,再從「發佈日期」中提取出「月份」字段(用於後面的按月份分類文本),最終獲得以下結果:
由此,原先的數據量從30W+的數據量減小到88,291條數據。
在正式的文本分析以前,筆者再對上述預處理後的數據進行描述性分析,先從表層得到這些數據的直觀印象。
首先是這4個月有關共享單車的文章數量的分佈狀況,以下圖所示:
能夠看到,中間兩個月的發佈文章數量最多,3月份的數量最少。
經統計,共有4056個媒體發佈了跟共享單車有關的文章,在Excel中使用「數據分析-描述統計」對這些媒體發文數據進行描述統計,得出以下結果:
因而可知,在文章總數88,291篇、發文媒體4,056個的狀況下,平均每一個媒體的發文數約爲22篇(21.66),其中的中位數爲3篇,衆數爲1篇,最大發文數爲4,815篇。結合下面的直方圖,數量分佈呈現明顯的左偏態,主要集中在「0-300篇」這個區間內(其中絕大部分爲1篇)。
再來展現發文數量TOP30媒體的狀況。排名榜首的是突襲網,它是一個信息資訊「大雜燴」(上面有各種轉載過來的信息和琳琅滿目的廣告,並且常常不標明信息來源……),其次是騰訊新聞、搜狐媒體平臺、新浪和網易這樣的綜合信息門戶網站。有點意外的是,漢豐網(http://www.kaixian.tv)的關於共享單車的發文量居然排在第四位,它原名「開縣新聞網」,本來是一個地方性質的媒體,於2010年成立,爲把網站建設爲報紙、電視、電臺「三網合一」的網絡媒體,漢豐網全面整合開縣主流媒體資源,單從發文信息量這點來講,該網站發展着實迅猛。
對於接下來的文本數據挖掘,筆者用到的是Python,以及經常使用的數據科學分析包,如jieba、sklearn、gensim、snownlp等。
在這部分,筆者除了對上述經分詞處理的正文文本進行詞頻統計的同時,還用到了信息檢索領域裏的TF-IDF(Term Frequency–Inverse Document Frequency)關鍵詞統計方法:它用以評估一字/詞對於一個文件集或一個語料庫中的其中一份文件的重要程度,字/詞的重要性會隨着它在文件中出現的次數成正比增長,但同時會隨着它在語料庫中出現的頻率成反比降低。
因而可知,在提取某段文本的關鍵信息時,關鍵詞提取較詞頻統計更爲可取,能提取出對分析文本具備重要意義的關鍵詞。
根據上面的闡述,權重值大小與詞頻數不呈正比。對這88,291篇文章的關鍵詞提取和詞頻統計以下。
從上表能夠看出,提取出的關鍵詞跟共享單車的關聯性很明顯,大體上有以下幾類:
而後根據這些詞的詞頻大小製做出共享單車形狀的個性化詞雲,顯示以下:
關鍵詞的提取只是獲取這些文本訊息的「初の印象」,好戲還在後頭!
若是小夥伴們以爲上面筆者用關鍵詞劃分主題的作法有點扯淡,表示不服,那麼筆者將拿出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個主題的大體「內涵」:
主題對應的具體內容以下表所示:
接下來採用的是基於譜聯合聚類算法(Spectral Co-clustering algorithm)的文檔聚類,這部分的原理涉及到艱深的數學和算法知識,可能會引發小夥伴們的閱讀不適感,若是是這樣,請快速跳過,直接看後面的操做和結果。
先將待分析的文本經TF-IDF向量化構成了詞頻矩陣,而後使用Dhillon的譜聯合聚類算法(Spectral Co-clustering algorithm)進行雙重聚類(Biclusters)。所獲得的「文檔-詞彙」雙聚類(Biclusters)會把某些文檔子集中的經常使用詞彙彙集在一塊兒,由若干個關鍵詞構成某個主題。
在正式分析前,現將先前Excel中的正文分詞文本按月份進行分類,將其單獨放進所屬的月份文件夾下,操做以下圖所示。
最終的結果是,系統自動造成的幾個文檔簇羣,以及每一個簇羣下面最重要的TOP30關鍵詞。結果以下圖所示:
翻譯一下,說人話就是:
上面的每個Bicluster類別均可以看作是一個話題,這裏能夠量化的看到每一個話題在總文本中的成分佔比(經過文檔數量或關鍵詞數量來斷定),也能夠了解該話題在這4個月上的成分分佈狀況。從上圖中能夠看到,3-6月這四個月間的若干文本在Biclusters下分爲4個話題。能夠看到,基於Biclusters聚類的話題區分度明顯要好於上述的LDA主題模型,並且很神奇的是,類別相近的詞彙會自動彙集在一個話題下,橫跨這8W+個文檔!
上面四個話題能夠很容易的得出:
由上面的數據,還能夠獲得這4個話題在總文本中的佔比狀況。
從上圖能夠看出,Biclusters類別1的比重最大,也就是4個月間關於共享單車行政監管方面的文章較多,共享單車在市場運營過程當中的各種問題已然引發社會和有關部門的高度重視,各類行業亂象亟待整治和肅清。
將話題和月份進行交叉分析,能夠看到每月份下關於共享單車報道的話題構成狀況。
好比,4月份有關共享單車的各類社會問題的媒體報道較多,而6月份對共享單車行業方面的報道居多。剩下的請小夥伴們看錶說話,自行腦補,我就不廢話咯。
筆者在新浪微輿情「信息監測」上觀察到,3~6月間關於共享單車的負面信息的走勢狀況,顯然,這段時間內的負面信息一直處於一個較高的水平,平均天天好幾W的負面新聞報道量。
緊接着,筆者使用機器學習的方法,對這8W多條文章的標題進行本地的情感分析,以便得到媒體對共享單車報道的「情感傾向」的整體狀況。
這裏的「情感傾向」是以一個介於0~1之間的「情感極性值」來表徵---若是某條評論的情感極性值越接近於0,說明它的負面情感傾向越明顯,越接近於1,說明它的正面情感傾向越明顯,而取值在0.5左右徘徊,這說明這種情感傾向不明顯,是爲「中性」。筆者將情感傾向值的取值區間0~1細分爲3個子區間,分別對應不一樣的情感傾向。詳細操做請參考《用數據全方位解讀<歡樂頌2>》的2.1部分。
經整理,將其製做成直方圖的形式呈現:
從上面的直方圖能夠看出,情感極性值絕大部分在0.2上的分佈最多,而這個分值處在負面情感度的左端,很低的水平。根據上圖顯示,若是要給這段時間內共享單車的整體情感傾向評級(5個級別,「極其負面」、「比較負面」、「中性」、「比較正面」、「極其正面」)的話,那麼這個評級接近於「極其負面」。
如下是關於共享單車「三元」情感傾向的佔比狀況。
由此,再次印證了這段時間內關於共享單車的各種負面報道不斷。
不過,話又說回來,這些都是來自媒體的聲音,而媒體有喜愛報道負面訊息的傳統,缺乏了廣大網民發聲,對共享單車的輿情分析不免會存在信息失真。對此,筆者選擇了社會化媒體中具備重大影響力的新浪微博做爲分析對象,對上面的網民情緒進行總覽。關於社會化媒體方面的大數據分析,小夥伴們能夠參看《如何利用Social Listening從社會化媒體中「提煉」有價值的信息?》
下面幾張圖來自新浪微輿情的「情緒地圖」部分,數據來源爲新浪微博,爲保持時效性,時間區間爲近三日。
總體上看,與媒體的報道不一樣,絕大部分網民對於共享單車的「氾濫成災」是持「喜悅」情緒的,由上面的LDA主題模型能夠了解到,「便利出行」是造成這種讚許態度的緣由之一。
在上面的主題分析和文本聚類分析中,「融資」這個關鍵詞出現了若干次,它成功的攫取了筆者的眼球。爲此,筆者想經過「融資」這個關鍵詞去找尋與其最相關的TOP20新聞標題。在這裏,筆者不採用直接經過關鍵詞查找的方法去尋找這些相關標題,而是經過語義上的關聯性去尋找,也就是說,即便這些語句不包含「融資」二字,只要體現這個含義就是我要尋找的目標。
鑑於此,筆者採用了基於LSI(Latent Semantic Index,潛在語義索引)的方法去查找文本類似度最高的20個語句,大體上比較文本向量化後的餘弦夾角值(介於0-1之間),值越大,就表明類似度越高。詳細的原理推導,小夥伴們能夠自行Google腦補。
通過分析,找到了跟「融資」語義最相關的20條新聞。能夠看到,裏面不少沒有包含「融資」二字,但意義上都有體現資本運做,好比「共享單車又掀起新一輪‘互掐’」這條新聞,裏面有這樣的論述:「公開資料顯示,截至2017年4月,兩家公司共計融資總額超過10億美圓,其中ofo剛剛完成D3輪融資,估值超過16億美圓」,第二個「…ofo共享單車獲4.5億美圓」,也是講的融資方面的新聞,剩下的類似語句以此類推。
從這些新聞標題來看,共享單車領域的競爭不只出如今用戶獲取和地盤爭奪上,在資本領域的也是刀光劍影,撕得不可開交。
由此能夠看到,計算機經過LSI算法變得「聰明」了很多,在某種程度上,能「理解」天然語言了!
最後進行的是基於Word Embedding的Word2vec詞向量分析,將正文分詞文本直接進行詞向量模型訓練,而後用來進行關聯詞分析。
Word2vec是Word Embedding(詞嵌入)中的一種,是將文本進行詞向量處理,將這些詞彙映射到向量空間,變成一個個詞向量(WordVector),以使這些詞彙在便於被計算機識別和分析的同時,還具備語義上的關聯性,而不只僅是基於詞彙之間的共現關係。相似的例子能夠參看筆者以前的文章《用數據全方位解讀<歡樂頌2>》、《以<大秦帝國之崛起>爲例,來談大數據輿情分析和文本挖掘》。
首先,筆者對共享單車的2大巨頭---摩拜單車、ofo(小黃車)及其各自CEO的相關詞彙感興趣,分析結果以下:
從上圖能夠看出,跟「胡瑋煒」、「摩拜」最相關的詞彙是「陳偉鴻」,是中央電視臺的主持人、記者、編輯、製片人,而胡瑋煒畢業於浙江大學城市學院新聞系,在《每日經濟新聞》、《新京報》、《商業價值》等媒體作過記者和報道。也就是說,他們有着相似的從業經歷,並且在6月25日的央視《對話》節目中,做爲主持人的陳偉鴻與做爲嘉賓的胡瑋煒有了交集。排在第二位的是她的對手ofo的CEO戴威。
值得注意的是,出如今關聯詞列表中的 「(王)曉峯」,曾任職Uber上海城市總經理,是摩拜單車大股東李斌「邀請」來擔任摩拜CEO一職的,理由是媒體出身的胡瑋煒在經營層面缺少經驗,由此業界傳聞「王曉峯是資本派來的管家」不脛而走。「曉峯」後面緊隨「崑崙決」,根據語境來說,這裏的「崑崙決」應該不是實指青海衛視的那項世界職業搏擊賽事,而是用以隱喻共享單車行業競爭激烈的現狀,並且這種具備畫面感的語義聯想在媒體的報道中比較頻繁。
而ofo及其創始人最相關的詞依次是摩拜單車、胡瑋煒、(王)曉峯、CEO、小藍單車、悟空(單車)這些詞,可能是對手。也涉及了其海外擴張戰略的相關詞彙,如「全球」「海外」「投放」等。
而跟「摩拜」和「ofo」相關的詞可能是反映這個行業現階段的特徵,如「(圈地)投放」「(爭搶)用戶」、「入駐(城市、小區和國外等)」、「公司」、「數量」、「市場」和「大戰」等,還有它們的對手「小藍單車」「小鳴(單車)」、「哈羅單車」等。
加入「大戰」以後預測出來的關聯詞彙,就更能反映共享單車這個行業競爭的硝雲彈雨了,在用戶和資本領域競爭的火藥味十足。
在上面的各種文本挖掘中,反覆出現一些關鍵詞和主題,如「亂象」、「監管」、「愈演愈烈」等,給筆者一個最直觀的印象是「山雨欲來風滿樓」,共享單車這個行業已經到了「洗牌」的時間了:
通過幾個月的火熱期,共享單車領域硝煙瀰漫,競爭的號角此起彼伏,在共享單車將觸角伸向城市各個角落的同時,各種社會亂象、人性考驗和法治問題接踵而至,政府也被迫由先前的大力倡導到謹慎的規範引導,行業的集聚特徵也愈來愈明顯,或許能夠大膽猜測一下,像以前的團購、拼車和外賣這些領域,由資本推進,從「千帆競過」到「百團大戰」,再是「三足鼎立」,最後「三家歸晉」?
欲知後事如何,咱們姑且看之。