高攀,李飛,彭遠豪,張璨輝,彭海君
(國網湖南省電力有限公司供電服務中心(計量中心),湖南 長沙 410116)
客戶分類是營銷差異化、精準化的基礎,是提高供電企業電力營銷水平的有效措施。電力客戶分類可以提高電力企業的服務水平及服務質量,提升用戶的滿意度[1]。傳統的電力客戶分類主要是基于用戶電力屬性,按照電壓等級、用電類別、行業類別等進行分類;或者是從電網安全管理視角將用電客戶分成重要客戶、一般客戶,以及高危客戶。這些電力客戶分類方法比較籠統,分類手段也比較簡單,主要是因電力公司管理需要而設置的,未切實體現出以客戶本質內涵特征,不利于發現用戶的特殊需求,不利于更深層次服務目標客戶。
隨著近年來大數據技術的應用和成熟,電力客戶分類方法逐步數據化、自動化、智能化。例如冀明等圍繞客戶各項經濟指標構建指標體系,首次提出基于聚類分析模型實現客戶分類的想法[2]。丁浩則基于C4.5算法分類器,根據客戶的信用指標完成對客戶的信用評級,實現電力客戶在信用角度的分類[3]。皇甫漢聰等人基于熵權法與改進的PCA聚類算法實現在電力客戶價值方面的分類[4]。以上分類算法都離不開電力系統中的客戶檔案信息、用電數據及其他外部數據,但目前電力數據庫仍然存在數據缺失、數據錯誤等問題,導致對客戶進一步深入分析時會受到數據質量的諸多限制。現有的方法大多需要多維且完善的客戶信息數據,目前客戶信息存在缺失、錯誤、冗余等問題,因此本文提出一種基于jieba分詞的電力客戶精準分類方法,將電力客戶的非結構化文本數據,例如客戶名稱中隱含的更多用戶細分信息加以利用,實現對客戶的高效、精準分類。
本文提出的方法僅需提取客戶名稱,利用中文分詞技術挖掘其中隱含的分類信息,提高了分類方法對數據的容錯率,同時也能滿足當前客戶差異化服務的需求。
電力客戶的非結構化文本數據中蘊含著很多客戶特征信息,且有一定規律性,如能夠將這些特征信息提取出來,可為客戶分類提供更多特征標簽。如“XXX縣機關事務中心”(字母為隱化處理,下同)這一用戶名稱,可以根據“機關事務中心”這個關鍵詞確認該客戶屬于社會類客戶中的行政職能機構,根據“縣”這個關鍵詞定位屬于縣級機構。如“XX市廣播電視臺”可提取關鍵詞“電視臺”或者“廣播電視臺”確認客戶的分類。這些對關鍵詞精準高效地提取和分析技術就是中文分詞技術。
中文分詞作為實現機器處理中文的一項基礎任務,是近幾年的研究熱點之一,也是自然語言處理任務的基礎步驟之一[5]。中文分詞通過各類方法實現文本字詞的明確劃分及詞性標注等功能,常見的搜索引擎就是應用場景,還有機器翻譯、語音合成、自動分類、自動摘要、自動校對均需使用到中文分詞技術[6]。
現有的中文分詞方法主要分為三大類,分別是基于字符串匹配的分詞方法、基于理解的分詞方法和基于統計的分詞方法。基于字符串匹配的分詞方法又稱機械分詞方法,是按照一定的策略將需要分析的中文字串與一個“充分大的”機器詞典中的詞條進行匹配,若在詞典中找到某個字符串,則匹配成功(識別出一個詞)。該類算法的優點是速度快、實現簡單,但對歧義和未登錄詞處理效果不佳。基于理解的分詞方法是通過計算機模擬人對句子的理解,達到識別詞的效果,基本思想就是在分詞的同時進行句法、語義分析,利用句法信息和語義信息來處理歧義現象。基于統計的分詞方法是在給定大量已經分詞的文本的前提下,利用統計機器學習模型學習詞語切分的規律(稱為訓練),從而實現對未知文本的切分,常見的統計方法有N元文法模型、隱馬爾可夫模型、最大熵模型、條件隨機場模型等。
Python的jieba分詞,分詞功能強大且適用面較廣,可以進行簡單分詞、并行分詞、命令行分詞[7],算法是基于隱馬爾可夫模型[8],屬于統計模型方法。
以“XX省地質測試研究院(國土資源部礦產資源監督檢測中心)”為例,分析jieba分詞的3種模式分詞[9]。
精確模式:嘗試最精確地切割句子,適合文本分析。其精確模式分詞結果為:XX省/地質/測試/研究院/(/國土資源部/礦產資源/監督/檢測/中心/)。
完整模式:在句子中掃描所有可能變成詞的詞語,速度很快,但無法解決歧義。其完整模式分詞結果為:XX/XX省/省地/地質/測試/研究/研究院/(/國土/國土資源/國土資源部/資源/部/礦產/礦產資源/資源/監督/檢測/中心/)。
搜索引擎模式:在精確模式的基礎上,再對長詞進行切分,提高召回率,適用于搜索引擎分詞。其搜索引擎分詞結果為:XX/XX省/地質/測試/研究/研究院/(/國土/資源/國土資源部/礦產/資源/礦產資源/監督/檢測/中心/)。
綜合考慮分詞效率和準確性,本文將基于Python的jieba分詞中的精確模式實現電力客戶的非結構化文本數據的分詞。
以某省電力用戶作為樣本,根據分類目標對象電壓等級10 kV及以上正常用電的專變客戶等作為條件篩選,加上高危及重要客戶群體共計100 283個客戶,取得這些客戶的用戶名稱、行業分類、用電類別等數據,其中用戶名稱作為非結構化文本數據的實例進行分析。
針對客戶名稱存在許多命名不規范的情況,對名稱進行簡單清洗:
1)刪除用戶名稱中的空格和標點符號[10]。用戶名稱采集不規范會導致單個詞語中間出現空格,空格和標點符號屬于停用詞范圍,完整詞語將會被強制劃分,以“ML市博士裝飾材料有限公司”為例,無空格時的分詞結果為“ML市/博士/裝飾/材料/有限公司”,而“ML市博士裝 飾材料有限公司”的分詞結果為“ML市/博士/裝/ /飾/材料/有限公司”,空格使得“裝飾”被拆開。
2)將括號()、[]、#、數字等特殊符號刪除。與空格和標點符號原理相同,這類符號在分詞中會額外分成一個分詞,但在分詞分析中意義不大,因此需要刪除,可以減少分詞結果的噪音冗余,能提高分類模型的訓練速度。例如“ML市博士裝飾材料有限公司[59501005]”的分詞結果為“ML市/博士/裝飾/材料/有限公司/[/59501005/]”,多出了三個分詞。
3)其他停用詞的處理。本方法的分詞目標均為一系列客戶名稱,不存在中文中的虛詞等非檢索用字,因此不需要額外在停用詞中添加。
根據上述步驟處理客戶名稱,得到示例數據見表1。

表1 文本數據預處理對比表
根據jieba分詞完整的技術路線和 Python 提供的成熟工具庫,實現對電力大客戶用戶名稱的中文分詞,過程如下:
1)首先導入Python語言工具包jieba[11],擴展并加載停用詞詞典及包含未登錄詞的自定義詞典[12]。根據《事業單位分類目錄》和《國民經濟行業分類》添加屬于自己的自定義字典,用來切分查找關鍵詞。例如使用默認字典時“CS民政職業技術學院”分詞為“CS/民政/職業/技術/學院”;根據事業單位的公益二類包含單位,將“職業技術學院”添加到字典中后分詞為“CS/民政/職業技術學院”。這樣就可以有效縮小查找范圍,從而使得匹配完成度更高,時間更短。
2)接下來完成預處理的客戶名稱導入,通過Python的處理將分詞結果輸出到文件得到每個客戶名稱的分詞結果,然后根據分詞結果統計高頻詞并進行分析。以某省電力用戶作為樣本得到的分詞結果中,詞頻較高的有“有限公司”,提取樣本中包含“有限公司”的客戶,發現一部分是無其他重點分詞的普通經濟類經營主體,也有少部分例如“CS市軌道交通運營有限公司”“中國鐵路GZ局集團有限公司CS供電段”“中國YD通信集團XX有限公司CS分公司”等的社會類單位,而社會類單位明顯比經濟類擁有更多關鍵詞,如“交通”“通信”“電力”等,因此需要總結這類規律,為提升后續分類效率奠定基礎。部分高頻詞及輔助關鍵詞分類特征庫見表2。

表2 分類特征庫
選擇BP神經網絡實現從分詞結果到客戶分類[13],為了提升分類模型的準確率和效率,使用表2的分類特征庫,即“高頻詞+關鍵詞”規律作為預訓練模型的數據集,避免從零開始訓練。
準備好預訓練模型后,選取數據預處理后的500個用戶作為訓練樣本,盡量包含不同客戶類別并數量相近;然后利用更新后的自定義字典對樣本完成分詞,并輸出分詞結果;將這些用戶的分詞結果作為輸入,客戶類別作為輸出,基于預訓練模型繼續訓練,經過調優調參將模型訓練到滿意的準確率;保存模型,然后把剩余樣本的分詞結果輸入到保存好的模型中,最后得到客戶的分類結果。部分示例見表3。

表3 大客戶分類結果對比表
對比電力系統數據庫中的原行業類別、用電類別,可以發現本文方法的分類結果更符合后續客戶營銷的需求。
本文基于jieba中文分詞技術,提出了一種對電力大客戶精準分類的方法。該方法通過對電力客戶的非結構化文本信息進行分詞,并總結關鍵詞頻率,構建分類特征庫;然后搭建電力行業分詞字典以提高分詞效率;最后根據分類特征庫構建預分類模型,完成客戶分類。通過用戶基礎數據快速高效地完成對客戶的精準分類,解決電力數據庫中用戶屬性異常、專變臺賬不完善等數據異常問題,同時也解決依賴經驗、費時費力的問題。該方法分類效果較好,對制定客戶差異化服務方案奠定基礎,對有后續客戶服務管理研究具有重要意義,也為電力營銷數據挖掘提供借鑒和參考。