亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Word2Vec的編程領(lǐng)域詞語拼寫錯(cuò)誤檢測(cè)算法

        2022-03-18 05:01:24劉峻松唐明靖楊成榮
        關(guān)鍵詞:語義向量詞語

        劉峻松 唐明靖 薛 崗* 楊成榮

        1(云南大學(xué)軟件學(xué)院 云南 昆明 650000)2(云南師范大學(xué)生命科學(xué)學(xué)院 云南 昆明 650000)3(六盤水師范學(xué)院 貴州 六盤水 553004)

        0 引 言

        Stack Overflow是一個(gè)熱門的計(jì)算機(jī)編程領(lǐng)域的問答社區(qū),它為世界范圍內(nèi)的計(jì)算機(jī)編程愛好者提供了一個(gè)解決問題的平臺(tái)。因此論壇中的問答文本具有很高的價(jià)值,每年都有很多人以Stack Overflow中的問題答案文本為研究對(duì)象,在海量的文本數(shù)據(jù)中挖掘不同的信息,為不同領(lǐng)域的研究提供數(shù)據(jù)基礎(chǔ)。

        由于Stack Overflow是一個(gè)開放式的問答社區(qū)平臺(tái),其中所有的文本數(shù)據(jù)均為來自世界各地用戶的輸入,因此其文本數(shù)據(jù)中存在大量的拼寫錯(cuò)誤。在對(duì)文本進(jìn)行分析時(shí),拼寫錯(cuò)誤對(duì)基于統(tǒng)計(jì)學(xué)理論的很多分析方法來說是相對(duì)致命的。以分析熱門問題和熱搜問題為例,在通過關(guān)鍵詞進(jìn)行分析和檢索的過程中,如果某段文本的語義中心詞存在拼寫錯(cuò)誤,根據(jù)計(jì)算機(jī)的模式匹配原則,該文段將會(huì)被錯(cuò)誤地認(rèn)知或歸類,當(dāng)錯(cuò)誤詞匯出現(xiàn)的頻率較高時(shí),對(duì)于統(tǒng)計(jì)結(jié)果乃至最終的分析結(jié)果都會(huì)產(chǎn)生較大的影響。絕大多數(shù)人類輸入的文字都會(huì)出現(xiàn)文本拼寫錯(cuò)誤,而諸如Stack Overflow這種開放平臺(tái)下的自然語言文本來說,其中拼寫錯(cuò)誤文本的數(shù)量更是不可忽視。

        本文提出了一種基于詞向量的文本拼寫錯(cuò)誤自動(dòng)檢測(cè)算法,通過結(jié)合文段語義及部分計(jì)算機(jī)輸入習(xí)慣所造成的常見錯(cuò)誤情況,對(duì)Stack Overflow中計(jì)算機(jī)編程領(lǐng)域的文本數(shù)據(jù)進(jìn)行自動(dòng)的單詞拼寫檢測(cè)和糾正。實(shí)驗(yàn)結(jié)果表明,與現(xiàn)有的以編輯距離為基礎(chǔ)的候選詞檢測(cè)和糾錯(cuò)方式相比,使用本文算法對(duì)文本進(jìn)行自動(dòng)校正后,所獲得的結(jié)果文本與標(biāo)準(zhǔn)文本對(duì)比,語義相似度更高,針對(duì)部分計(jì)算機(jī)編程領(lǐng)域的專業(yè)詞匯及縮寫等情況的檢測(cè)和糾正效果更好,且在面對(duì)海量文本數(shù)據(jù)時(shí)能夠做到快速自動(dòng)檢測(cè)和糾正,從而驗(yàn)證了基于Word2Vec的計(jì)算機(jī)編程領(lǐng)域詞語拼寫錯(cuò)誤檢測(cè)算法在針對(duì)計(jì)算機(jī)編程領(lǐng)域自然語言文本的單詞拼寫自動(dòng)糾錯(cuò)問題中具有較好的效果。

        1 研究背景

        單詞拼寫錯(cuò)誤的檢測(cè)和糾正在自然語言處理領(lǐng)域是一個(gè)很早就已經(jīng)出現(xiàn)的問題,Kukich[1]使用UNIX實(shí)現(xiàn)了英文文本的拼寫檢查方法,同時(shí)提出了單詞拼寫錯(cuò)誤應(yīng)包括非詞錯(cuò)誤(Non-word error)和真詞錯(cuò)誤(Real-word error),這些理論為后續(xù)的單詞拼寫檢測(cè)和糾錯(cuò)提供了基礎(chǔ)。Levenshtein[2]提出了編輯距離的概念,如今編輯距離被廣泛應(yīng)用于單詞拼寫檢測(cè)和糾錯(cuò)中,Soleh等[3]提出了使用詞法分析和查找字典的方式檢測(cè)錯(cuò)誤詞匯,通過錯(cuò)誤詞匯編輯距離構(gòu)建候選詞集合,最后使用隱馬爾可夫模型對(duì)詞匯文本進(jìn)行分析進(jìn)而對(duì)候選詞集合的所有詞匯進(jìn)行排序,選取序列中排列首位的詞匯作為錯(cuò)誤詞匯的改正詞匯進(jìn)行替換。謝文慧等[4]提出在編輯距離的計(jì)算中引入鍵盤物理布局這一因素,將鍵盤鍵位間的最短距離直接引入到編輯距離算法中,但該文使用絕對(duì)的物理距離作為參數(shù),實(shí)際上用戶的鍵盤輸入誤差僅存在于周圍的鍵位當(dāng)中,更遠(yuǎn)的鍵位距離值會(huì)對(duì)最終的判別產(chǎn)生負(fù)向的影響。且上述所有方法均是以字典和編輯距離為核心判斷標(biāo)準(zhǔn),因此對(duì)于部分專業(yè)領(lǐng)域較強(qiáng)的特殊詞匯及字典中沒有記錄的網(wǎng)絡(luò)新興詞匯的檢測(cè)能力不強(qiáng),甚至可能會(huì)出現(xiàn)誤判的情況,而且對(duì)于網(wǎng)絡(luò)開放社區(qū)的文本來說存在大量諸如用戶名、郵箱地址等特定且無實(shí)際意義的詞匯,該類詞匯可能由某個(gè)具有實(shí)意的單詞演變而來且二者編輯距離極有可能很小,對(duì)該類詞匯的誤判會(huì)對(duì)文段的語義產(chǎn)生較大影響。

        Bergsma等[5]將N-gram模型引入到拼寫糾錯(cuò)問題當(dāng)中,基于統(tǒng)計(jì)語言模型,分別利用了有監(jiān)督和無監(jiān)督的方法,結(jié)合上下文語義對(duì)單詞進(jìn)行拼寫糾錯(cuò)。Kim等[6]結(jié)合了單詞的相似性和N-gram模型,使用N-gram模型計(jì)算的語義相似性對(duì)單詞的拼寫相似度進(jìn)行修正,提高了拼寫糾錯(cuò)的準(zhǔn)確性,但是N-gram模型具有參數(shù)空間大且數(shù)據(jù)稀疏嚴(yán)重的弊端,因此在處理大量文本時(shí)效率較低。

        目前從文本拼寫糾錯(cuò)領(lǐng)域的研究情況看,大部分方法是基于文本拼寫特征或基于統(tǒng)計(jì)的詞匯替換方法進(jìn)行詞語拼寫矯正,上述方法存在準(zhǔn)確度低、速度較慢等問題,而本文算法以Word2Vec運(yùn)算的詞向量構(gòu)建文本的向量空間,通過余弦相似度構(gòu)建與檢測(cè)詞匯語義相似詞匯的集合,結(jié)合余弦相似度、詞頻、基于鍵盤鍵位改進(jìn)的文本編輯距離的復(fù)合評(píng)分標(biāo)準(zhǔn)來對(duì)錯(cuò)誤詞匯進(jìn)行檢測(cè)和糾正。相較于上述已有的方法,本文提出的方法復(fù)合了多種對(duì)詞匯正誤判斷及候選集合選取有影響的因素。通過實(shí)驗(yàn)表明,本文方法能夠在保證語義的前提下自動(dòng)對(duì)大量文本進(jìn)行檢測(cè)和糾錯(cuò),并且對(duì)部分專業(yè)性較強(qiáng)的生僻詞匯、新詞匯、縮寫詞匯有較好的檢測(cè)和糾正效果。

        2 相關(guān)技術(shù)

        2.1 詞向量技術(shù)

        為了表達(dá)詞與詞之間的關(guān)系,Hinton[7]提出了詞語的分布式表達(dá)形式,每個(gè)詞對(duì)應(yīng)的分布式表達(dá)是一個(gè)低維度的實(shí)值向量,其中每一個(gè)維度均可以表示一個(gè)詞的潛在特征。通過對(duì)大量文本語料的分析和訓(xùn)練,將已知文本中的每一個(gè)詞匯映射為低維向量空間中的一個(gè)向量,這個(gè)向量空間稱為詞向量空間,其中的每一個(gè)向量稱之為詞向量。在這個(gè)空間中引入“距離”的概念,這個(gè)“距離”一般使用向量間的余弦值,多維向量的余弦值由歐幾里得向量點(diǎn)積公式推導(dǎo)得出,以此值作為兩個(gè)詞語的余弦相似度[8]。假設(shè)空間內(nèi)現(xiàn)有兩個(gè)n維向量a=(A1,A2,…,An)、b=(B1,B2,…,Bn),向量夾角為θ,余弦相似度計(jì)算式表示為:

        (1)

        由于詞向量本身包含了詞語潛在的上下文特征,因此通過對(duì)向量間余弦值的計(jì)算可以判斷其對(duì)應(yīng)詞匯之間在語義或者上下文使用上的相似度。

        Word2Vec是在2013年由Google的Mikolov等[9-10]提出并實(shí)現(xiàn)的一種工具,用于快速地對(duì)文本進(jìn)行訓(xùn)練并獲得低維詞向量,其核心是一個(gè)淺層的神經(jīng)網(wǎng)絡(luò)。Word2Vec中包含了兩種訓(xùn)練模型[10],分別為CBOW和Skip-gram,兩種模型如圖1所示。

        (a) CBOW模型 (b) Skip-gram模型圖1 Word2Vec中的兩種訓(xùn)練模型

        可以看出,兩種模型均是包含輸入層、輸出層及映射層的淺層神經(jīng)網(wǎng)絡(luò)模型,核心理論是貝葉斯條件概率,研究w和Context(w)之間的條件概率關(guān)系,即P(w|Context(w))或P(Context(w)|w),此處Context(w)定義為詞語w的上下文,數(shù)學(xué)表達(dá)如下:

        Context(wi)=wi-t,…,wi-1,wi,wi+1,…,wi+t

        (2)

        式中:wi表示當(dāng)前詞匯;t表示納入上下文計(jì)算的詞匯數(shù)量,即從當(dāng)前詞匯開始計(jì)算前后需要納入計(jì)算的連續(xù)詞匯的數(shù)量。CBOW模型是通過輸入上下文對(duì)其中詞匯進(jìn)行預(yù)測(cè),而Skip-gram與之相反,通過詞匯對(duì)上下文進(jìn)行預(yù)測(cè)。Word2Vec為了提高訓(xùn)練的效率,還提供了兩種優(yōu)化算法,分別是Hierachy Softmax和Negative Sampling,通過使用Word2Vec訓(xùn)練可以輸出一組質(zhì)量相對(duì)較高的低維詞向量,并且語義相近的詞匯將被映射到空間距離相近的位置上。

        2.2 編輯距離

        編輯距離(Levenshtein Distance)是Levenshtein[2]提出的方法,用于表示一個(gè)字符串轉(zhuǎn)變?yōu)榱硪粋€(gè)字符串所需的最小操作步數(shù)。一步操作包括刪除一個(gè)字符、增加一個(gè)字符和修改一個(gè)字符三種情況,假設(shè)現(xiàn)有字符串A和字符串B,使用Ai表示A字符串前i個(gè)字符構(gòu)成的子串,同理使用Bj表示B字符串前j個(gè)字符構(gòu)成的子串,用LD(i,j)表示字符串A和B之間的編輯距離,則根據(jù)編輯距離算法可得計(jì)算式:

        (3)

        3 基于詞向量的單詞拼寫識(shí)別方法

        本文以文本詞向量為詞義相似度的評(píng)判基礎(chǔ),通過改進(jìn)的編輯距離模型對(duì)詞義相似度的模型進(jìn)行修正,綜合考慮文本的語義和編輯距離的影響提出一種文本相似度計(jì)算方法,以此為基礎(chǔ)提出了一種文本單詞拼寫檢測(cè)糾錯(cuò)的算法。本節(jié)通過對(duì)編輯距離模型、綜合文本相似度模型及單詞拼寫錯(cuò)誤檢測(cè)方法三個(gè)方面進(jìn)行概述。

        3.1 基于物理鍵盤輸入方式的編輯距離模型

        Levenshtein[2]提出的編輯距離可以一定程度的描述兩個(gè)單詞之間的拼寫相似程度,但是Stack Overflow是一個(gè)開放的網(wǎng)絡(luò)社區(qū),其中絕大多數(shù)詞匯都是通過計(jì)算機(jī)鍵盤進(jìn)行輸入的,因此有一部分詞匯錯(cuò)誤是鍵盤鍵位相近導(dǎo)致的誤操作所造成的。本文將在原始編輯距離公式上進(jìn)行改進(jìn),將因鍵盤鍵位相近導(dǎo)致誤操作的情況納入編輯距離計(jì)算中。

        本文使用無向圖的方式表示鍵盤鍵位,根據(jù)國(guó)際標(biāo)準(zhǔn)QWERTY鍵盤的物理鍵位位置,構(gòu)建如圖2所示的無向圖。文獻(xiàn)[4]使用無向圖中的最短路徑作為距離引入到編輯距離當(dāng)中,但實(shí)際上針對(duì)國(guó)際標(biāo)準(zhǔn)鍵盤布局,有一種較為常用的輸入指法,在該指法下,用戶在輸入的過程中,不同的輸入錯(cuò)誤情況出現(xiàn)的概率會(huì)根據(jù)指法中鍵位的分布而存在偏差,鍵盤指法的分布如圖2所示。

        圖2 鍵盤布局和鍵盤指法分布圖

        文獻(xiàn)[11]中針對(duì)鍵盤指法提出了三種輸入錯(cuò)誤的類型:(1) 錯(cuò)誤字母與正確字母位于同一個(gè)手指負(fù)責(zé)的區(qū)域(此類錯(cuò)誤情況定義為W1);(2) 錯(cuò)誤字母與正確字母位于同一只手的相鄰手指負(fù)責(zé)的區(qū)域(此類錯(cuò)誤情況定義為W2);(3) 錯(cuò)誤字母與正確字母位于不同手的相鄰手指負(fù)責(zé)的區(qū)域(此類錯(cuò)誤情況定義為W3)。

        以單詞“word2vec”為例,與字母“w”相鄰部分的鍵位如圖3所示,用戶在執(zhí)行鍵入“W”的操作時(shí),若錯(cuò)誤輸入為“2”“S”則屬于W1情況,若錯(cuò)誤輸入為“3”“Q”“E”“A”則屬于W2情況。

        圖3 字母“W”相鄰布局圖

        文獻(xiàn)[11]通過大量的統(tǒng)計(jì)實(shí)驗(yàn)表明,上述三種錯(cuò)誤情況出現(xiàn)的概率滿足如下關(guān)系:

        (4)

        式中:W1、W2、W3分別代表上文提及的發(fā)生三種輸入錯(cuò)誤類型的事件;P(W)表示不同輸入錯(cuò)誤類型所代表的事件的發(fā)生概率。因此,將上述無向圖改為加權(quán)無向圖,將邊賦予不同的權(quán)值。同樣以“word2vec”為例,如果使用圖的最短距離直接作為鍵盤鍵位對(duì)編輯距離的影響因子,則“mord2vec”和“tord2vec”的影響程度是不一樣的,但是實(shí)際上,一旦超過“相鄰”鍵位這個(gè)范疇,這種詞語中字符的區(qū)別則更傾向于不同單詞或其他錯(cuò)誤情況,因此本文在上述基礎(chǔ)上引入一個(gè)閾值,當(dāng)其最短距離超過閾值時(shí),則認(rèn)為該字符差異不是由鍵盤物理鍵位的誤操作引起的。

        根據(jù)上述思路,首先根據(jù)三種錯(cuò)誤情況出現(xiàn)的概率對(duì)鍵盤鍵位圖中各邊的權(quán)值進(jìn)行設(shè)定,根據(jù)上述規(guī)則,設(shè)W1=1、W2=2、W3=3。盡管某些情況下,同一手指負(fù)責(zé)的區(qū)域出錯(cuò)的可能性較大。由于兩個(gè)字母按鍵相隔距離較遠(yuǎn)時(shí),其混淆輸入的可能性將大幅度下降,因此在加權(quán)圖的距離計(jì)算時(shí)將距離乘跳數(shù)作為其距離的最終值,同時(shí)引入閾值T=4,將誤操作范圍界定于圖3所示的范圍內(nèi)。則任意兩個(gè)鍵盤可輸入字符串A和B之間的距離Dk的計(jì)算公式如下:

        (5)

        (6)

        則推導(dǎo)可得任意兩個(gè)字符串A和B,改進(jìn)后編輯距離的影響因子I(A,B)的計(jì)算式如下:

        (7)

        綜上,對(duì)原始編輯距離公式修正為:

        LDk(A[i],B[j])=

        (8)

        3.2 詞匯綜合相似度模型

        基于詞向量關(guān)注每個(gè)詞匯上下文情況,而不關(guān)注詞匯拼寫本身的特性,且絕大部分拼寫錯(cuò)誤詞匯,輸入者所想表達(dá)的語義與其對(duì)應(yīng)的正確詞匯是一致的,因此錯(cuò)誤詞匯的上下文特征與正確詞匯的上下文特征相似度較高,也就是在向量空間中二者詞向量間的夾角余弦值較小,因此將詞向量間的余弦相似度值與上述改進(jìn)的編輯距離同時(shí)納入到綜合相似度評(píng)分的計(jì)算中。

        對(duì)任意兩個(gè)詞A和B的綜合相似度評(píng)分S(A,B)進(jìn)行計(jì)算,S(A,B)與A、B對(duì)應(yīng)詞向量的余弦相似度成正比,與LDk成反比,由此可得S(A,B)計(jì)算公式為:

        特深井實(shí)施應(yīng)依據(jù)地層深度方向宏觀分布規(guī)律將特深井分為上部、中部和下部三段分別考慮。本文依據(jù)科學(xué)特深井地層深度方向的不同特點(diǎn),以孔內(nèi)安全問題為技術(shù)主線,提出具有針對(duì)性的鉆孔安全技術(shù)措施,從而提出特深井施工技術(shù)體系初步方案及其重大關(guān)鍵技術(shù)構(gòu)想。

        (9)

        式中:a、b表示詞語A、B所對(duì)應(yīng)的詞向量;cos(a·b)表示A、B詞語對(duì)應(yīng)詞向量的余弦相似度;LDk(A,B)表示改進(jìn)的詞語A、B的編輯距離;max()表示選取最大值函數(shù);len()表示字符串長(zhǎng)度。若兩個(gè)詞語的編輯距離等于最長(zhǎng)詞語的字符數(shù),則意味著在本文模型中,這兩個(gè)詞匯沒有任何相似之處,因此將其相似度綜合評(píng)分直接定為0。

        3.3 基于詞向量的自動(dòng)拼寫錯(cuò)誤識(shí)別

        本文提出的算法會(huì)對(duì)文本中每一個(gè)詞語進(jìn)行分析。對(duì)于每一個(gè)被檢測(cè)詞語,首先通過Word2Vec計(jì)算的模型獲得與當(dāng)前詞語向量余弦語義相似度最高的十個(gè)詞語組成候選詞集合,分別對(duì)當(dāng)前詞語和候選詞集合中的所有詞語計(jì)算綜合相似度評(píng)分,獲取評(píng)分最高的詞語,對(duì)比兩個(gè)詞語的詞頻。若當(dāng)前被檢測(cè)詞語的詞頻低于候選集中評(píng)分最高的詞語,則使用該詞語替換當(dāng)前詞語,達(dá)到詞語糾錯(cuò)的目的。因此要對(duì)文本語料進(jìn)行處理和訓(xùn)練,獲得詞向量模型。首先對(duì)文本進(jìn)行預(yù)處理,原始Stack Overflow的文本數(shù)據(jù)如下:

        PyXML works well.

        You didn t say what platform you re using, however if you re on Ubuntu you can get it with sudo apt-get install python-xml. I m sure other Linux distros have it as well.

        If you re on a Mac, xpath is already installed but not immediately accessible. You can set PY_USE_XMLPLUS in your environment or do it the Python way before you import xml.xpath:

        if sys.platform.startswith(′darwin′):
         os.environ[′PY_USE_XMLPLUS′]=′1′
        

        In the worst case you may have to build it yourself. This package is no longer maintained but still builds fine and works with modern 2.x Pythons.Basic docs are here.

        Stack Overflow的原始文本是按照HTML的格式組織的,其中包含大量的HTML標(biāo)簽和無意義的格式信息,因此對(duì)上述原始數(shù)據(jù)的處理步驟如下:

        (1) 解析HTML結(jié)構(gòu)文本獲得自然語言文本。在解析HTML文本的過程中,包含兩類標(biāo)簽,一類是諸如


        僅對(duì)文本格式或樣式設(shè)置的標(biāo)簽,此類標(biāo)簽應(yīng)直接刪除而保留標(biāo)簽內(nèi)的文本;另一類是諸如等包含鏈接、代碼等與自然語言文段語義不相關(guān)的內(nèi)容,此類標(biāo)簽應(yīng)與標(biāo)簽內(nèi)文本一同刪除。

        (2) 清理轉(zhuǎn)義字符。對(duì)文本中部分轉(zhuǎn)義字符進(jìn)行識(shí)別和刪除,該部分字符內(nèi)嵌于HTML標(biāo)簽內(nèi)大部分用于對(duì)格式進(jìn)行調(diào)整或表達(dá)某類符號(hào),無實(shí)際語義。

        (3) 刪除常規(guī)標(biāo)點(diǎn)符號(hào)。由于Stack Overflow文本數(shù)據(jù)主題是計(jì)算機(jī)編程領(lǐng)域,因此文本中包含大量特殊字符,該類字符少量與語義相關(guān),例如“C”“C#”,在計(jì)算機(jī)編程領(lǐng)域中這兩個(gè)詞匯代表著兩種不同的技術(shù),若刪除特殊符號(hào)“#”對(duì)文本語義產(chǎn)生影響較大,因此本步僅對(duì)常規(guī)標(biāo)點(diǎn)符號(hào)進(jìn)行刪除。

        (4) 分詞處理。由于Stack Overflow本身是一個(gè)國(guó)外論壇,因此其中所有的文本均為英語文本,英語文本直接使用空格作為分界進(jìn)行分詞即可。

        (5) 對(duì)文本進(jìn)行詞類還原。同一個(gè)詞匯會(huì)存在不同形式,但其語義相同,因此需要對(duì)詞匯進(jìn)行詞類還原,包括動(dòng)詞時(shí)態(tài)還原以及名詞復(fù)數(shù)還原,這里使用NLTK[12]中的詞類還原工具WordNetLemmatizer對(duì)文本中的詞性進(jìn)行還原。

        經(jīng)過上述五步的數(shù)據(jù)處理,可以獲得最終用以訓(xùn)練的文本數(shù)據(jù)。針對(duì)樣例數(shù)據(jù),上述五步處理過程的結(jié)果如表1所示。

        表1 樣例數(shù)據(jù)處理過程

        續(xù)表1

        接下來使用Word2Vec工具對(duì)處理好的文本進(jìn)行訓(xùn)練,Word2Vec自身集成了兩種詞向量訓(xùn)練模型,以及兩種訓(xùn)練優(yōu)化算法,因此共有四種詞向量訓(xùn)練框架,如表2所示。

        表2 Word2Vec四種詞向量訓(xùn)練框架

        本文中數(shù)據(jù)量較大,且存在較多的專業(yè)生僻詞,因此選取Skip-gram算法進(jìn)行計(jì)算,而Hierachy Softmax使用了哈夫曼編碼,因此效率較高,所以本文使用Skip-gram+HS的框架訓(xùn)練詞向量。

        詞向量訓(xùn)練完成后,即可對(duì)文本的每一個(gè)詞匯進(jìn)行掃描識(shí)別,但是在計(jì)算機(jī)編程領(lǐng)域存在較多專業(yè)性生僻詞匯和縮寫詞匯的特殊詞匯情況,一個(gè)特殊詞匯可能是標(biāo)準(zhǔn)英語詞匯字典中不存在的詞匯,也有可能是某個(gè)較長(zhǎng)詞匯或者詞組的縮寫。一般情況下,在特定的專業(yè)領(lǐng)域內(nèi),該類情況所衍生出的一系列特殊詞匯的拼寫和形式都較為統(tǒng)一,因此使用大量的同一領(lǐng)域內(nèi)的語料進(jìn)行訓(xùn)練后,針對(duì)專業(yè)性生僻詞匯和縮寫應(yīng)存在以下兩種情況:

        (1) 專業(yè)性生僻詞匯。此類詞匯的特征是在標(biāo)準(zhǔn)英語詞匯字典中不存在卻真實(shí)的表現(xiàn)了該領(lǐng)域的某個(gè)含義,此類詞匯反映在向量空間中應(yīng)是作為一個(gè)語義獨(dú)立的單獨(dú)詞匯,因此從向量特征或是語義的角度來說不存在可以替換的詞匯也不會(huì)被作為錯(cuò)誤詞匯處理。

        (2) 縮寫詞匯。此類詞匯的特征是拼寫長(zhǎng)度相對(duì)較短,其語義可以代表另一個(gè)單詞,這種單詞應(yīng)分為兩個(gè)方面處理:當(dāng)縮寫詞匯拼寫長(zhǎng)度過短時(shí)一個(gè)字母發(fā)生變化,盡管編輯距離很短,但是對(duì)于這類詞來說極大概率會(huì)變成毫不相關(guān)的另一個(gè)詞匯,而且在長(zhǎng)度極短的詞匯中出現(xiàn)錯(cuò)誤的概率也相對(duì)較低,因此應(yīng)當(dāng)根據(jù)文本情況設(shè)定文本檢測(cè)的最小單詞長(zhǎng)度,在檢測(cè)的過程中跳過過于短小的詞匯;而對(duì)于長(zhǎng)度較長(zhǎng)的縮寫詞匯,反映在向量空間模型中應(yīng)該與其代表的原有詞匯相似度最高,但一般縮寫詞匯與原有詞匯的編輯距離都相對(duì)較長(zhǎng),因此也不會(huì)進(jìn)行更改處理。即便縮寫詞匯與原有詞匯的拼寫差距較小,那么被修改為原有詞匯對(duì)原文的文意也沒有影響。

        綜上所述應(yīng)按照相關(guān)規(guī)則檢測(cè)所有符合要求的單詞,對(duì)每個(gè)單詞,識(shí)別工作流程如圖4所示。

        圖4 詞語拼寫糾錯(cuò)流程

        通過詞向量模型構(gòu)建與之余弦相似度最小的10個(gè)詞匯候選集,每個(gè)詞與被檢測(cè)詞計(jì)算綜合相似度評(píng)分,選取評(píng)分最高的一個(gè)詞匯,與原詞匯對(duì)比在整體文本中出現(xiàn)的詞頻,詞頻更高的單詞視為該語境中更接近正確的詞語,若候選集中的詞語詞頻更高,則替換原詞匯,反之保留原詞匯。

        4 實(shí) 驗(yàn)

        為了驗(yàn)證本文所提算法的實(shí)際效果,本文從兩個(gè)方面來進(jìn)行實(shí)驗(yàn)驗(yàn)證:計(jì)算機(jī)編程領(lǐng)域內(nèi)專業(yè)詞語錯(cuò)誤檢測(cè)糾正效果和糾錯(cuò)后文本語義還原效果。本文驗(yàn)證實(shí)驗(yàn)環(huán)境為CPU:Intel Core i5- 4590,內(nèi)存:8 GB RAM,操作系統(tǒng):Microsoft Windows 10 1903;實(shí)驗(yàn)程序使用Python語言編寫,Python版本3.7;調(diào)用NLTK[12]及Gensim[13]相關(guān)的Python庫;文本數(shù)據(jù)來源于開源計(jì)算機(jī)問答社區(qū)Stack Overflow[14]中的文本數(shù)據(jù)。對(duì)比算法為基于經(jīng)典編輯距離和詞頻統(tǒng)計(jì)的錯(cuò)誤詞匯檢測(cè)糾正算法。

        4.1 錯(cuò)詞檢測(cè)糾正效果驗(yàn)證

        錯(cuò)詞檢測(cè)糾正率驗(yàn)證的實(shí)驗(yàn)主要針對(duì)本文提出算法模型對(duì)計(jì)算機(jī)領(lǐng)域特定詞匯的錯(cuò)誤檢測(cè)糾正效果進(jìn)行實(shí)驗(yàn)驗(yàn)證。在所有Stack Overflow文本數(shù)據(jù)中,隨機(jī)選取500句具有專業(yè)領(lǐng)域詞匯的句子進(jìn)行人工的錯(cuò)詞糾正,獲得500句詞匯拼寫標(biāo)準(zhǔn)的句子集合作為實(shí)驗(yàn)數(shù)據(jù)的對(duì)照數(shù)據(jù),對(duì)上述500句文本中675個(gè)涉及計(jì)算機(jī)編程領(lǐng)域的詞匯進(jìn)行人工給錯(cuò),此處錯(cuò)誤的類型包括各類的輸入錯(cuò)誤,每類錯(cuò)誤均在Stack Overflow全部文本數(shù)據(jù)中進(jìn)行檢索,確保該類型錯(cuò)誤為真實(shí)存在的錯(cuò)誤情況。

        同時(shí)對(duì)上述500句人工給錯(cuò)的數(shù)據(jù)分別執(zhí)行本文提出的基于Word2vec和基于經(jīng)典編輯距離的檢測(cè)糾錯(cuò)算法,根據(jù)數(shù)據(jù)實(shí)際情況,僅對(duì)拼寫長(zhǎng)度大于2的詞匯進(jìn)行檢測(cè),兩種算法的訓(xùn)練數(shù)據(jù)均為全部Stack Overflow文本數(shù)據(jù)。實(shí)驗(yàn)分別將兩種算法計(jì)算的結(jié)果與對(duì)照數(shù)據(jù)進(jìn)行對(duì)照,對(duì)錯(cuò)誤詞匯的識(shí)別數(shù)、改正數(shù)及正確詞匯的誤判數(shù)三個(gè)方面進(jìn)行統(tǒng)計(jì)和對(duì)比,結(jié)果如表3所示。

        表3 錯(cuò)詞糾正效果實(shí)驗(yàn)結(jié)果

        通過實(shí)驗(yàn)結(jié)果所示,經(jīng)典編輯距離算法和基于詞向量的糾錯(cuò)算法的糾正效果如表4所示。

        表4 糾正效果對(duì)比 (%)

        通過實(shí)驗(yàn)驗(yàn)證可得,相比于經(jīng)典的編輯距離算法,本文提出的基于Word2Vec的拼寫錯(cuò)誤檢測(cè)算法的識(shí)別率提高了4.1%,糾正率提高了22.63%,誤判率減少了49.33%,整體效果提升顯著。

        4.2 語義還原效果驗(yàn)證

        語義還原效果的實(shí)驗(yàn)驗(yàn)證使用的數(shù)據(jù)與錯(cuò)詞檢測(cè)糾正效果實(shí)驗(yàn)相同,引入BLEU值[15]作為語義還原度的評(píng)價(jià)標(biāo)準(zhǔn),BLEU原用于評(píng)價(jià)機(jī)器翻譯的翻譯準(zhǔn)確度,本文使用該值評(píng)價(jià)修改后的文本與原文本的語義相似程度,通過上述實(shí)驗(yàn)中兩種算法糾正完成后的500句文本語句與標(biāo)準(zhǔn)對(duì)照文本進(jìn)行BLEU的計(jì)算,結(jié)果如表5所示。

        表5 兩種算法結(jié)果平均BLEU值對(duì)比

        通過BLEU值對(duì)比,本文提出的基于Word2Vec的拼寫檢測(cè)糾錯(cuò)算法,在語義還原度上比經(jīng)典的編輯距離算法提高了7.58%,具有較好的語義還原性。

        綜合上述實(shí)驗(yàn)結(jié)果表明,本文提出的基于Word2Vec的計(jì)算機(jī)編程領(lǐng)域詞語拼寫錯(cuò)誤檢測(cè)算法,能夠在保證較高語義還原度的基礎(chǔ)上,較好地對(duì)計(jì)算機(jī)編程領(lǐng)域文本進(jìn)行自動(dòng)拼寫錯(cuò)誤檢測(cè)和校正。

        5 結(jié) 語

        目前,在自然語言分析領(lǐng)域,語料中的錯(cuò)誤詞匯依然影響著數(shù)據(jù)統(tǒng)計(jì)和挖掘的精確性,本文提出了一種基于詞向量計(jì)算詞語相似度,再通過改進(jìn)的編輯距離算法對(duì)相似度進(jìn)行修正,針對(duì)Stack Overflow開放性問答社區(qū)中計(jì)算機(jī)編程領(lǐng)域的大量文本實(shí)現(xiàn)快速自動(dòng)糾錯(cuò)。經(jīng)過實(shí)驗(yàn)驗(yàn)證,相比較于現(xiàn)有的文本糾錯(cuò)方法,本文算法能夠在保證原文語義的前提下自動(dòng)將大部分文本中的錯(cuò)誤進(jìn)行糾正,取得了較好的效果。

        猜你喜歡
        語義向量詞語
        容易混淆的詞語
        向量的分解
        聚焦“向量與三角”創(chuàng)新題
        找詞語
        語言與語義
        詞語欣賞
        “上”與“下”語義的不對(duì)稱性及其認(rèn)知闡釋
        向量垂直在解析幾何中的應(yīng)用
        向量五種“變身” 玩轉(zhuǎn)圓錐曲線
        一枚詞語一門靜
        加勒比熟女精品一区二区av| 日本爽快片18禁免费看| 国产女精品视频网站免费| AV无码免费不卡在线观看| 国产三级c片在线观看| 久久精品中文少妇内射| 国产台湾无码av片在线观看| 日韩我不卡| 国产一区二区三区经典| 亚洲处破女av日韩精品中出| 欧美中日韩免费观看网站| 一本大道香蕉最新在线视频| 中文字幕在线人妻视频| 激情五月我也去也色婷婷| 无码va在线观看| 亚洲三级黄色| 国产成人久久综合第一区| 黄色av一区二区在线观看| 天天天天躁天天爱天天碰| 亚洲VA不卡一区| 黄页免费人成网址大全| 老师开裆丝袜喷水视频| 欧美老熟妇欲乱高清视频| 伊人狠狠色j香婷婷综合| 亚洲av乱码一区二区三区人人 | 亚洲精品无码久久久久去q| 精品乱码一区二区三区四区| 国产精品亚洲精品日产久久久| 日韩精品乱码中文字幕| 国产精品无码aⅴ嫩草| 中文字幕免费观看视频| 黄片午夜免费观看视频国产| 洲色熟女图激情另类图区| 特级av毛片免费观看| 国产一区二区精品久久凹凸| 人妻少妇偷人精品视频| 日日拍夜夜嗷嗷叫国产| 在教室伦流澡到高潮hnp视频| 国产综合一区二区三区av| 国产99一区二区三区四区| 伊伊人成亚洲综合人网香|