房金龍
關鍵詞:網絡爬蟲;自然語言處理;動態(tài)企業(yè)畫像
1緒論
企業(yè)級畫像系統(tǒng)是以企業(yè)為主體,通過對企業(yè)規(guī)模、經營范圍、公司人數、注冊資本、財務狀況、招聘狀態(tài)、最新業(yè)務動態(tài)等信息進行采集和分析,構建出不同標簽的企業(yè)畫像。企業(yè)畫像的內容可以根據具體的應用場景進行定制化設定。企業(yè)畫像的標簽可以是一個公司的發(fā)展階段(初創(chuàng)、成熟、衰退),可以通過財務狀況而判斷出來的公司的健康程度,亦可以是公司的發(fā)展方向等,從而為B2B業(yè)務的企業(yè)畫像提供更多維度來幫助企業(yè)進行精準營銷,優(yōu)化推廣渠道,以及實時調整市場戰(zhàn)略。在此,嘗試利用大數據與機器學習構建一個企業(yè)級畫像系統(tǒng),并且實現精準實時地更新企業(yè)畫像,從而可對以B2B業(yè)務為主的公司起到一定的輔助作用。
2數據采集
通過網絡爬蟲獲取實時數據。
(1)爬取網站。由于企業(yè)級畫像主要會涉及公司信息,目前提供公司信息的主要平臺有天眼查、IT桔子、企查查等,而公司的最新動態(tài)以及最新科技新聞可通過新浪網、騰訊網、今日頭條等獲取。這些網站所提供的數據都為公開數據,不存在商業(yè)敏感問題,且數據質量較高,還能夠提供較為完整的企業(yè)信息,但有些網站需付費使用,而有些網站有反爬蟲機制,因此需要結合特定的應用場景以及成本預算,選擇合適的網站進行爬取。根據數據庫的性能以及業(yè)務需求,制定合理的爬取范圍以及爬取時間,如要實現實時動態(tài)的企業(yè)畫像,則需要較高的數據庫配置以及模型訓練所需要的內存空間。
(2)爬取內容。企業(yè)畫像的維度通常包括企業(yè)行業(yè)的分類、企業(yè)所處階段(初創(chuàng)、成熟、衰退)、企業(yè)健康指數、公司主營業(yè)務變更、企業(yè)最新輿情等。其中企業(yè)行業(yè)分類通常可以按照主要經營業(yè)務、經營范圍、企業(yè)簡介等信息中的關鍵詞,例如“娛樂”“工業(yè)”“醫(yī)藥”等進行分類;企業(yè)所處階段通常需要獲取公司創(chuàng)立時間、注冊資本、財務報表等數據進行判定;企業(yè)健康指數需要通過公司招聘信息、申請專利數、盈利狀況等數據進行計算;公司主營業(yè)務變更以及最新輿情可以通過公司在新聞網站發(fā)布的官方新聞獲取。
(3)爬蟲技術。針對網絡爬蟲的工具有很多,由于Python語言優(yōu)美,代碼簡單,模塊功能強大,現已成為數據挖掘、機器學習、人工智能首選編程語言。其中Python Scrapy網絡爬蟲框架由于靈活性高、社區(qū)人數多、文檔完善,所以被廣泛使用。由于部分網站存在大量JavaScript以及加密信息的反爬蟲壁壘,可能會涉及需要更多的破解方法來進行爬蟲,可利用sele-nium+chromdriver模擬chrolTle瀏覽器獲得渲染后的頁面,再使用PyQuery對源碼進行解析,解決JavaScript加載問題,針對文字圖片加密,可以通過文字坐標解密方法進行文字解密操作,從而最終獲取文字信息,常見的反爬蟲機制及應對如下表所示。
(4)數據預處理。由于企業(yè)畫像涉及的數據維度較多,數據錯綜復雜,文本數據質量無法保證,因此需要進行數據預處理,經過數據驗證(公司信息驗證)、數據整理(公司信息整合)、數據清洗(公司信息過濾),最終整合成結構化數據入庫,具體流程如圖1所示。
3企業(yè)畫像
基于自然語言處理實現企業(yè)級畫像。自然語言處理(Nature Language Processing,NLP)是采用計算機方法來理解和使用人類語言的技術與思想,現階段,自然語言的應用場景主要包括機器翻譯、文本分類、信息抽取、語音識別、情感分析、主題分析、輿情檢測和智能問答等。其中,企業(yè)畫像主要會用到信息抽取、文本分類、輿情監(jiān)測等算法對文本進行建模,這些算法的建模流程通常為:文本分詞、去停用詞、關鍵詞提取、模型訓練。
(1)文本分詞。針對中文文本分詞,可以使用jieba分詞器,該工具是一款開源的,使用較為廣泛、分詞效果較好的分詞器。它基于前綴詞典實現高效的詞圖掃描,生成句子中漢字所有可能成詞情況所構成的有向無環(huán)圖(DAG),采用了動態(tài)規(guī)劃查找最大概率路徑,找出基于詞頻的最大切分組合,對于未登錄詞,采用了基于漢字成詞能力的HMM模型(Hidden Markov Model,隱馬爾可夫模型),使用了Viterbi算法,并且jieba支持自定義專業(yè)詞典和未登錄詞典。jieba分詞器另外一個強大的功能是,它可以提供自定義詞典的接口,用戶可以根據自己的需要,將自定義的詞典導入到jieba字典庫,之后的分詞可以根據用戶自定義的詞典進行分詞。
(2)去停用詞。分好詞后,根據具體的應用場景需要將文本中大量出現的語氣助詞、標點符號、連接詞、量詞等在文本模型訓練前從文本中過濾掉,然而有些應用場景需要保留量詞,所以并沒有一個固定的停用詞表來適用于所有場景,所有的停用詞表需要根據實際情況人為輸入。停用詞列表
(3)關鍵詞提取。經過分詞和去停用詞之后的文本,還會存在大量的低頻詞匯或非核心詞匯,這些詞通常數據量較大,不僅會帶來存儲的浪費,而且也不利于文本模型的訓練,所以通常在文本模型訓練前,需要先從文本中提取出核心關鍵詞,再對這些關鍵詞進行模型訓練。常用的關鍵詞提取算法包括TF-IDF、LDA、LSI、TextRank等。例如TF-IDF(termfrequency-inverse document frequency,詞頻-逆向文件頻率)是一種用于信息檢索與文本挖掘的常用加權技術,TF-IDF是一種統(tǒng)計模型,用以評估一個詞在一個文本中的重要程度,詞的重要性會隨著它在當前文本中出現的次數成正比增加,同時會隨著它在整個語料庫中出現的次數成反比下降,其中TF(Term-Frequency)是當前文本中的詞頻統(tǒng)計,IDF(InverseDocument Frequency)是逆向文檔頻率統(tǒng)計,具體算法公式如圖3所示。
(4)模型訓練。關于文本訓練的模型有很多,通常要根據不同的業(yè)務場景選擇合適的模型訓練,針對公司畫像可能會涉及的場景包括信息抽取、文本分類、輿情監(jiān)測等,可以用到的模型有word2vec,LSTM,TextRNN+Attention,BERT等,所有模型都會涉及詞向量的概念(Word Embedding),它是由實數組成的固定維數的向量,每個詞條對應一個詞向量,通過模型訓練(如圖4所示)最終可以將詞條映射到對應的詞向量上,然后將詞向量作為輸入變量放到不同模型比如分類模型、計算相似度模型、聚類模型中進行最終模型的訓練。
(5)企業(yè)畫像。通過網絡爬蟲獲取到的結構化數據,經過數據清洗后可直接入庫,包括公司名稱、注冊資本、注冊城市、注冊時間、財務報表、招聘人數、申請專利、員工人數等信息,并可作為企業(yè)基礎信息,用以確定企業(yè)所處階段、企業(yè)健康指數、企業(yè)標簽等。非結構化的文本數據經過模型訓練后轉化成結構化數據再入庫,如文本分類模型可以確定企業(yè)所屬行業(yè)、企業(yè)最新輿情動態(tài);關鍵詞提取模型可以構建企業(yè)新聞詞云,了解企業(yè)的最新動態(tài)和發(fā)展方向;文本相似度模型可以查詢到具有相似屬性的公司,實現企業(yè)問聚類進行群體分析;企業(yè)傾向性模型可以預測企業(yè)是否有購買某項產品或服務的可能性,從而促成精準營銷;企業(yè)生命周期管理模型可以實時洞悉企業(yè)價值(歷史價值、當前價值、潛在價值),從而挖掘出企業(yè)所有可能機會點;銷售漏斗報告模型可以實時觀察企業(yè)忠誠度以及流失度,從而調整企業(yè)營銷策略;企業(yè)產品推薦模型可以通過計算企業(yè)用戶銷售行為,從而定制化的推薦高可能性購買產品。根據以上結構化數據和模型結果最終可以得到企業(yè)級畫像。整體架構如圖5所示。
4結論
由于市場上有關企業(yè)畫像的方法論和系統(tǒng)不夠普及,導致以B2B業(yè)務為主的公司很少像B2C公司一樣對客戶進行畫像,從而進行精準營銷,為此本文基于大數據與機器學習技術構建了動態(tài)企業(yè)畫像系統(tǒng),盡管設計的系統(tǒng)已經通過驗證性實驗具備一定的可行性,但以上都只是基于PC端做的相關研究,并沒有實時收集海量數據以及大規(guī)模進行模型訓練,因此還不能確定企業(yè)畫像在海量數據上的表現,因此接下來會嘗試搭建或租用阿里云、AWS、Azure云平臺進行海量數據的驗證。