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