沈東義,姬銀秀,毛火明,郭林,袁秋霞
(中海石油(中國)有限公司天津分公司,天津 300459)
渤海油田勘探開發(fā)階段每年都會產生近萬份研究成果文檔.為進一步實現科研人員研究協(xié)同、成果共享,提高研究效率,對大數據量的研究成果進行分類整理十分有必要[1].但目前,渤海油田勘探開發(fā)研究成果入庫前分類工作主要依靠傳統(tǒng)手動方式,效率低下且無法滿足成果文檔及時共享的需求.
近年來隨著自然語言處理技術的發(fā)展,文本聚類技術在很多領域都有應用,如電子商務網頁檢索聚類、網絡輿情熱點聚類挖掘、醫(yī)藥專利文本聚類研究、電商網站用戶評論熱點挖掘、垃圾郵件識別、情感分析、檔案數據自動分類等領域[2-8],并且都取得了較好的應用效果.其中短文本聚類由于短文本所呈現的稀疏性、歧義與噪聲多的特點,比普通文本聚類更具挑戰(zhàn)性.馮靖等人[9]通過使用LDA模型對訓練數據進行建模和特征擴展,從而提高了聚類效果.傅承濤等人[10]針對新聞類短文本聚類檢測困難和計算量大的問題,提出使用基于密度的聚類算法CFDP對矢量化的文本數據進行聚類的方法,聚類結果F值達到89.24,效果良好.
渤海油田開發(fā)成果文檔標題文本作為入庫分類依據,在文本長度上類似于短文本,具有文本較短、專業(yè)化詞匯占比大、特征缺失等特點.針對上述問題,為了提高成果文檔分類入庫效率,本研究從短文本聚類的兩個關鍵步驟,即文本的向量化表示和聚類效果評價進行研究,提出了一種基于Word2vec再訓練模型和K-Means的文本聚類方法對勘探開發(fā)階段的成果文檔進行文本聚類.
本文中收集了近7萬份勘探開發(fā)成果文檔,涵蓋地球物理探測、地質綜合研究、分析化驗、測井、錄井、鉆完井等專業(yè),專業(yè)分布廣泛、類型齊全,有一定代表性.
1.1 文本數據獲取首先將渤海油田項目知識庫中近7萬份勘探開發(fā)成果數據文檔所有數據的詳細信息以Excel表格導出,如圖1所示,表中包含“DocID”、“TypeID”、“正題名”、“DocType”等字段信息,其中“DocID”為成果文檔的ID信息,“正題名”為所有成果文檔入庫原始標題名稱.
同時提取“DocID”和“正題名”兩字段中所有數據作為初始數據集,最終獲取原始標題共69 099條.
1.2 文本預處理獲取初始數據集后,對獲取數據中的“正題名”進行預處理,提取有用的文本信息.根據初始數據集特點,本文將中英文數據分別進行處理,其中,中文標題文本共33 577條,英文標題文本共35 522條.
由于標題文本中存在命名不規(guī)范、中英文不同語種以及多種特殊符號等問題,為保證數據一致性,提高原始數據質量,同時要保證文本標題清洗后仍包含關鍵類別信息,因此要對標題中多余的符號、數字、括號內解釋性文本、修飾性文本等無關信息進行剔除.采用正則表達式[11]來預定義標題文本清洗規(guī)則.最終中文標題清洗前后對比示例如表1所示.
其中,中文標題文本數據清洗主要包含以下步驟:
1)去除括號內所包含的文本內容.如:標題“C井完井總結(80年3月改為C2井)”中括號內文無法提供有價值的判別內容,予以去除;
表1 中文標題文本清洗前與清洗后示例
2)去除文本數據中的特殊符號、數字等,保留中文文本.如標題中包含“#(a-zA-Z0-9./ )-″)(&ⅠⅡⅣⅢ&′△-"Ⅴ#;,〈s,、zn:”等特殊符號予以去除;
3)去除中英文井名、構造名、區(qū)塊名等修飾成分信息.如,標題“遼中南洼南部旅大A構造B井三維定量熒光錄井總結報告”中“三維定量熒光錄井總結報告”為區(qū)分成果數據類別的有效關鍵信息,“遼中南洼南部旅大A構造B井”等修飾部分予以去除;
4)對于較長標題,如文本標題中包含多個附件信息,如“渤東凹陷蓬萊C構造G井地化錄井完井總結報告 附件一:現場樣品采集分析記錄,附件二:地化路徑分析數據表,附件三:油組組分圖譜”,只取第一個“地化錄井完井總結報告”作為有效文本.
其次,英文標題文本數據清洗主要包含以下步驟:
1)將文本內容全部轉為小寫,去除標題文本中中特殊符號、數字等;
2)將英文標題文本中單字母或雙字母視作停用詞去除;
3)去除英文標題文本中括號內的內容以及有規(guī)則特征的井名、構造名等,只保留關鍵類別信息.
英文標題文本清洗后示例如表2所示.
表2 英文標題文本清洗前與清洗后示例
數據清洗完成后,對規(guī)范后中文標題文本進行分詞預處理.本研究采用jieba分詞算法中的精確模式對中文標題文本進行精確切分.該算法將基于字符串匹配算法與基于統(tǒng)計算法結合,在準確度和速度方面都表現良好[12].分詞結果如表3所示:
表3 英文標題文本清洗前與清洗后示例
本文中將所搜集的勘探開發(fā)成果數據文檔標題文本作為初始數據集,對初始數據集進行數據清洗和整理后采用jieba算法包對文本進行分詞處理,在Word2vec基礎上使用成果數據文檔標題二次訓練詞向量后對文本進行特征表示,再將文本向量矩陣作為CNN模型的輸入提取文本深層語義特征,最后采用K-Means算法進行聚類,并為每一類文檔進行類別標引,實現對勘探開發(fā)成果文檔自動聚類.具體技術流程如圖2所示.
圖2 基于Word2vec和CNN的勘探開發(fā)成果文檔聚類流程
2.1 文本特征提取標題文本預處理完成后,需將文本相似度問題轉換為向量矩陣.使用基于Word2vec二次訓練獲取詞向量和CNN進行特征提取,從而獲取文本的深層特征.
2.1.1 自訓練Word2vec向量表示 Mikolov等[13]采用神經網絡的思想提出了Word2vec模型,使用此模型在訓練文本語料庫的過程中,主要考慮上下文間的語義關系,在目標詞前的一定數目的詞語影響目標詞的出現,來獲取某個詞的向量表示.
由于數據集的特殊性,為了取得最佳聚類效果,選擇在預訓練Word2vec向量的基礎上基于自有開發(fā)成果文檔標題語料庫進行再訓練,再訓練后得到的Word2vec詞向量對含有專業(yè)詞匯更多的文檔標題短文本的向量表示更符合實際應用.
圖3 卷積神經網絡模型圖
通過將預處理后的標題文本作為輸入進行訓練,得到一個由文本向量構成的矩陣表示.其中,每個詞初始設置為隨機n維向量,經過訓練后獲得每個詞語的最優(yōu)向量.
2.1.2 CNN語義特征提取 在獲取的Word2vec向量表示基礎上,采用CNN對向量進行進一步的局部特征提取.卷積神經網絡主要包含輸入層、卷積層和池化層、全連接層和輸出層[14].圖3展示了CNN模型圖.
圖4 K-Means聚類流程圖
使用CNN網絡模型對文本進行特征提取,輸入層輸入Word2vec文本特征向量,卷積層進行局部特征提取,之后采用最大池化對文本特征向量的局部部分進行深層次的特征提取,獲取一個標量.最后全連接層將所有特征向量相連,得到一個完整的最終文本特征向量.
經過CNN模型訓練后,文本與文本特征向量一一對應,通過輸出層將最終的文本特征向量輸出,最后進行聚類分析.
2.2 K-means文本聚類采用K-Means算法對Word2vec2-CNN文本特征向量進行聚類分析,通過迭代計算尋找最佳類別劃分方案[15],使得用k個聚類的均值的總體誤差J(c,μ)最小.
(1)
其中,μc(i)表示第i個聚類的均值,其算法過程如圖4所示.
3.1 聚類結果輸出為選擇最佳聚類類別k值,本研究在實驗過程中采用SSE(誤差平方和)[16]作為指標對聚類效果進行評估.
(2)
將k值分別設置為50、100、200、250、300、350、400、450分別進行聚類實驗,結果如圖5所示,可知當k=200時,SSE遞減增量開始減小,算法趨于收斂.
使用Matplotlib可視化工具對聚類結果進行可視化.圖6分別為當k為200時,中英文標題文本的聚類結果可視化圖.
圖5 中英文標題文本聚類算法SSE值的變化趨勢
圖6 中英文標題200類聚類結果可視化圖
本文中將200類聚類結果分別寫入文件,每個文件命名為當前類別的label名,示例如表4.
每個文件寫入內容格式為“標簽 DocID 原標題”,以“錄井完井報告”文件為例,內容示例如下,
標簽 DocID 原標題
錄井完井報告 0e0363ea-7d43 LD凸起JZ2構造M井FLAIR錄井完井報告
錄井完井報告 144fd275-fe9d HHK凹陷KL1構造N井FLAIR錄井完井報告
....
圖6中(a)可知,中英文標題文本聚類數據簇分布較為集中,整體聚類效果較好,但仍有部分零散點無法得到最終聚類.中文標題文本共33 577條,其中,30 217條文本實現聚類并獲取了相應的類別標簽.其中,3 360條無法獲取最終分類,需要人工輔助做進一步分類.而英文標題文本聚類同樣存在部分問題.英文標題文本共35 522條,其中,33 239條獲取了相應類別標簽,2 283條無法獲取最終分類,需要人工輔助做進一步分類.如表5所示為中英文標題聚類結果統(tǒng)計.
表4 文本聚類結果文件部分示例
表5 文本聚類結果文件部分示例
綜上,采用本文中提出的方法,在擬定的69 099條勘探開發(fā)成果文檔文件標題數據集中,91.8%的標題文本實現了自動分類,與手工分類相比,效率極大提升.
3.2 評估測試集本文提出的方法使分類效率極大提升的同時,為驗證分類結果質量,本部分對采用自動分類方法獲得類別標簽的63 456條勘探開發(fā)成果文檔標題進行效果評估.在渤海油田項目知識庫勘探開發(fā)成果數據文檔詳細信息表中,“DocType”字段為知識庫中每條文本入庫時的原始類別標簽,“正標題”為所有成果文檔的入庫原標題名稱.因此,本研究擬定在全部69 099條原始數據中,隨機抽取5 063條“正標題”和“DocType”作為評估數據集,數據不包含重復數據且各類別種類齊全,具有代表性.評估數據集部分示例如表6所示.
表6 評估數據集部分示例
3.3 評估指標與評估結果將所有標題文本聚類得到200類,因此對多標簽聚類結果的評估,本研究通過相似度計算來確定每條標題的標簽是否預測準確.
由于標簽文本為短文本,采用編輯距離[17]來計算二者的相似度,計算公式如下:
(3)
其中,sum是指label_test和label_pre字串的長度總和,Idist類編輯距離.
同時,本文中設置相似度閾值為0.6,即如果Similarity值大于0.6則判定類別標簽準確,否則判定標簽錯誤.聚類結果如表7所示.
表7 聚類結果效果評估
評估結果顯示,采用本文提出的方法進行聚類獲得的類別結果與標簽準確率達93.6%,在分類效率極大提成的同時,標簽獲取準確率也表現優(yōu)異.
4.1 實驗數據實驗采用的數據為渤海油田開發(fā)成果文檔標題文本經過預處理后獲得的短文本語料,總數為69 099條.根據數據集特點,數據集分為中文和英文數據兩種,其中,中文標題文本共33 577
條,英文標題文本共35 522條.
4.2 實驗參數本次實驗涉及的參數包括Word2vec的特征維度,卷積核數量.具體參數如表8所示.
表8 參數設置
4.3 對比實驗為了驗證模型的有效性,設置多組對比實驗對數據進行聚類分析.實驗具體設置為在相同聚類模型K-Means下分別采用不同的文本表示方法時的聚類結果對比.即文本表示方法包括Word2vec模型(未使用開發(fā)成果文檔語料進行二次訓練的詞向量模型)、自訓練Word2vec(在原Word2vec模型基礎上使用開發(fā)成果文檔語料進行二次訓練后的詞向量模型)、向量空間模型one-hot編碼、詞袋表示TF-IDF以及預訓練模型Bert.使用不同詞向量方法的聚類結果如表9所示.
表9 不同詞向量方法的聚類結果對比
從實驗結果可以看出,傳統(tǒng)的one-hot方法和詞袋表示TF-IDF在聚類時僅能對72%和84.8%的標題文本進行自動分類,仍有較大比例的數據仍需手動分類.在使用Word2vec和Bert模型后分類效果有明顯提升,尤其在最后一組實驗中,通過結合Word2vec和開發(fā)成果文檔標題數據進行再訓練后進行聚類,自動分類比例提升了3個百分點.說明本文提出的方法能夠有效提高文本表示能力,從而提高聚類算法的性能.
綜上所述,采用本文中提出的基于Word2vec自訓練和CNN的文本特征提取并結合K-Means聚類算法的方法對勘探開發(fā)階段的成果文檔進行自動分類,不僅使得成果文檔分類效率提升了91.8%,還使得分類結果標簽獲取準確率也達到93.6%,極大地提高了渤海油田勘探開發(fā)成果文檔的分類效率和準確率.
受制于成果文檔標題文本數據的特殊性,原本就字數較少的情況下使得專業(yè)詞匯占比更大,給分類帶來了更大的挑戰(zhàn),此次研究的解決方法主要是將文本表示模型Word2vec用專業(yè)詞典再訓練后投入使用,分類準確率尚未達到95%的突破口.下一步的研究重點將放在如何加強模型對專業(yè)詞匯的理解,從文本更短更專業(yè)化的標題文本中提取信息,實現更精確的分類效果.
通過將獲取類別標簽的文檔分類結果調用相應錄入程序實現快速入庫,為數據治理工作提供了堅實的基礎,同時也為進一步實現渤海油田科研人員研究協(xié)同、成果共享、提高研究效率奠定了數據基礎.