黃莉
[摘 要]NLP指自然語言處理,將人類特有的語言轉為結構化數據,是數據挖掘中人機交互的基礎。本文以公眾人物的公開文本信息為數據集,基于NLP自然語言處理的詞向量及余弦相似度,主要對相近職業、月亮星座和地理位置3個維度展開淺層分析。為初步建立畫像特征,挖掘步驟分為數據探索、爬蟲采集和數據預處理,數據量級、顆粒度、泛化和評估仍有待優化。
[關鍵詞]數據;維度;NLP
doi:10.3969/j.issn.1673 - 0194.2020.08.087
[中圖分類號]TP311.10[文獻標識碼]A[文章編號]1673-0194(2020)08-0-02
1? ? ?數據探索
數據探索包含數據質量分析和數據特征分析,是為了進一步數據采集、預處理和建模,通過檢驗數據集的數據質量、繪制圖表、計算某些特征量等手段,對樣本數據集的結構和規律進行分析的過程。數據質量分析需要準備可信的數據,是數據挖掘的重要基礎,直接影響模型和結論的有效性和準確性。需要觀測收集樣本數據源的數量和質量,檢查原始數據狀態,如缺失值、異常值、非一致值、重復值等數據,分析比較明顯的規律和趨勢、各因素之間的關聯性,滿足模型構建的要求。數據特征分析一般是分布分析和統計量分析。分布分析能揭示數據的分布特征和分布類型。通過定量數據分布分析,了解其分布形式是對稱的還是非對稱的,發現某些特大或特小的離群值;通過定性數據分布分析,根據定性變量的類型來分組。統計量分析則有集中和離中趨勢度量、趨勢度量、周期性分析、貢獻度分析、相關性分析。截至2017年,維基百科的文本集字段有文章編碼、標題、章節標題、章節文本。公眾人物相關文本集的存儲結構以姓名為標題,章節標題一般包含簡介、早期、家庭、教育或生涯,因此本文所需的數據主要采集于早期。
2? ? ?數據采集
元素采集的規則是,通過姓名實體識別,初步采樣英文人名名單樣本框。以姓名為索引,從維基百科英文網簡單隨機抽樣,按出生日期截取初步樣本數據集。其中出生日期的時間序列跨度主要為10年(1900-1910年);公眾人物樣本單元數為310;維度簡化至12個,分別為:姓名、職業、行業代碼、月亮星座、星座屬性、出生日期、死亡日期、年齡、所屬洲、原國籍、國籍和性別。職業元素結合國際勞動管理組織2008年發布的職業國際標準分類ISCO-08確定,一人多職者,由該職的突出性確定入樣權重。國籍的元素則根據國際標準化組織管理的國家代碼ISO 3166-1-2006進行數據變換。這里月亮星座的算法是b=int(a-0.2+0.4n),a和b分別是太陽星座和月亮星座的編碼,n是農歷生日的“日”部分。
3? ? ?數據預處理
數據預處理主要包括數據清洗、數據集成、數據變換和數據規約。
3.1? ?數據清洗
數據清洗主要是刪除原始數據集中的無關數據、重復數據,平滑噪聲數據,過濾與挖掘主題無關的數據,處理缺失值、異常值等。采取刪除記錄、數據插補來解決缺失值的問題。通過刪除含有異常值的單元來保全完整度是最有效的,但減少歷史數據會造成資源大量浪費和信息丟失。數據集越小,對分析結果的客觀性和正確性影響越大。
3.2? ?數據集成
數據挖掘需要的數據往往分布在不同的數據源中,數據集成就是將多個數據源合并存放在一個一致的數據存儲(如數據倉庫)的過程。要考慮實體識別和屬性冗余問題,從而將源數據在最低層上加以轉換、提煉和集成。實體識別指篩選并整合與挖掘有關實體,如識別同名異義、異名同義、單位不統一,用相關分析檢測并刪除冗余屬性(重復或近義)。
3.3? ?數據變換
數據變換主要是對數據進行規范化處理,如平方、開方、取對數、差分運算等,將數據轉換成便于機器運算的形式,以適用于挖掘任務及算法的需要。變換常用來將不具有正態分布的數據變換成具有正態分布的數據。維度內區間跨度差別很大,可使用對數變換對其進行壓縮。在時間序列分析中,有時簡單的對數變換或者差分運算可以將非平穩序列轉換成平穩序列。
數據規范化(歸一化)處理是數據挖掘的基礎步驟之一。基于距離的挖掘算法有離差標準化、標準差標準化、小數定標規范化、連續屬性離散化。不同評價指標往往具有不同的量綱,數值間的差別可能很大,不進行處理可能會影響數據分析結果。為了消除指標之間的量綱和取值范圍差異的影響,需要進行標準化處理,將數據按照比例進行縮放,使之落入一個特定區域,便于進行綜合分析。
3.4? ?數據規約
在大規模復雜的數據挖掘生產環境中,往往需要優化數據集、泛化模型、提高運算效率、降低存儲成本。數據規約分為屬性規約和數值規約。屬性規約是在盡可能地接近原數據集的概率分布下,找出最小的屬性子集,通過屬性合并來創建新屬性維數,或者直接刪除不相關的屬性(維)來減少數據維數。數值規約指在盡量少丟失信息下用較小的數值表示元數據以減少數據量和運算量,包括有參數和無參數兩類方法。有參數方法是使用一個模型來評估數據,如參數回歸。無參數方法則使用實際值,如直方圖、聚類、抽樣。
為確保樣本信息的真實性,這里的訓練集經過規約刪除與本次挖掘主題無關的屬性和數值,不處理部分缺失值,插補出生日期和死亡日期數據,如月日不詳,取首月首日,規范國籍和性別(0為女,1為男)。樣本容量310,其中月亮星座分布的標準差約為2.67。各月亮星座下的大類行業科研、軍政、經濟、藝術、體育的數據規約采用(d-avg)/std,d是人數,avg是平均值,std是標準差(詳情見https://github.com/SpencerHale/w2v.git)。當某個星座在離開平均數1個標準差附近,計±0.5分,表示“人數接近且高于平均水平”或“人數接近但低于平均水平”。當明顯超過1個標準差,計±1分,表示“人數比較多”或“人數非常少”。當超過2個標準差,計±2分,表示“人數非常多”或“人數非常少”。在1個標準差以內,計0分,表示“人數處于平均水平”。四象月亮星座在大類行業和地理位置中的分布比較相似,在藝術上和歐洲的人數都明顯超過1個標準差,人數都比較多。當細分月亮星座為水瓶時,在大類行業為軍政和體育上的人數明顯超過1個標準差,人數比較多;而金牛則在經濟上超過2個標準差,人數非常多。原國籍占比的前三位是美、英、德,分別約為35%、14%、9%。年齡整體的平均值約為75,其中科研行業的平均年齡比較大,經濟行業的平均年齡比較小;藝術行業的年齡極差接近且高于平均水平,體育行業的年齡極差比較小。男女性別比約為4.6∶1(男255,女55)。
4? ? ?數據挖掘
根據挖掘目標和數據形式可以建立分類與預測、聚類分析、關聯規則、時序模式和偏差檢測等模型,結合實際問題選擇機器學習算法模型。機器學習是通過訓練數據集,找到特征和標簽間的關系,使機器自動分析未知的數據標簽等,并迭代優化。按解決問題的屬性來劃分,分為分類學習算法模型、聚類學習算法模型、回歸學習算法模型、推薦學習算法模型;按訓練數據集特征和標簽的有無來劃分則包括監督學習算法模型、半監督學習算法模型、無監督學習算法模型。如已知特征、有標簽,屬于監督分類;未知特征、無標簽,屬于無監督聚類;已知特征、部分有標簽,屬于半監督分類;未知特征、部分有標簽,屬于半監督聚類。實際情況下,無標簽數據量一般遠遠大于有標簽數據量,通過一些有標簽數據的局部特征,無標簽數據的整體分布,也可以迭代訓練模型。
本文選擇了谷歌開源的無監督學習聚類算法模型word2vec。封裝接口則調用開源第三方庫gensim.scripts.glove2word2vec。原理是將詞映射到N維的向量空間,然后基于這個詞向量進行聚類,計算近似詞以及分析詞性等。語料直接加載了100維GloVe詞向量的文本文件,以引入外部語義信息,訓練平均耗時約35秒。GloVe詞向量是斯坦福基于共現矩陣分解預訓練
60億詞的詞向量。這里基于余弦相似度計算職業在語義上的近似關系,通過PCA主成分分析對特征維度進行降維,并將這些向量形成的幾何嵌入空間。將一個詞用特定的向量來表示,當向量之間的余弦相似度越高則距離越近,在二維空間里,詞之間的語義關系也越近。例如,“physicist”與“mathematician”
“scientist”“chemist”的距離分別為0.17、0.21、0.22,證明在二維空間里,余弦相似度比較高,語義上的職業相似度也高。當進一步細分職業為數學家時,月亮星座為火象和風象的人數接近且高于平均水平,地理位置為歐洲的人數非常多。但物理學家為風象的人數比較多,土象的人數接近但低于平均水平;科學家和化學家則水象比較多;而且地理位置為歐洲的人數都比較多,亞洲的人數接近但低于平均水平。
5? ? ?結 語
本文還需要優化之處:增加樣本數據量;細化相關維度的顆粒度,如增加父親職業、母親職業、啟蒙年齡、教育程度、死亡原因等;訓練其他語言版本,泛化模型,建立畫像。
主要參考文獻
[1]張良均,王路.Python數據分析與挖掘實戰[M].北京:機械工業出版社,2015.
[2]O Levy,Y Goldberg,I Dagan,Improving Distributional Similarity with Lessons Learned from Word Embeddings[J].Transactions of the Association for Computational Linguistics,2015:211-225.