徐亞鳳 牡丹江大學
隨著以博客、社交網絡、基于位置服務為代表的新型發(fā)布方式的不斷涌現(xiàn),以及互聯(lián)網、云計算、移動和物聯(lián)網的迅猛發(fā)展,數(shù)據(jù)正在以前所未有的速度不斷增長和累積,大數(shù)據(jù)時代已經到來。
移動設備、RFID、無線傳感器等無處不在,隨著數(shù)以億計用戶的互聯(lián)網服務中產生巨量的交互,它們每時每刻都在產生大量的數(shù)據(jù)。要處理的數(shù)據(jù)量之大,數(shù)據(jù)的增長速度之快,對數(shù)據(jù)處理的實時性、有效性提出了更高的要求,傳統(tǒng)的數(shù)據(jù)處理技術手段無法滿足要求,新的大數(shù)據(jù)技術如分布式緩存使用、基于MPP的分布式數(shù)據(jù)庫、分布式文件系統(tǒng)、各種NoSQL分布式存儲方案等不斷涌現(xiàn)。
Hadoop是由Apache基金會開發(fā)的分布式存儲與計算框架,Hadoop由兩個重要的模塊組成,一個是Hadoop分布式文件系統(tǒng)HDFS,另一個是分布式計算系統(tǒng)Map Reduce。目前,由于Hadoop具有硬件成本低廉、軟件體系開源、較好的靈活性、允許用戶進行代碼修改,同時能支持海量數(shù)據(jù)存儲和計算任務等特點,Hadoop被很多大的互聯(lián)網公司所追捧,百度的搜索日志分析,騰訊、淘寶和支付寶的數(shù)據(jù)倉庫都可以看到Hadoop的身影。
在微博營銷推廣的需求不斷上漲的趨勢下,微博營銷也正在趨于多元化,微博的營銷價值日益凸顯。隨著大數(shù)據(jù)技術的不斷發(fā)展,精準營銷在互聯(lián)網廣告領域中的應用變得如火如荼,較傳統(tǒng)的廣告而言,廣告模式發(fā)生了很大的變化。通過智能的大數(shù)據(jù)分析,如用戶喜好、人群地域、關注習慣等多個維度建立目標用戶畫像,提升觸達目標受眾的精準度。制定多元化微博推廣策略,對不同的微博推廣資源進行有效組合,從而提升品牌的微博營銷效果,實現(xiàn)推廣目標最大化。
在海量的微博下,我們需要計算出每篇微博里的熱點詞,然后根據(jù)熱點詞的權重數(shù)據(jù)進行廣告投放,以達到智能廣告營銷的目的??梢酝ㄟ^對每條微博進行中文分詞,得到該微博的所有詞條,從而對每條微博的分詞結果中的所有詞條進行計數(shù)統(tǒng)計,然后使用公式W=TF+log(N/DF)計算微博中詞條的權重(公式中W代表該詞的權重,TF表示該詞在微博中出現(xiàn)的次數(shù),N是所有微博條數(shù),DF是所有微博中出現(xiàn)該詞的條數(shù)),以此實現(xiàn)數(shù)學建模。
通過數(shù)學建模,可以計算出每篇微博中熱點詞條,權重越大,說明該詞條越能代表該博文的主要內容。從而可以推送相應的廣告至相應的詞條。如某篇文章中的“打車”是主要詞條,就可以在該篇博文中投放打車軟件的廣告了。
這 里 應 用 了 TF-IDF(term frequency-inverse document frequency)模型的思想,這種模型思想主要用于信息檢索與數(shù)據(jù)挖掘的常用加權技術。TF是指詞頻(Term Trequency),TDF是指逆文本頻率指數(shù)(Inverse Document Frequency)。
TF-IDF作為一種用來評估一個詞條在一個文件集或一個語料庫中的重要程度的統(tǒng)計方法,當詞條在文件中出現(xiàn)的次數(shù)不斷增加,詞條的重要性也隨之呈正比增加,但也會隨著它在語料庫中出現(xiàn)的頻率成反比下降。目前,TF-IDF加權的各種形式常被搜索引擎應用,作為文件與用戶查詢之間相關程度的度量或評級。除TF-IDF外,互聯(lián)網上的搜索引擎還會使用基于鏈接分析的評級方法,以確定文件在搜尋結果中出現(xiàn)的順序。
在實際項目中,我們更建議計算所有微博中所有詞組在該微博中的權重。因為如果這次推送的是打車廣告,只計算打車的權重就好了,但如果同時又要進行豆?jié){機廣告,重新計算一次豆?jié){的權重就不是合適的做法了。一次將所有詞的權重計算出來,根據(jù)需要提取即可。當然,具體解決方案還應取決于項目的具體業(yè)務情況。
下面,以1500篇左右的微博為例,分析程序實現(xiàn)過程。根據(jù)詞語權重計算公式,要計算W,首先要計算出TF、N和DF的值。
現(xiàn)假設微博的一行數(shù)據(jù)即為一個微博的帖子,則根據(jù)MapReduce的工作原理,通過讀取樣本中的一行微博數(shù)據(jù),對微博內容進行分詞,得到許多需要計算權重的詞條,進而統(tǒng)計出每一詞條在該微博中出現(xiàn)的次數(shù)。
Mapper的輸出value可以確定為1,key如果是詞本身的話,則到Reduce方法中計算的將會是所有微博中該詞出現(xiàn)的次數(shù),所有,key除了詞還要帶上一個唯一的微博Id標識,這樣,相同微博中的相同詞會被送到相同的Reduce中。在Mapper做分詞和輸出的時候,也可以順便將N計算出來,每次輸入都是一條微博,把key固定,value為1,Reduce中直接累加就可以得到N的值。
對于DF,直接從原始的微博數(shù)據(jù)中計算每個詞的DF比較復雜,我們可以在TF的輸出結果的基礎上進行DF的計算。
最 后, 我 們 采 用DistributedCache, 將N、NF的 值 從DistributedCache中取出來,存入兩個Map集合中,讀取TF結果文件對每個詞進行建設輸出即可得到結果。
5.1 求解中文分詞和計算N
(1)Mapper類實現(xiàn)
(2)Reducer類實現(xiàn)
5.2 TF求解。在中文分詞的計算結果的基礎上,對博文中的詞條進行計
(1)Mapper類實現(xiàn)
(2)Reducer類實現(xiàn)
(1)Mapper類實現(xiàn)
(2)Reducer類實現(xiàn)
以上采用TF-IDF算法模型,對微博中的熱點詞頻及詞重進行了統(tǒng)計計算,在實際應用中,我們可以根據(jù)市場應用人群的特點及社會政治因素等多方面的綜合考量,進而進行廣告的投放與營銷。