0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

幾種基于深度學(xué)習(xí)的中文糾錯模型

深度學(xué)習(xí)自然語言處理 ? 來源:NLP日志 ? 作者:NLP日志 ? 2022-06-09 11:19 ? 次閱讀

1 簡介

在之前的篇章我們對中文文本糾錯做了一個系統(tǒng)的介紹,曾經(jīng)盛行的糾錯系統(tǒng)都是基于混淆集+n-gram語言模型的,其中混淆集構(gòu)建成本巨大,同時相對笨重,而n-gram語言模型也沒考到句子的語義信息,所以導(dǎo)致最終的F1得分都比較小,很難滿足真實場景的需要,泛化能力很比較差。同時以往的糾錯系統(tǒng)都是基于pipeline的,檢測任務(wù)跟糾錯任務(wù)是相互分開的,各個環(huán)節(jié)緊急相連,前面的環(huán)節(jié)如果出現(xiàn)了錯誤,后面的環(huán)節(jié)也很難進(jìn)行修正。任何一個環(huán)節(jié)出現(xiàn)了問題,都會影響整體的結(jié)果。

隨著深度學(xué)習(xí)的興起,人們逐漸用深度學(xué)習(xí)模型去替換以往的混淆集+n-gram語言模型的方式,根據(jù)句子的語義信息去進(jìn)行糾錯,同時,還將檢測任務(wù)跟糾正任務(wù)聯(lián)合到一起,做成一個end2end的系統(tǒng),避免pipeline方式帶來的問題。在這里我們介紹幾種基于深度學(xué)習(xí)的中文糾錯模型,讓大家對于中文文本糾錯有更加深入的理解。

2Confusionset-guided Pointer Network

Confusionset-guided Pointer Network是一個seq2seq模型,同時學(xué)習(xí)如何從原文本復(fù)制一個正確的字或者從混淆集中生成一個候選字。整個模型分為encoder跟decoder兩部分。其中encoder用的BiLSTM用于獲取原文本的高層次表征,例如圖中左下角部分,decoder部分用的帶注意力機(jī)制的循環(huán)神經(jīng)網(wǎng)絡(luò),在解碼的每個時刻,都能生成相應(yīng)的上下文表征。生成的上下文表征有兩個用途,第一個是利用這部分表征作為輸入,通過矩陣乘法跟softmax來計算當(dāng)前位置生成全詞表中各個字的概率(右邊的概率圖)。第二個用途是利用這部分上下文表征加上位置信息來計算當(dāng)前時刻復(fù)制原文本某個位置的字的概率或者需要生成原文本中不存在的字的概率(左邊的概率圖,這里其實是一個分類模型,假設(shè)原文本的長度是n,那么全部分類有n+1種,其中1至n的標(biāo)簽的概率代表當(dāng)前時刻要復(fù)制原文本第i個位置的字的概率,第n+1的類別代表當(dāng)前時刻要生成原文本不存在的字的概率。如果是1至n中某個類別的概率最大,那么當(dāng)前位置的解碼結(jié)果就是復(fù)制對應(yīng)概率最大的原文本的某個字,如果是第n+1個類別概率最大,那么就會用到前面提及的第一個用途,計算當(dāng)前位置詞表中各個字的概率,取其中概率最大的字作為當(dāng)前時刻解碼的結(jié)果)。這里要注意的是,生成新字為了保證結(jié)果更加合理,會事先構(gòu)建好一個混淆集,對于每個字,都有若干個可能錯別字(形近字或者同音字等),模型會對生成的候選會限制在這個字的混淆集中,也不是在全詞表中選擇,所以才稱為confusionset-guided。訓(xùn)練時會聯(lián)合encoder跟decoder一同訓(xùn)練,以預(yù)測各個類別的交叉熵?fù)p失作為模型優(yōu)化目標(biāo)。

Confusionset-guided Pointer Network看起來跟之前提及的CopyNet思路很接近文本生成系列之文本編輯,同時考慮到copy原文跟生成新字兩種可能性,相對于之前的seq2seq模型的改進(jìn)主要是引入混淆集來控制可能的候選字符。這種設(shè)置也比較合理,中文的錯別字多是在形狀或者發(fā)音上有一定相似之處,通過混淆集可以進(jìn)一步約束糾錯的結(jié)果,防止糾錯的不可控。但是由于生成的結(jié)果一定來源于混淆集,所以混淆集的質(zhì)量也影響了最終糾錯的效果。一個合理的混淆集的構(gòu)建都需要付出比較大的代價。

80c2be56-e72c-11ec-ba43-dac502259ad0.png

圖1:Confusionset-guided Pointer Network框架

3 FASPell

這是愛奇藝發(fā)布在EMNLP2019的基于詞的中文糾錯的方法,F(xiàn)ASPell有兩個特別的點,一個是用BERT為基礎(chǔ)的DAE取代了傳統(tǒng)的混淆集,另一點是使用置信度-相似度的解碼器來過濾候選集,從而提高糾錯效果。

FASPell首先利用Bert來生成句子每個字符的可能候選結(jié)果,但是Bert的預(yù)訓(xùn)練任務(wù)MLM中選中的token有10%是被隨機(jī)替代的,這跟文本糾錯的場景不符,所以需要對Bert進(jìn)行一定的微調(diào)。具體過程就是對MLM任務(wù)做一定調(diào)整,調(diào)整策略如下

a)如果文本沒有錯誤,那么沿用之前Bert的策略。

b)如果文本有錯誤,那么隨機(jī)選擇的要mask的位置的字,如果處于錯誤的位置,那么設(shè)置對應(yīng)的標(biāo)簽為糾錯后的字,也就是相對應(yīng)的正確的字。如果不是處于錯誤的位置,那么設(shè)置對應(yīng)的標(biāo)簽為原來文本中的字。

在獲得文本可能的候選結(jié)果后,F(xiàn)ASPell利用置信度-相似度的解碼器來過濾這些候選結(jié)果。這里為什么需要對Bert生成的候選字進(jìn)行過濾呢?因為漢語中常見的錯誤大部分在字形或者發(fā)音有一定相似之處,但是Bert生成的候選字并沒有考慮到中文糾錯的背景,所以Bert提供的候選結(jié)果很多都是糾錯任務(wù)不相關(guān)的。這里每個位置的候選詞的置信度由Bert計算得到,相似度這里包括字形相似度跟音素相似度,其中因素相似度考慮到在多種語言中的發(fā)音。對于每個位置的候選詞,只有當(dāng)置信度,字形相似度跟音素相似度滿足某個條件時,才會用這個候選字符替代到原文對應(yīng)字符。至于這個過濾條件,一般是某種加權(quán)組合,通常需要置信度跟相似度的加權(quán)和超過一定閾值才會進(jìn)行糾錯,加權(quán)相關(guān)的參數(shù)可以通過訓(xùn)練集學(xué)習(xí)得到,在推理時就可以直接使用。

FASPell沒有單獨的檢測模塊,利用BERT來生成每個位置的候選字,避免了以往構(gòu)建混淆集的工作,同時利用后續(xù)的置信度-相似度的解碼器,對候選結(jié)果進(jìn)行過濾,從而進(jìn)一步提高糾錯效果。

8105f05e-e72c-11ec-ba43-dac502259ad0.png

圖2: FASPell框架

4Soft-Masked BERT

Soft-masked Bert是字節(jié)發(fā)表在ACL 2020的中文糾錯方法,針對目前主流的深度學(xué)習(xí)糾錯方法都是利用Bert生成各個位置的可能候選,但是Bert本身缺乏判斷每個位置是否需要糾錯的能力,也就是缺乏檢測能力。為此,提出了一個包含檢測網(wǎng)絡(luò)跟糾正網(wǎng)絡(luò)的中文糾錯方法。整個流程是經(jīng)過檢測網(wǎng)絡(luò),然后再經(jīng)過糾錯網(wǎng)絡(luò)。其中檢測網(wǎng)絡(luò)是的雙向GRU+全連接層做一個二分類任務(wù),計算原文本每個位置是否有錯誤的概率。每個位置有錯別字的概率為p,沒有錯別字的概率是1-p,如圖中左邊部分。糾正網(wǎng)絡(luò)采用的是預(yù)訓(xùn)練模型Bert,但是在嵌入層的地方有所不同,每個位置的嵌入是由原文本中對應(yīng)位置的字的詞嵌入跟[MASK]的詞嵌入的加權(quán)和得到的,這里的[MASK]的權(quán)重等于檢測網(wǎng)絡(luò)預(yù)測的當(dāng)前位置是錯別字的概率。具體如圖4所示,所以如果檢測網(wǎng)絡(luò)判斷當(dāng)前位置是錯別字的概率較高,那么在糾正網(wǎng)絡(luò)中該位置的詞嵌入中[MASK]的權(quán)重就更高,反之,如果檢測網(wǎng)絡(luò)判斷當(dāng)前位置是錯別字的概率很低,那么在糾正網(wǎng)絡(luò)中該位置的詞嵌入中[MASK]的權(quán)重就更低。利用Bert獲得每個位置的表征后,將Bert最后一層的輸出加上原文本中對應(yīng)位置的詞嵌入作為每個時刻最終的表征,通過全連接層+Softmax去預(yù)測每個位置的字,最終選擇預(yù)測概率最大的字作為當(dāng)前結(jié)果的輸出。訓(xùn)練過程中聯(lián)合訓(xùn)練檢測網(wǎng)絡(luò)跟糾正網(wǎng)絡(luò)的,模型的目標(biāo)包括兩部分,一個是檢測網(wǎng)絡(luò)的對數(shù)似然函數(shù),另一個是糾正網(wǎng)絡(luò)的對數(shù)似然函數(shù),通過加權(quán)求和聯(lián)合這兩部分,使得加權(quán)和的負(fù)數(shù)盡可能小,從而同時優(yōu)化這兩個網(wǎng)絡(luò)的參數(shù)。

8157a6ba-e72c-11ec-ba43-dac502259ad0.png

圖3: Soft-Masked BERT框架

81901680-e72c-11ec-ba43-dac502259ad0.png

圖4: Softed-masked embedding

Soft-Masked BERT相比直接采用預(yù)訓(xùn)練模型BERT,利用檢測網(wǎng)絡(luò)從而得到更合理的soft-masked embedding,緩解了Bert缺乏充足檢測能力的問題,雖然改動不大,但是效果提升明顯。

5 MLM-phonetics

個人感覺MLM-phonetics是在soft-masked BERT的基礎(chǔ)上做的優(yōu)化,思路也比較接近,同樣是包括檢測網(wǎng)絡(luò)跟糾正網(wǎng)絡(luò),主要有幾點不同,

81b3bd42-e72c-11ec-ba43-dac502259ad0.png

圖5: MLM-phonetics框架

a)糾正網(wǎng)絡(luò)的詞嵌入組成不同,Soft-Masked BERT的詞嵌入由原文本中各個位置本身的詞嵌入和[MASK]的詞嵌入組成,而MLM-phonetics則是將相應(yīng)[MASK]的詞嵌入替換為相應(yīng)位置對應(yīng)的拼音序列的嵌入。

b)目標(biāo)函數(shù)不同,MLM-phonetics在糾正網(wǎng)絡(luò)的目標(biāo)函數(shù)中加入了檢測網(wǎng)絡(luò)的預(yù)測結(jié)果作為一個權(quán)重項。

c)檢測網(wǎng)絡(luò)不同,MLM-phonetics的檢測網(wǎng)絡(luò)采用了預(yù)訓(xùn)練模型Bert。

d) BERT預(yù)訓(xùn)練任務(wù)不同,為了更加適配中文糾錯任務(wù)的場景,MLM-phonetics的Bert的MLM任務(wù)中預(yù)測的字都是根據(jù)漢字常見的錯誤選取的,要不在字形上有相似之處,要不在發(fā)音上有相似之處。

82090e3c-e72c-11ec-ba43-dac502259ad0.png

圖6: MLM-phonetics預(yù)訓(xùn)練任務(wù)

6 總結(jié)

為了對比上述幾種中文糾錯方法之間的差異,可以直接比較這幾種方法在幾個常見中文糾錯數(shù)據(jù)集上的性能表現(xiàn),在F1值上都遠(yuǎn)超基于混淆集+n-gram語言模型的方式。

823edcb0-e72c-11ec-ba43-dac502259ad0.png

圖7:不同糾錯模型的效果對比

除此之外,關(guān)于中文糾錯任務(wù),還有一些需要注意的點。

a)由于糾錯任務(wù)可以分為檢測跟糾正兩個過程,所以相應(yīng)的錯誤也可以分為這兩種類型。目前基于BERT的中文糾錯方法的檢測錯誤的比例要高于糾正錯誤的比例,這也得益于Bert訓(xùn)練過程的MLM任務(wù)。

b)中文糾錯方法基本都是以字為基本單位,很大程度是因為以詞為單位的話會引入分詞模塊的錯誤,但是可以用分詞的結(jié)構(gòu)來作為字的特征增強(qiáng)。

c)目前中文糾錯任務(wù)有兩種類型的錯誤還沒有很好的解決。第一種是模型需要強(qiáng)大推理能力才能解決,例如“他主動牽了姑娘的手,心里很高心,嘴上卻故作生氣。”這里雖然容易檢測出“高心”是錯別字,但是至于要把它糾正為“寒心”還是“高興”需要模型有強(qiáng)大的推理能力才可以。第二種錯誤是由于缺乏常識導(dǎo)致的(缺乏對這個世界的認(rèn)識),例如“蕪湖:女子落入青戈江,眾人齊救援。”需要知道相關(guān)的地理知識才能把“青戈江”糾正為“青弋江”。

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 檢測
    +關(guān)注

    關(guān)注

    5

    文章

    4399

    瀏覽量

    91263
  • 文本
    +關(guān)注

    關(guān)注

    0

    文章

    118

    瀏覽量

    17047
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5442

    瀏覽量

    120800

原文標(biāo)題:中文文本糾錯系列之深度學(xué)習(xí)篇

文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    FPGA加速深度學(xué)習(xí)模型的案例

    FPGA(現(xiàn)場可編程門陣列)加速深度學(xué)習(xí)模型是當(dāng)前硬件加速領(lǐng)域的一個熱門研究方向。以下是一些FPGA加速深度學(xué)習(xí)
    的頭像 發(fā)表于 10-25 09:22 ?46次閱讀

    AI大模型深度學(xué)習(xí)的關(guān)系

    AI大模型深度學(xué)習(xí)之間存在著密不可分的關(guān)系,它們互為促進(jìn),相輔相成。以下是對兩者關(guān)系的介紹: 一、深度學(xué)習(xí)是AI大
    的頭像 發(fā)表于 10-23 15:25 ?142次閱讀

    深度學(xué)習(xí)模型有哪些應(yīng)用場景

    深度學(xué)習(xí)模型作為人工智能領(lǐng)域的重要分支,已經(jīng)在多個應(yīng)用場景中展現(xiàn)出其巨大的潛力和價值。這些應(yīng)用不僅改變了我們的日常生活,還推動了科技進(jìn)步和產(chǎn)業(yè)升級。以下將詳細(xì)探討深度
    的頭像 發(fā)表于 07-16 18:25 ?1138次閱讀

    深度學(xué)習(xí)模型量化方法

    深度學(xué)習(xí)模型量化是一種重要的模型輕量化技術(shù),旨在通過減少網(wǎng)絡(luò)參數(shù)的比特寬度來減小模型大小和加速推理過程,同時盡量保持
    的頭像 發(fā)表于 07-15 11:01 ?416次閱讀
    <b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>模型</b>量化方法

    深度學(xué)習(xí)模型中的過擬合與正則化

    深度學(xué)習(xí)的廣闊領(lǐng)域中,模型訓(xùn)練的核心目標(biāo)之一是實現(xiàn)對未知數(shù)據(jù)的準(zhǔn)確預(yù)測。然而,在實際應(yīng)用中,我們經(jīng)常會遇到一個問題——過擬合(Overfitting)。過擬合是指模型在訓(xùn)練數(shù)據(jù)上表現(xiàn)
    的頭像 發(fā)表于 07-09 15:56 ?586次閱讀

    深度學(xué)習(xí)中的時間序列分類方法

    的發(fā)展,基于深度學(xué)習(xí)的TSC方法逐漸展現(xiàn)出其強(qiáng)大的自動特征提取和分類能力。本文將從多個角度對深度學(xué)習(xí)在時間序列分類中的應(yīng)用進(jìn)行綜述,探討常用的深度
    的頭像 發(fā)表于 07-09 15:54 ?552次閱讀

    深度學(xué)習(xí)中的模型權(quán)重

    深度學(xué)習(xí)這一充滿無限可能性的領(lǐng)域中,模型權(quán)重(Weights)作為其核心組成部分,扮演著至關(guān)重要的角色。它們不僅是模型學(xué)習(xí)的基石,更是
    的頭像 發(fā)表于 07-04 11:49 ?626次閱讀

    深度學(xué)習(xí)的典型模型和訓(xùn)練過程

    深度學(xué)習(xí)作為人工智能領(lǐng)域的一個重要分支,近年來在圖像識別、語音識別、自然語言處理等多個領(lǐng)域取得了顯著進(jìn)展。其核心在于通過構(gòu)建復(fù)雜的神經(jīng)網(wǎng)絡(luò)模型,從大規(guī)模數(shù)據(jù)中自動學(xué)習(xí)并提取特征,進(jìn)而實
    的頭像 發(fā)表于 07-03 16:06 ?984次閱讀

    深度學(xué)習(xí)模型訓(xùn)練過程詳解

    深度學(xué)習(xí)模型訓(xùn)練是一個復(fù)雜且關(guān)鍵的過程,它涉及大量的數(shù)據(jù)、計算資源和精心設(shè)計的算法。訓(xùn)練一個深度學(xué)習(xí)模型
    的頭像 發(fā)表于 07-01 16:13 ?827次閱讀

    深度學(xué)習(xí)模型優(yōu)化與調(diào)試方法

    深度學(xué)習(xí)模型在訓(xùn)練過程中,往往會遇到各種問題和挑戰(zhàn),如過擬合、欠擬合、梯度消失或爆炸等。因此,對深度學(xué)習(xí)
    的頭像 發(fā)表于 07-01 11:41 ?585次閱讀

    目前主流的深度學(xué)習(xí)算法模型和應(yīng)用案例

    深度學(xué)習(xí)在科學(xué)計算中獲得了廣泛的普及,其算法被廣泛用于解決復(fù)雜問題的行業(yè)。所有深度學(xué)習(xí)算法都使用不同類型的神經(jīng)網(wǎng)絡(luò)來執(zhí)行特定任務(wù)。
    的頭像 發(fā)表于 01-03 10:28 ?1508次閱讀
    目前主流的<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>算法<b class='flag-5'>模型</b>和應(yīng)用案例

    如何基于深度學(xué)習(xí)模型訓(xùn)練實現(xiàn)工件切割點位置預(yù)測

    Hello大家好,今天給大家分享一下如何基于深度學(xué)習(xí)模型訓(xùn)練實現(xiàn)工件切割點位置預(yù)測,主要是通過對YOLOv8姿態(tài)評估模型在自定義的數(shù)據(jù)集上訓(xùn)練,生成一個工件切割分離點預(yù)測
    的頭像 發(fā)表于 12-22 11:07 ?693次閱讀
    如何基于<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>模型</b>訓(xùn)練實現(xiàn)工件切割點位置預(yù)測

    如何基于深度學(xué)習(xí)模型訓(xùn)練實現(xiàn)圓檢測與圓心位置預(yù)測

    Hello大家好,今天給大家分享一下如何基于深度學(xué)習(xí)模型訓(xùn)練實現(xiàn)圓檢測與圓心位置預(yù)測,主要是通過對YOLOv8姿態(tài)評估模型在自定義的數(shù)據(jù)集上訓(xùn)練,生成一個自定義的圓檢測與圓心定位預(yù)測
    的頭像 發(fā)表于 12-21 10:50 ?1595次閱讀
    如何基于<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>模型</b>訓(xùn)練實現(xiàn)圓檢測與圓心位置預(yù)測

    深度學(xué)習(xí)如何訓(xùn)練出好的模型

    算法工程、數(shù)據(jù)派THU深度學(xué)習(xí)在近年來得到了廣泛的應(yīng)用,從圖像識別、語音識別到自然語言處理等領(lǐng)域都有了卓越的表現(xiàn)。但是,要訓(xùn)練出一個高效準(zhǔn)確的深度學(xué)習(xí)
    的頭像 發(fā)表于 12-07 12:38 ?1012次閱讀
    <b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>如何訓(xùn)練出好的<b class='flag-5'>模型</b>

    基于深度學(xué)習(xí)的情感語音識別模型優(yōu)化策略

    基于深度學(xué)習(xí)的情感語音識別模型的優(yōu)化策略,包括數(shù)據(jù)預(yù)處理、模型結(jié)構(gòu)優(yōu)化、損失函數(shù)改進(jìn)、訓(xùn)練策略調(diào)整以及集成學(xué)習(xí)等方面的內(nèi)容。
    的頭像 發(fā)表于 11-09 16:34 ?605次閱讀