摘 要: 為充分利用大數據時代的海量數據,提出一種基于新浪微博的公交系統(tǒng)數據采集及分析方法。通過Web Crawler從新浪微博抓取所需時空范圍內的公交微博,分析公交微博發(fā)布的時間與空間分布規(guī)律;隨后采用KMP算法統(tǒng)計并剔除冗余轉發(fā)及回復微博,提取并分析公交相關的熱點話題;基于中科院ICTCLAS算法進行中文分詞處理,刪除停用詞后統(tǒng)計詞頻,生成關鍵詞的詞云。最后通過南京市范圍內的8 913條公交微博進行實例驗證與分析,結果表明,該方法可以從海量的微博數據中提取公交相關數據并進行分析,分析數據量大且有時效性,分析結果可為公交系統(tǒng)管理的優(yōu)化與改善、公交政策的制定提供數據支撐。
關鍵詞: 微博; 公交系統(tǒng); 數據抓??; 中文分詞; 大數據
中圖分類號: TN911?34; U491.14 文獻標識碼: A 文章編號: 1004?373X(2015)09?0159?04
Abstract: To take full advantage of huge data in big data age, the method is proposed to collect and analysis data in public transport system with Sina Weibo. In the required time and space range, public transport Weibo is captured from Sina Weibo by web crawler. Time and space distribution rule which is published by public transport Weibo is analyzed, the redundant forwards and replies in Weibo are calculated and removed by KMP algorithm, and related hot topics of public transport are pulled and analyzed. ICTCLAS algorithm proposed by Chinese Academy of Sciences is applied to process Chine word segmentation, calculate word?frequency after delete the stop words, and generate keywords cloud. Verification and analysis on 8913 tips public transport Weibo in Nanjing. The results show that the related data of public transport is captured and analyzed from huge Weibo data, with the character of large data analysis and timeliness of the proposed method. The outcomes of analysis provide data support for optimization and improvement of public transport managing, and set up public transport policy.
Keywords: Weibo; public transport system; data capture; Chinese word segmentation; big data
0 引 言
現(xiàn)代交通科學是一門多學科交叉與多技術融合的科學,其研究工作很大程度上是基于對交通數據的采集與分析而逐層展開的。傳統(tǒng)的交通數據采集方法為交通調查,至今已有超過75年的歷史[1],主要是通過郵件、電話、網絡、入戶、街訪等方式展開。近年來,為了彌補傳統(tǒng)方法不能獲取乘客在交通系統(tǒng)變化下的出行行為的不足,SP+RP融合的調查方法開始在交通研究及工程實踐領域得到廣泛的運用[2]。除此之外,隨著信息、通信及視頻檢測技術的發(fā)展,包含交通流量、交通事故、公交上下客等在內的交通數據,均可以實現(xiàn)數據的自動化實時采集與傳輸,并且數據的精度高[3]。但是,上述方法由于存在著數據時效性差、人工勞動量大、數據采集設備投資大且不可移動等缺陷,限制了調查方法的應用范圍,很難應對目前巨量數據的采集存儲要求。
車聯(lián)網、大數據與云時代的到來,為交通研究提供巨量數據的同時,對數據的獲取與存儲方式也提出了更多的要求,傳統(tǒng)的交通數據采集方式亟待變革。近年來,以新浪微博為代表的社交網站的興起,產生了數以億計的交通相關數據,有待交通研究者合理的挖掘與利用。據統(tǒng)計,在2013年,新浪微博有超過1 080萬條的微博包含關鍵詞“交通事故”,而包含“公交”關鍵詞的微博數量更是超過了7 020萬條。此外,微博作為我國交管部門發(fā)布交通信息,獲取群眾意見的重要途徑,目前,已有3 699個交警部門開設了官方的微博賬號,每天實時地發(fā)表交通路況、交通政策等信息,同時,微博用戶則通過“@XX交警”的方式提交反饋。在國外,雖然已有一些利用社交網站的交通數據進行居民出行行為分析及數據采集的研究[4?6],但是相關研究少且仍處于起步階段。為充分發(fā)揮與利用大數據時代海量數據的優(yōu)勢,本文依托新浪微博,以城市公交系統(tǒng)數據采集為例,綜合運用計算機技術、信息檢索與挖掘技術,通過對公交相關微博抓取、處理并分析微博數據,通過對分析結果的可視化顯示,揭示城市公交出行的時空分布規(guī)律,探尋公交系統(tǒng)的熱點話題及問題,為政府交通部門、公交公司及交通決策者的公交系統(tǒng)的管理和政策制定提供數據支持。
1 研究框架及流程
基于新浪微博的公交數據采集及分析框架流程圖,如圖1所示??梢钥闯觯谛吕宋⒉┑墓粩祿杉饕齻€步驟:
(1) 微博數據的抓取。采用Web Crawler方法從新浪微博抓取包含所需關鍵詞的微博,并根據微博發(fā)布的時間和發(fā)布人的地點信息分析公交出行的時空分布規(guī)律。
(2) 轉發(fā)及回復微博的剔除。通過字符串匹配處理以統(tǒng)計轉發(fā)微博及回復微博的數量,將冗余的轉發(fā)及回復微博刪除,并根據轉發(fā)數量排序獲取公交系統(tǒng)的熱點話題。
(3) 中文詞處理。包含了中文分詞與停用詞刪除兩個部分。通過ICTCLAS算法對每條微博進行分詞,刪除結果中的停用詞后,統(tǒng)計并分析微博中的公交關鍵詞。
由于本文的研究并不過多涉及計算公式,所有的過程均依托新浪微博的數據,以文本檢索領域的成熟算法為主展開。本文采用的算法均為相關研究方向的成熟算法,關于算法的具體描述及代碼,限于本文的篇幅就不再詳述。Eisenhardt很早就提出可以通過案例建立理論并驗證研究的有效性[7],下文選取江蘇省南京市區(qū)域內的微博數據作為案例來具體闡述。
2 案例研究
2.1 微博抓取
微博數據的抓取主要有兩種方法。一種是通過新浪微博的官方API工具(http://open.weibo.com/),該工具可以實現(xiàn)包含微博搜索與下載、微博新建與刪除、微博用戶查詢等在內的幾乎全部的微博功能,并且不需要很強的編程能力即可直接調用。但是該方法由于主要面向微博應用的開發(fā)者,對目前的交通研究和數據采集工作而言并不方便,存在諸如使用時間、功能、請求次數等的限制。第二種方法則是利用Web Crawler(可譯成網絡爬取,或者網絡蜘蛛)技術進行公交數據的抓取。Web Crawler是一種廣泛運用于搜索引擎(如百度,Google等)的網絡文本爬取技術。通過設定特定的關鍵詞及限制條件,Crawler可以自動爬取特定的網頁并存儲所需數據[8]。此外,Web Crawler技術還具有易移植的優(yōu)點,若想將本文用于新浪微博的公交數據爬取代碼移植至騰訊微博平臺,其過程并不復雜。
本文抓取的對象為新浪微博,抓取的時間范圍為2014年1月6日—2月23日,共計49天,抓取的數據包含微博正文,微博發(fā)布時間,微博發(fā)布用戶所在地。表1所示為相關微博的基本信息。由表1可知,在選定的時間范圍內,共有包含“公交”關鍵詞的微博數超過435萬條,日平均近8.9萬條??紤]到本文研究的人力及時間所限,特別選定江蘇省南京市作為本次研究的空間范圍。最終共抓取包含“公交”和“南京”關鍵詞的微博8 913條。需要說明的是,后文的分析及處理均基于抓取的8 913條微博而展開。
2.2 轉發(fā)及回復微博剔除
如同電子郵件系統(tǒng)中的轉發(fā)與回復功能,在新浪微博中也存在轉發(fā)微博及回復微博。特別是對于一些熱門的話題,其相關微博的轉發(fā)量往往很大。通過對多余的轉發(fā)及回復微博進行剔除,一方面可以減少微博數據的數量,進而降低數據的存儲空間消耗、處理時間消耗。另一方面,通過對轉發(fā)及回復微博數量的統(tǒng)計及排序,可以揭示出當下微博用戶關心的熱點交通話題。
對于轉發(fā)及回復微博的剔除操作,主要是通過字符串匹配技術來實現(xiàn)。本文中采用該領域最為常用的KMP算法[9]實現(xiàn)該步驟。通過KMP算法對轉發(fā)及回復微博的識別,最終共剔除多余轉發(fā)微博3 972條,回復微博242條。剔除操作后,剩余包含關鍵詞的不重復微博共計4 699條。
2.3 分詞及停用詞處理
中文分詞是指將一個漢字序列分割成單獨的詞的過程。中文分詞是進行交通文本挖掘的基礎,分詞結果的好壞將對交通信息的采集與后續(xù)分析產生很大的影響。以“南京市長江大橋撞車了”這條交通路況微博為例,采用好的算法可以得到“南京市/長江大橋/撞車了”的分詞結果,而不好的算法則可能得到“南京/市長/江大橋/撞車了”的結果,這與該微博原本表達的意思區(qū)別很大。本研究采用由中國科學院開發(fā)的開源分詞算法ICTCLAS[10],對抓取的4 699條微博進行分詞處理。通過該算法對抓取微博的分詞處理,一方面可以統(tǒng)計每個詞的詞頻,進而提取出乘客最為關心的公交關鍵詞;另一方面,只有經過分詞處理的結果才能用于機器學習算法的訓練,為后續(xù)實現(xiàn)計算機自動公交微博數據采集、分類提供支撐。
在分詞操作后,還需要對分詞的結果進行一定的處理,刪除一些沒有實際意義的功能詞,如:“的”、“了”、“呢”、“嗎”、“雖然”、“而且”等。這類詞語被統(tǒng)稱為停用詞。本文采用了哈爾濱工業(yè)大學的停用詞表[11]進行結果比對,將相同的詞從分詞結果中刪除。
通過對4 699條微博進行分詞、統(tǒng)計詞頻并刪除停用詞后,共獲得不重復的詞語22 501個。
3 分 析
3.1 時空分布分析
圖2為2014年1月6日—2月23日,含有“公交”關鍵詞的所有微博在全國的空間分布圖。由圖可以清楚地看出,在北京市和廣東省發(fā)布的包含“公交”的微博數據最大,49天內用戶發(fā)布微博近80萬條。其次,是整個沿海。此外,中部的四川省也有較多的微博。其余包括西南、西北、華北和東北大部分區(qū)域的微博數量較少。這主要是由于:一方面,東南沿海區(qū)域囊括了中國科技與經濟最為發(fā)達的區(qū)域,該區(qū)域的微博總發(fā)布量高;更重要的是,該區(qū)域的居民公交出行需求大,對公交系統(tǒng)的建議及意見也多??梢哉J為采用新浪微博采集公交數據更加適用于我國經濟較發(fā)達的地區(qū),包含沿海地區(qū)及四川。
表2則反映了微博發(fā)布的時間分布信息(僅針對抓取的微博)。由表2可以清楚地看出,南京居民發(fā)布公交相關微博隨時間呈現(xiàn)出顯著的規(guī)律。從每日的時間段來看,每日的睡眠時段的微博數量最少,而7時—17時的微博最多,這與人的生活作息規(guī)律是相吻合的。而從周末至周一,每日的微博發(fā)布數量開始增長,到周二達到每周微博發(fā)布數量的最大值。隨后微博的發(fā)布數量開始下降,直至周末微博的數量最少。造成周二微博發(fā)布數量最大的原因可能有2個:若周一至周五,南京市的公交服務水平與乘客發(fā)布微博的概率不變(或變化不大),則周二南京市的公交乘客多于其他天;若周一至周五,南京市的公交乘客數量不變(或變化不大),則周二南京公交系統(tǒng)的服務水平高于(或低于)其他天。對于南京的公交公司而言,需要更加關注周二的公交系統(tǒng)與服務。
3.2 熱點話題分析
表3所示為通過微博轉發(fā)量統(tǒng)計得出的公交相關熱點話題。由表3可以看出,在研究時間內,南京市民非常關注的3條微博主要包含了交通安全、交通污染防治與新能源利用以及南京政府對公交系統(tǒng)的相關行為三個方面。而同一時期,南京公交還推出了一項鼓勵市民乘坐公交的換乘優(yōu)惠政策并發(fā)布了微博,但是該政策的相關微博轉發(fā)數量并不高。這說明了相比于公交運營政策的調整,在本文的研究期內,南京市民更加關心公交系統(tǒng)的安全及污染問題。
3.3 關鍵詞及詞云分析
表4給出了分詞操作后的高頻詞表及其對應的詞頻。表4是對轉發(fā)熱點話題的補充,可以揭示一些轉發(fā)量不大,但是被較多個體所關注的公交熱點問題。該表中的一些具有顯著交通意義的詞語已加粗顯示??梢园l(fā)現(xiàn),關鍵詞“擠”出現(xiàn)了465次,說明乘客認為南京市公交的環(huán)境較為擁擠,需要改善?!皟?yōu)惠”和“換乘”分別出現(xiàn)了465次和431次,但是相關的微博轉發(fā)數量不大,說明市民對于該優(yōu)惠政策的關注更多的是出于個體層面的討論,側面反應了對于該政策存在爭議、還未達成共識的現(xiàn)實?!澳暇┝憔嚯x”(南京本地新聞節(jié)目,以犀利報道與解決市民問題而出名)、“問”、“問題”則說明了市民通過微博對公交系統(tǒng)提出問題,并尋求解決的狀態(tài)。
4 結 論
從交通研究與數據的關系出發(fā),首先探求大數據時代社交網站中交通相關數據的數量,提出了基于新浪微博的公交數據采集及分析的框架及流程。通過Web Crawler從新浪微博抓取所需的包含公交關鍵詞的微博數據,并分析公交微博發(fā)布的時間與空間分布規(guī)律。隨后,依托經典的模式匹配算法——KMP算法,統(tǒng)計并剔除冗余轉發(fā)及回復微博,獲取微博中的公交熱點話題?;谥锌圃篒CTCLAS算法進行中文分詞處理,刪除停用詞后統(tǒng)計詞頻,生成關鍵詞的可視化詞云。最后,采用2014年1月6日—2月23日南京市區(qū)域內的8 913條公交微博,驗證了本文方法的可行性。最終的結果表明,含有大量公交數據的新浪微博可為公交部門的公交系統(tǒng)優(yōu)化與公交政策的制定提供數據層面的支撐。
參考文獻
[1] EFTHYMIOU D, ANTONIOU C. Use of social media for transport data collection [J]. Procedia?Social and Behavioral Sciences, 2012, 48: 775?785.
[2] 劉志明,鄧衛(wèi),郭唐儀.基于 RP/SP 調查的非集計模型在交通方式分擔率預測的應用[J].交通運輸工程與信息學報,2008,6(3):59?64.
[3] 劉偉銘,徐名海.基于模糊邏輯:徑向基函數網絡協(xié)作系統(tǒng)的交通事件自動檢測算法[J].土木工程學報,2004,37(3):93?98.
[4] HASAN S, ZHAN X, UKKUSURI S V. Understanding urban human activity and mobility patterns using large?scale location?based data from online social media [C]// Proceedings of the 2nd ACM SIGKDD International Workshop on Urban Computing. New York: ACM, 2013: 111?115.
[5] LIU Yu, SUI Zheng?wei, KANG Chao?gui, et al. Uncovering patterns of inter?Urban trip and spatial interaction from social media check?In data [J/OL]. [2014?12?30]. www.plosone.org/ar....0086026.
[6] COLLINS C, HASAN S, UKKUSURI S V. A novel transit rider satisfaction metric: rider sentiments measured from online social media data [J]. Journal of Public Transportation, 2013, 16(2): 21?45.
[7] EISENHARDT K M. Building theories from case study research [J]. Academy of Management Review, 1989, 14(4): 532?550.
[8] 李勇,韓亮.主題搜索引擎中網絡爬蟲的搜索策略研究[J].計算機工程與科學,2008,30(3):4?6.
[9] 魯宏偉,魏凱,孔華鋒.一種改進的KMP高效模式匹配算法[J].華中科技大學學報:自然科學版,2006,34(10):41?43.
[10] 哈工大信息檢索研究中心.哈工大信息檢索研究中心同義詞詞林擴展版[EB/OL].[2001?10?26].http://ir.hit.edu.cn/demo/ltp/Sha?ring_Plan.htm.