国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于語(yǔ)義相似的中文數(shù)據(jù)清洗方法

2021-09-09 07:36李碧秋王佳斌劉雪麗
現(xiàn)代計(jì)算機(jī) 2021年19期
關(guān)鍵詞:聚類(lèi)向量算法

李碧秋,王佳斌,劉雪麗

(華僑大學(xué)工學(xué)院,泉州 362000)

0 引言

數(shù)據(jù)清洗是發(fā)現(xiàn)并解決數(shù)據(jù)質(zhì)量問(wèn)題的過(guò)程,通常包含對(duì)相似重復(fù)數(shù)據(jù)、異常數(shù)據(jù)、不一致數(shù)據(jù)等的清洗,通過(guò)數(shù)據(jù)清洗提高數(shù)據(jù)質(zhì)量,使得企業(yè)能夠通過(guò)數(shù)據(jù)挖掘與數(shù)據(jù)分析做出科學(xué)判斷。針對(duì)相似重復(fù)數(shù)據(jù)的清洗可以降低數(shù)據(jù)庫(kù)的冗余度,提高數(shù)據(jù)庫(kù)的利用率。目前關(guān)于相似重復(fù)中文文本數(shù)據(jù)清洗主要包括通過(guò)預(yù)處理將句子文本這種非結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)化為結(jié)構(gòu)化數(shù)據(jù)進(jìn)行處理;基于詞語(yǔ)共現(xiàn)度或基于詞袋模型的詞向量判斷文本是否相似;針對(duì)不同領(lǐng)域的特點(diǎn)制定相應(yīng)的清洗算法;考慮中英文的差異,從詞語(yǔ)語(yǔ)義角度分析記錄的相似性、精確度仍不夠理想??梢?jiàn)已有研究對(duì)中文數(shù)據(jù)清洗效率問(wèn)題、算法普適性及相似性檢測(cè)的準(zhǔn)確度方面還有很大提升空間。所以本文在現(xiàn)有研究基礎(chǔ)上提出利用BERT模型改進(jìn)文本向量化過(guò)程,將文本轉(zhuǎn)化為計(jì)算機(jī)可理解的數(shù)學(xué)表達(dá),再求可計(jì)算的文本之間的余弦相似度,利用K-means和Canopy算法將相似重復(fù)文本聚類(lèi),實(shí)現(xiàn)相似重復(fù)數(shù)據(jù)的清洗。

1 文本向量化

計(jì)算機(jī)不能直接對(duì)自然語(yǔ)言進(jìn)行計(jì)算,所以需要將文本數(shù)據(jù)轉(zhuǎn)化為向量形式,再對(duì)其做數(shù)學(xué)計(jì)算。常用的文本向量化方法包括TF-IDF[1]、Word2Vec模型[2]、GloVe模型[3]、ELMo模型[4]等,但是上述方法缺失文本語(yǔ)義信息、不具有上下文的“語(yǔ)義分析”能力。2018年谷歌AI團(tuán)隊(duì)發(fā)布的BERT模型[5]在問(wèn)答任務(wù)與語(yǔ)言推理方面展示了驕人的成績(jī)。其亮點(diǎn)在于,與傳統(tǒng)雙向模型只考慮句子左右兩側(cè)的上下文信息不同,BERT還將融合在所有層結(jié)構(gòu)中共同依賴的左右兩側(cè)上下文信息。此模型主要基于雙向Transformer編碼器[6]實(shí)現(xiàn)。BERT模型結(jié)構(gòu)如圖1所示。

圖1 BERT模型結(jié)構(gòu)

t1,t2...ti代表文本輸入,T1,T2...Ti代表經(jīng)過(guò)Transformer處理后的文本向量化表示。

BERT主要用了Transformer的Encoder,而沒(méi)有用其Decoder。Transformer模型中Encoder的結(jié)構(gòu)如圖2所示。

圖2 Encoder結(jié)構(gòu)

圖2表示了自然語(yǔ)言序列經(jīng)過(guò)計(jì)算得到文本的數(shù)學(xué)表達(dá),Transformer模型沒(méi)有循環(huán)神經(jīng)網(wǎng)絡(luò)的迭代操作,而是引入位置信息來(lái)識(shí)別語(yǔ)言中的順序關(guān)系。

此外,在BERT中提出了兩個(gè)新的預(yù)訓(xùn)練任務(wù)Masked LM(Masked Language Model)和Next Sentence Prediction。Masked LM即隨機(jī)把一句話中15%的token替換成以下內(nèi)容:

(1)這些token有80%的幾率被替換成[mask];

(2)有10%的幾率被替換成任意一個(gè)其他的token;

(3)有10%的幾率原封不動(dòng)。

在Next Sentence Prediction任務(wù)中選擇一些句子對(duì)S1與S2,其中50%的數(shù)據(jù)S1與S2是一組有邏輯的句子,剩余50%的數(shù)據(jù)S2是隨機(jī)選擇的,學(xué)習(xí)其中的相關(guān)性,添加這樣的預(yù)訓(xùn)練的目的是讓模型更好地理解兩個(gè)句子之間的關(guān)系。

基于以上理論,具體的向量化過(guò)程為:

Step1:文本預(yù)處理,去掉停用詞與特殊符號(hào),留下有實(shí)際意義的文本;

Step2:將超過(guò)512字符的長(zhǎng)文本數(shù)據(jù)的前128個(gè)字符與后382個(gè)字符相加代替原文本,使其符合BERT可接受的文本序列范圍;

Step3:構(gòu)建字向量、位置向量、文本向量作為BERT模型的輸入;

Step4:通過(guò)BERT模型中的Transformer編碼器融合全文語(yǔ)義信息,得到文本向量。

向量化結(jié)果為{詞id:向量表示}

部分句子向量化結(jié)果如下:

{45466:11.464980125427246,45438:11.46498012

5427246,10419:3.8473434448242188,44612:11.46498

0125427246......7173:10.771833419799805}

2 相似重復(fù)數(shù)據(jù)聚類(lèi)

經(jīng)過(guò)向量化的文本即可進(jìn)行余弦相似度的計(jì)算。用向量空間中的兩個(gè)向量夾角的余弦值作為衡量?jī)蓷l記錄間的差異大小的度量,余弦值越接近1,就說(shuō)明向量夾角角度越接近0°,也就是兩個(gè)向量越相似,就叫做余弦相似。計(jì)算方法為:

(1)

聚類(lèi)算法是指將一堆沒(méi)有標(biāo)簽的數(shù)據(jù)自動(dòng)劃分成幾類(lèi)的方法,這個(gè)方法要保證同一類(lèi)數(shù)據(jù)有相似的特征,所以相似重復(fù)文本數(shù)據(jù)的清洗可以采用聚類(lèi)的思路。K-means[7]首先隨機(jī)初始化質(zhì)心,然后重復(fù)執(zhí)行以下兩項(xiàng)操作:①計(jì)算每個(gè)成員與質(zhì)心之間的距離,并將其分配給距離最近的質(zhì)心;②使用每個(gè)質(zhì)心的成員實(shí)例的坐標(biāo)重新計(jì)算每個(gè)簇的質(zhì)心坐標(biāo),直到類(lèi)簇中心不再改變(或誤差平方和最小或達(dá)到指定的迭代次數(shù))。

K-means聚類(lèi)原理簡(jiǎn)單,容易實(shí)現(xiàn),聚類(lèi)效果較優(yōu),可解釋度較強(qiáng),整個(gè)過(guò)程只需調(diào)整參數(shù)k。該算法簡(jiǎn)單的同時(shí)也帶來(lái)了一定的麻煩:①人為選取k值不一定能得到理想的結(jié)果,不同的k得到的最終聚類(lèi)結(jié)果相差明顯,需要反復(fù)實(shí)驗(yàn)才能找到最佳k值,這樣就會(huì)浪費(fèi)大量的精力和時(shí)間,并且要求開(kāi)發(fā)人員有相關(guān)的經(jīng)驗(yàn)。②k值選取不當(dāng)會(huì)導(dǎo)致聚類(lèi)結(jié)果的不穩(wěn)定。所以本文先采用Canopy粗聚類(lèi)[8]確定聚類(lèi)中心,獲取聚類(lèi)中心后執(zhí)行K-means聚類(lèi)算法,以此避免k值選取的隨機(jī)性。

3 實(shí)驗(yàn)結(jié)果分析

本實(shí)驗(yàn)數(shù)據(jù)來(lái)自某平臺(tái)運(yùn)行過(guò)程中產(chǎn)生的日志數(shù)據(jù),主要記錄了該平臺(tái)在運(yùn)行過(guò)程中產(chǎn)生的業(yè)務(wù)流程信息,共317.11萬(wàn)條記錄,其中包含了大量的相似重復(fù)記錄。

分別選擇100萬(wàn)、150萬(wàn)、200萬(wàn)、250萬(wàn)、300萬(wàn)條數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù),對(duì)通過(guò)TF-IDF向量化的K-means算法、Canopy+K-means算法與本文提出的基于BERT的Canopy+K-means算法就查準(zhǔn)率、查全率、F1值進(jìn)行對(duì)比。

(1)查準(zhǔn)率

查準(zhǔn)率以預(yù)測(cè)結(jié)果為計(jì)算范圍,計(jì)算方法為預(yù)測(cè)為重復(fù)的記錄中實(shí)際也為重復(fù)的記錄與所有預(yù)測(cè)為重復(fù)記錄的比值,取值在0到1之間,越接近1,說(shuō)明聚類(lèi)正確的命準(zhǔn)率越高,效果越好。結(jié)果如表1所示。

表1 查準(zhǔn)率對(duì)比

從表1可以看出,經(jīng)過(guò)BERT向量化的聚類(lèi)結(jié)果準(zhǔn)確率最高,而傳統(tǒng)K-means聚類(lèi)最差,且效果不太穩(wěn)定,當(dāng)k值恰好取到合適的值時(shí),其效果最好,但仍不夠理想,雖然經(jīng)過(guò)Canopy大致確定k值,由于向量化不夠準(zhǔn)確,本不相似的數(shù)據(jù)被聚到一個(gè)類(lèi)里,導(dǎo)致最終聚類(lèi)結(jié)果排名沒(méi)達(dá)到最優(yōu)。出現(xiàn)以上結(jié)果的原因是,在日常表達(dá)中,同一個(gè)詞在不同語(yǔ)境下代表不同的意思,如“在商店里買(mǎi)了一袋蘋(píng)果”與“在商店里買(mǎi)了一部蘋(píng)果手機(jī)”,兩句話的詞語(yǔ)共現(xiàn)度達(dá)到了80%,意思卻明顯不同,第一句話中的“蘋(píng)果”代表一種水果,第二句話中的“蘋(píng)果”代表一種手機(jī)品牌,按照傳統(tǒng)的TF-IDF向量化表示,則將其識(shí)別為相似重復(fù)數(shù)據(jù),而按照BERT模型學(xué)習(xí)之后,判斷這兩句話相似度很小,后續(xù)聚到不同的類(lèi)里,準(zhǔn)確度有所提升。再如“我比你高”與“你比我高”,兩句話的意思完全相反,而按照TF-IDF得到的結(jié)果是兩句話共同出現(xiàn)的字詞達(dá)到100%,認(rèn)為這兩句話重復(fù),這顯然是錯(cuò)誤的。而B(niǎo)ERT引入位置信息,得到恰當(dāng)?shù)南蛄勘磉_(dá),進(jìn)而在計(jì)算句子間的相似度時(shí)更加準(zhǔn)確,聚類(lèi)結(jié)果也更加可信。以上結(jié)果說(shuō)明BERT對(duì)存在一詞多義的文本進(jìn)行相似性聚類(lèi)有重要作用。

(2)查全率

查全率以原樣本為計(jì)算范圍,計(jì)算方法為:預(yù)測(cè)為重復(fù)的記錄中,實(shí)際也為重復(fù)的記錄占樣本所有重復(fù)記錄的比例。取值在0到1之間,越接近1,說(shuō)明聚類(lèi)覆蓋的越全面。結(jié)果如表2所示。

表2 查全率結(jié)果對(duì)比

從表2可以看出,K-means算法雖然在查準(zhǔn)率上波動(dòng)較大,但是在查全率大致穩(wěn)定0.6附近,Canopy+K-means較之略有提升,大約在0.7附近,兩種方法都未能將所有的相似重復(fù)數(shù)據(jù)聚到一類(lèi)中。而經(jīng)過(guò)BERT文本向量化處理后的聚類(lèi)則有優(yōu)秀的表現(xiàn),這是因?yàn)閷?duì)于兩個(gè)文本,采用大量同義詞來(lái)表達(dá)相近的意思時(shí),其詞語(yǔ)共現(xiàn)度很小,因此采用傳統(tǒng)TF-IDF向量化的K-means聚類(lèi)難以將全部相似的文本聚類(lèi)到一起,而經(jīng)過(guò)BERT模型處理后,充分理解句子語(yǔ)義,從而將字面上看似不同的相似文本檢測(cè)出來(lái)并聚到一起。以上結(jié)果說(shuō)明BERT對(duì)存在多詞一義的文本進(jìn)行相似性聚類(lèi)有重要作用。

(3)F1值

查全率與查準(zhǔn)率是一對(duì)互斥的量,一般不能同時(shí)得到最優(yōu)值,F(xiàn)1值是二者調(diào)和平均值,計(jì)算公式為:

(2)

F1取值在0到1之間,越接近于1,聚類(lèi)效果越好。結(jié)果如表3所示。

表3 F1值對(duì)比

F1值對(duì)前兩個(gè)指標(biāo)做了一個(gè)平衡,從表3可以得知,本文提出的基于BERT的相似重復(fù)聚類(lèi)表現(xiàn)最好,Canopy+K-means次之,傳統(tǒng)K-means最差。綜上可以看出,中文文本通過(guò)BERT模型生成向量后再進(jìn)行相似聚類(lèi)能得到更好的清洗效果。

4 結(jié)語(yǔ)

本文充分考慮了中文文本存在的不同語(yǔ)境下一詞多義與多詞一義的情況,引入了BERT語(yǔ)言模型,改進(jìn)文本向量化過(guò)程,使文本的向量化表達(dá)更能承載真實(shí)的語(yǔ)義信息,從而使后續(xù)相似文本聚類(lèi)更加準(zhǔn)確。

猜你喜歡
聚類(lèi)向量算法
向量的分解
基于數(shù)據(jù)降維與聚類(lèi)的車(chē)聯(lián)網(wǎng)數(shù)據(jù)分析應(yīng)用
基于模糊聚類(lèi)和支持向量回歸的成績(jī)預(yù)測(cè)
Travellng thg World Full—time for Rree
學(xué)習(xí)算法的“三種境界”
算法框圖的補(bǔ)全
算法初步知識(shí)盤(pán)點(diǎn)
基于密度的自適應(yīng)搜索增量聚類(lèi)法
向量垂直在解析幾何中的應(yīng)用
向量五種“變身” 玩轉(zhuǎn)圓錐曲線