?

基于BERT和DBSCAN工程項目維保文本數據挖掘

2023-09-27 08:14胡學聰
關鍵詞:類別分類器標簽

胡學聰

(上海中建東孚投資發展有限公司上海公司,上海 150000)

國內建筑開發公司通過引入明源等系統,采用運維工單的方式記錄住宅交付及使用過程中業主的投訴及建議。傳統維保工單長度在200字符以內,屬于典型的非規范性口語化的文本。同時由于投訴的原因無法事先確定,系統往往通過記錄投訴位置來將信息進行分類,由專業客服人員對具體投訴事項進行分析,并派發至維保人員。該人工方式耗時較多,并依賴于客服人員的專業素養。在建筑集中交付前后,維保問題大量上報時,時效性較低,拉長客戶的等待時間,容易造成輿情和群訴現象。

自然語言處理(natural language processing,NLP)[1]是計算機科學領域與人工智能領域中的一個重要方向。通過對自然語言的處理,使得計算機可以理解它,并將其可量化為各類具體數據。文獻[2]梳理了NLP技術建筑方面的運用情況,發現在施工安全和合同管理方面研究較多,運維管理階段研究較少。文獻[3]通過引入圖像分類領域的卷積神經網絡(Convolutional Neural Network,CNN)模型完成建筑質量問題的分類,但CNN屬于有監督學習,需要利用大量已知分類數據訓練模型,同時CNN的卷積和池化操作會丟失詞匯順序和位置信息。文獻[4]通過Word2vec算法模型提取建筑維保文本詞向量特征,利用分類支持向量機(Support Vector Classification,SVC)完成文本分類,但該方法分類精度對模型參數敏感,同時需要對數據復雜的預處理。

為解決上訴問題,通過詞頻-逆文檔頻率[5](Term Frequency-Inverse Document Frequency,TF-IDF)和具有噪聲的基于密度的聚類方法[6](Density-Based Spatial Clustering of Applications with Noise,DBSCAN)搭建文本粗分類器,根據破壞原因對維保文本進行分類,解決原始數據無標簽的問題。將粗分類好的文本作為訓練集微調預訓練語言表征模型[7](Bidirectional Encoder Representation from Transformers,BERT),利用微調后的BERT模型作為細分類器,完成剩余維保文本分類。

1 相關研究方法介紹

TF-IDF是一種常用于文本處理的統計方法,由詞頻(Term Frequency,TF)和逆文檔頻率(Inverse Document Frequency,IDF)兩部分的得分構成,TF通過計算特定關鍵詞在文本中出現的頻率。其定義為

式中,nij表示關鍵詞W在某個文件中出現的次數;∑knkj表示文件中所有此條數目的總和。

IDF計算包含某關鍵詞W的文檔總數,如果包含詞條t的文檔越少,IDF越大,則說明詞條具有很好的類別區分能力。其定義為

式中,|D|表示預料庫中文檔總數;|{j:t1∈dj}|+1表示包含關鍵詞W的文件數目加1。

TF-IDF值即為兩者得分相乘

TFIDF=TFij*IDFi

詞袋模型(Bag of Words,BoW)是一種將文本向量化的方式,基本思想是將預料庫中所有詞去重后裝在袋子中,對應的文本可以轉化為對應詞在詞袋中位置的向量表示。

DBSCAN不同于傳統的K-均值聚類(K-means)等算法,無需預先指定簇數K,對任意形狀的類可以達到較好的聚類效果,僅需預先給定E鄰域閾值(eps)和核心對象最小數量(min Pts)。若有大于min Pts個數量的樣本點與某一樣本點的距離小于eps時,稱該樣本點為核心點(Core)。若某一樣本點不滿足成為核心點條件,但距離內至少有一個核心點,則稱該樣本點為邊界點(Border)。若都不滿足則稱該樣本點為噪聲點(Noise),如圖1所示,eps和min Pts兩個參數共同決定了聚類的簇數,當取值較小時簇數較多,每個類別中樣本點數量少;當取值較大時簇數較少,每個類別中樣本點的數量多。

圖1 DBSCAN算法圖解

BERT是由Google在2018年論文提出的預訓練語言表征模型。該模型以大量無標注的文本作為訓練材料,通過完形填空(Masked Language Model)和下個句子預測(Next Sentence Prediction)兩個任務預訓練模型,讓BERT模型可以學習到詞元(Token)之間的相關關系,最終在11項自然語言處理任務中創造了最佳的記錄。

BERT模型的架構是由多個Transformer模型[8]的編碼器(Encoder)堆疊而成,通過針對特定的問題添加輸出層微調(Finetune)。在BERT模型的輸入中,通過詞元嵌入張量(Token Em bedding)、語句分塊張量(Segment Em bedding)、位置編碼張量(Position Em bedding)3部分將文本編碼向量化。

2 本文方法

為充分利用數據資源,本文提出了一種基于TF-IDF、DBSCAN和BERT的文本分類挖掘方案,通過TF-IDF和DBSCAN構成的粗分類器將短文本聚類劃分,利用特征明顯的聚類結果作為樣本微調BERT模型,并利用微調好的BERT模型處理在粗分類階段無法聚類的短文本,該方法的具體流程如圖2所示。

圖2 基于DBSCAN和BERT的文本分類流程圖

3 案例驗證

以某公司上海地區項目為例對本文方法進行驗證。通過分析該項目維保數據可知,截止目前報修問題共有6 203條,共涉及100處構件。為方便對比,將各構件按報修頻率從大到小排序并編號為1至100,所有構件的累計報修頻次占比結果如圖3所示,前20處構件報修問題累計占比77.35%。

圖3 各位置報修頻次占比

以報修頻次最多的1號構件“戶內門”為例,該類別下共有報修文本720條。

3.1 粗分類

TF-IDF文本粗分類為:通過Python的中文第三方分詞庫jiaba,將短文本劃分為獨立的詞元,并去除無意義的停用詞如:“一個、一直、誒、啊、¥、@”等(停用詞庫采用了哈工大停用詞表[9])。計算每個詞的逆文檔頻率,通過one-hot編碼將段文本轉化為固定長度的數值向量。

通過對720條戶內門報修文本分詞,可以得到由418個有效的詞元構成的詞元表(Word-List)和每個有效詞元的TF-IDF值。例如,原維保文本“門套線拼縫不齊;南次臥門破損,劃痕”,通過jieba分詞可劃分為“門套/拼縫/不齊/南次/臥門/破損/劃痕”,每個有效詞元在詞元表中的位置及TF-IDF值如表1所示。

表1 案例維保文本TF-IDF結果

通過BoW模型將每條維保文本都轉化為固定長度的向量,便于后續聚類計算,向量長度為詞元表內詞元的數量。例如原維保文本“門套線拼縫不齊;南次臥門破損,劃痕”被向量化成長度418的向量,除詞元表對應序號位置的數為對應的TF-IDF值,其余位置均為0。

通過DBSCAN算法對向量化的報修短文本聚類,因BoW模型在向量化文本數據時僅考慮詞元出現的頻率,無法考慮詞元含義之間的相關關系,因此本文建議設定較小的eps值和min Pts值,再人為判定聚類結果間各簇的含義,將相同含義的簇人工合并到相同類別。

在兼顧聚類效果和人工判別效率的基礎上,本文推薦設定eps值為0.95,min Pts值為5,根據計算可將文本粗略分為12類報修原因(11類有效分類,1類噪音文本),具體聚類結果如表2所示。

表2 維保文本粗聚類結果

可見在原720條維保文本中,label為0、1、2、3、5、6、7、8、9、10的317條文本聚類較好,有明顯的損壞含義。label為-1、4的403條文本聚類效果較差。根據損壞含義重新組織文本,劃分為6類不同的損壞類型并用作訓練數據,1類待分類數據,如表3所示。

表3 按損壞類別分類重劃分維保文本

3.2 細分類

將6類不同的損壞類型數據根據類別比例隨機抽樣,將80%的文本當作訓練集,20%的文本當作測試集。通過pytorch搭建模型,預訓練BERT模型采用哈工大訊飛聯合實驗室推出的“BERT-wwm”[10],因本項任務接近句對匹配,學習率(Learning Rate,LR)設置為模型推薦的最優學習率2×10-5,考慮到計算機性能限制每批次訓練數量(Batch_size)設置為64。

隨機抽取一條待分類的數據:劃傷、掉漆;門吸松動,門不平整,外墻滴水槽不通,清理打膠收口,窗戶開起其打膠??梢钥闯?該投訴文本同時包含多項標簽,因此是一個多標簽分類的任務。將BERT輸出的結果通過全連接方式連接到由6個二元分類神經元構成的線型輸出層,選擇sigmoid函數,損失函數選擇二元交叉熵損失函數。通過觀察訓練集數據分布可知,數據的類別不平衡(class imbalance),常用的方法有[11]:①對數據量較多的類別進行欠采樣;②對較少的類別進行過采樣;③閾值調整。前兩種方案會對數據的分布產生影響,因此本文采用第三種方式,通過繪制ROC曲線,計算最優閾值(Threshold)[12]。模型評價指標選擇loss評價訓練集中預測值與實際值的偏離程度,準確率計算測試集中預測正確的標簽數目,最終結果如圖4所示,可以看到BERT的分類結果收斂程度較好。將每個神經網絡輸出分類視為二分類,分別繪制ROC曲線,計算對應的AUC值和最優閾值th-optimal,計算結果如圖5所示,調整后各標簽閾值如表4所示。

表4 調整后各標簽閾值

(a)損失值 (b)準確率

(a) label-0 (b)label-1 (c) label-2

將微調好的BERT模型和調整后閾值作為多標簽分類器,劃分待分類的403條數據,分類具體結果如表5所示。

表5 每類標簽內文本數量

4 結論與展望

入戶門類別下原始無標簽文本720條,通過粗分類器后有效分類317條,有效分類率44.03%,通過細分類器后累計有效分類文本603條,累計有效分類率83.75%。

雖然本文提到的方案可以有效完成文本分類、特征提取,但依然存在部分局限:

(1)初始的分類劃分依賴于DBSCAN算法的聚類,該分類器通過關鍵詞和詞頻分類文本,建議選擇較小的eps和min Pts值,通過人工合并同類關鍵詞,讓BERT模型可有效學習到不同敏感詞之間的相關關系;

(2)通過TF-IDF方案粗聚類效果僅考慮了關鍵詞的重要性,建議通過大量的無標簽行業內維保語料,進行BERT的無監督預訓練,根據相關研究文本[13]的表層信息如句子長度、詞元等在Encoder的淺層進行輸出,詞元順序、語法等在Encoder的中間層進行輸出,時態、動名詞、主語等信息在Encoder頂層進行輸出,推薦采用預訓練BERT模型的第4、第6、第9層Encoder的輸出文本作為特征進行文本聚類。

猜你喜歡
類別分類器標簽
無懼標簽 Alfa Romeo Giulia 200HP
不害怕撕掉標簽的人,都活出了真正的漂亮
BP-GA光照分類器在車道線識別中的應用
加權空-譜與最近鄰分類器相結合的高光譜圖像分類
結合模糊(C+P)均值聚類和SP-V-支持向量機的TSK分類器
標簽化傷害了誰
服務類別
基于多進制查詢樹的多標簽識別方法
論類別股東會
基于LLE降維和BP_Adaboost分類器的GIS局部放電模式識別
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合