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