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

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

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

基于pipeline的文本糾錯(cuò)系統(tǒng)框架分析

深度學(xué)習(xí)自然語(yǔ)言處理 ? 來(lái)源:深度學(xué)習(xí)自然語(yǔ)言處理 ? 作者:NLP日志 ? 2022-07-07 11:02 ? 次閱讀

1 簡(jiǎn)介

傳統(tǒng)的文本糾錯(cuò)系統(tǒng)基本都是基于pipeline的,將分詞,文本檢測(cè),文本糾正等模塊等剝離開來(lái),同時(shí)經(jīng)常會(huì)在其中插入相應(yīng)的規(guī)則模塊,一環(huán)扣一環(huán),如果生產(chǎn)流水線一樣,依次執(zhí)行,構(gòu)成一個(gè)完整的系統(tǒng)。這種系統(tǒng)設(shè)計(jì)雖然直觀,容易被人所理解,也方便人工介入去優(yōu)化和排查問(wèn)題。但是如果前面環(huán)節(jié)出現(xiàn)了錯(cuò)誤,后面的環(huán)節(jié)很難進(jìn)行彌補(bǔ)。任何一個(gè)環(huán)節(jié)出現(xiàn)的錯(cuò)誤,都會(huì)影響系統(tǒng)整體的效果。各個(gè)子模塊的訓(xùn)練和優(yōu)化都是相互隔離的,子模塊的優(yōu)化并不一定會(huì)導(dǎo)致系統(tǒng)整體性能的提升。

2 TM+LMM

這是比較早期的一個(gè)中文文本糾錯(cuò)系統(tǒng),該系統(tǒng)結(jié)合了規(guī)則模版和統(tǒng)計(jì)的方法,很大程度的解決了同期糾錯(cuò)系統(tǒng)誤報(bào)率過(guò)高的問(wèn)題。TM+LMM中的TM指的是規(guī)則模版(template module),LMM指的統(tǒng)計(jì)模型(translate module)。

該中文糾錯(cuò)系統(tǒng)需要提前準(zhǔn)備的事項(xiàng)有以下幾種。

a)混淆集,為可能的錯(cuò)別字提供候選字符。該系統(tǒng)為5401個(gè)中文字符準(zhǔn)備了相對(duì)應(yīng)的混淆集,每個(gè)中文漢字相應(yīng)的混淆集包含1到20個(gè)不等的字符(也就是有1到20個(gè)漢字you有可能被誤寫成這個(gè)漢字),包括讀音相似和字形相似的字符。同時(shí),混淆集中的元素會(huì)根據(jù)谷歌搜索的結(jié)果進(jìn)行排序,方便后續(xù)的糾正模塊按順序進(jìn)行糾正。

b) n-gram語(yǔ)言模型,一種可以用來(lái)檢測(cè)字符是否錯(cuò)誤的方式。n-gram語(yǔ)言模型通過(guò)最大似然估計(jì)方法在訓(xùn)練數(shù)據(jù)中訓(xùn)練得到(在訓(xùn)練語(yǔ)料中不同字符組合同時(shí)出現(xiàn)的頻率越大,相應(yīng)的n-gram模型得分就越大。這些ngram得分可以用來(lái)計(jì)算句子合理性的得分,如果一個(gè)句子所有ngram得分都很大,那么就說(shuō)明這個(gè)句子是合理的,反之,如果一個(gè)句子所有的n-game得分都很小,那么說(shuō)明這個(gè)句子很大概率是有問(wèn)題的,也就是很大概率有錯(cuò)別字出現(xiàn)。句子的得分跟句子中所有n-game的得分呈正相關(guān),跟句子的長(zhǎng)度呈負(fù)相關(guān)。),從而可以計(jì)算不同字符在當(dāng)前位置的概率得分,更合適的字符可以得到更高的概率值。該系統(tǒng)用到了1-gram跟2-gram的信息

67051424-e659-11ec-ba43-dac502259ad0.png

圖1:2gram得分計(jì)算

c)統(tǒng)計(jì)翻譯模型,可以理解為n-gram語(yǔ)言模型的加強(qiáng)版本。可以計(jì)算出將字符A替換成字符B的一個(gè)條件概率。

TM+LMM的流程如圖所示,

67349226-e659-11ec-ba43-dac502259ad0.png

圖2: TM+LMM框架

a)分詞模塊,將句子切分為以詞為基本單位的結(jié)構(gòu)。其中那些單個(gè)字符的結(jié)果會(huì)被額外關(guān)注,系統(tǒng)會(huì)將其認(rèn)為有是有更大概率出現(xiàn)錯(cuò)誤的地方。這也比較好理解,因?yàn)榫渥又绣e(cuò)誤的位置大概率在語(yǔ)法或者語(yǔ)義上不大連貫,所以分詞模塊大概率會(huì)把句子中錯(cuò)誤的位置切分為單個(gè)的字。

b)規(guī)則模塊,尋找將第一步中可能錯(cuò)誤位置上的字符對(duì)應(yīng)的混淆集,嘗試將用混淆集中的元素替代當(dāng)前位置的字符,如果替換結(jié)果命中系統(tǒng)中設(shè)置的規(guī)則模版,則進(jìn)行相應(yīng)的替換,反之則不變。這其實(shí)就是個(gè)規(guī)則模版,如果命中系統(tǒng)設(shè)置的規(guī)則,就進(jìn)行替換。

c)翻譯模塊,尋找將第一步中可能錯(cuò)誤位置的字符對(duì)應(yīng)的混淆集,同樣嘗試用混淆集中的元素替代當(dāng)前位置,通過(guò)2-gram語(yǔ)言模型跟翻譯模型計(jì)算相應(yīng)的得分,將兩個(gè)模型的得分相乘,計(jì)算相應(yīng)的困惑度分?jǐn)?shù)(如下圖所示,p(S)是句子經(jīng)過(guò)平滑后得到的2-gram語(yǔ)言模型跟翻譯模型乘積得分,N是句子長(zhǎng)度),選擇困惑度得分最小的字符作為最終的替換結(jié)果。這里可以理解為正確的字符對(duì)應(yīng)的語(yǔ)言模型跟翻譯模型得分乘積更大,困惑度得分更小。

67609434-e659-11ec-ba43-dac502259ad0.png

圖3:困惑度計(jì)算公式

d)輸出模塊,匯總規(guī)則模塊跟翻譯模塊的糾錯(cuò)結(jié)果, 可以求兩者的交集或者并集作為最終的結(jié)果輸出。

3LMPS

LMPS是該中文糾錯(cuò)系統(tǒng)對(duì)應(yīng)的文章標(biāo)題中最后幾個(gè)單詞的首字母(作者沒(méi)給自己的文本糾錯(cuò)系統(tǒng)起名,為了編輯方便,就用LMPS指代這個(gè)系統(tǒng))。構(gòu)建該文本糾錯(cuò)系統(tǒng)需要準(zhǔn)備的事項(xiàng)如下。

a)混淆集,跟TM+LMM一樣構(gòu)建基于發(fā)音跟字形的常用字符的混淆集。

b) 5-gram語(yǔ)言模型,利用語(yǔ)料訓(xùn)練一個(gè)5-gram語(yǔ)言模型,用于計(jì)算不同字符對(duì)應(yīng)的語(yǔ)言得分。

c)一個(gè)基于詞的字典,存儲(chǔ)基本的中文詞語(yǔ),用于判斷不同字符的組合是否合法?如果某字符組合位于這個(gè)字典,那么就認(rèn)為這個(gè)字符組合是合法的,是沒(méi)有錯(cuò)誤的。如果某字符組合在該字典中沒(méi)有找到,那么這個(gè)字符組合大概率是存在錯(cuò)誤的。這個(gè)字典在檢測(cè)階段的b)環(huán)節(jié)跟糾正階段的b)環(huán)節(jié)都會(huì)用到。

該文本糾錯(cuò)系統(tǒng)流程分為檢測(cè)階段跟糾正階段。

檢測(cè)階段

a)通過(guò)前饋5-gram語(yǔ)言模型計(jì)算句子中每個(gè)字符的得分,得分低于閾值的字符跟對(duì)應(yīng)位置會(huì)被檢測(cè)出來(lái)并傳遞到下一個(gè)階段。

b)判斷上一步檢測(cè)出來(lái)的字符是否可以用來(lái)構(gòu)建成一個(gè)合法的詞,如果不能,則認(rèn)為這個(gè)字符可能是一個(gè)錯(cuò)誤,然后將可能錯(cuò)誤的字符跟位置傳遞到糾正模塊進(jìn)行相應(yīng)的糾正。具體執(zhí)行方式就是檢查固定窗口位置內(nèi)的其他字符跟這個(gè)字符的組合是否存在于前面提及的字典中。

糾正階段

a)從混淆集中生成錯(cuò)誤位置的可能候選字符。

b)判斷每一個(gè)候選字符是否可以跟附近字符構(gòu)成一個(gè)合法的詞語(yǔ),如果可以,那么這個(gè)候選字符會(huì)被留下來(lái)。通過(guò)這種方式可以過(guò)濾到大量不相關(guān)候選字符,只保留少量的更有可能作為最終結(jié)果的候選字符。

c)利用5-gram語(yǔ)言模型計(jì)算上一步保留下來(lái)的候選字符的得分,如果得分超過(guò)閾值,那么就用候選字符替換掉原來(lái)的字符。

67797562-e659-11ec-ba43-dac502259ad0.png

圖4:LMPS框架

4ACE

ACE是針對(duì)粵語(yǔ)的一種文本糾錯(cuò)方法,也是一種n-gram語(yǔ)言模型跟規(guī)則的結(jié)合,它的思路可以遷移到其他中文的方言中去。ACE需要事先構(gòu)建的內(nèi)容包括以下幾個(gè)部分。

a)混淆集。

b) 粵語(yǔ)詞表,這個(gè)詞表不僅來(lái)源于常見的粵語(yǔ)詞組,還加入了當(dāng)前火熱的新詞。同時(shí)給詞表中的每個(gè)詞打分,會(huì)根據(jù)訓(xùn)練集匯中每個(gè)詞的出現(xiàn)概率記錄相應(yīng)的分值,出現(xiàn)概率高的詞對(duì)應(yīng)的得分也會(huì)比較高,然后將常見的詞中得分的最低值作為閾值記錄下來(lái)(后面會(huì)用到)。

c) n-gram語(yǔ)言模型,用于計(jì)算句子的n-gram得分。

ACE的糾錯(cuò)也是基于pipeline依次進(jìn)行的。

a)對(duì)文本進(jìn)行分詞。

b) 規(guī)則模塊,借助于若干預(yù)先定義好的粵語(yǔ)句子結(jié)構(gòu)規(guī)則對(duì)句子結(jié)構(gòu)進(jìn)行調(diào)整。例如,將“吃飯先”調(diào)整為“先吃飯”。

c)查詢句子中每個(gè)詞在粵語(yǔ)詞表中的得分,如果得分低于前面提及的閾值,那么就認(rèn)為這個(gè)詞可能是有問(wèn)題的。

b)知道所有可能有問(wèn)題的詞后,根據(jù)混淆集可以獲得相應(yīng)的候選,如果將可能有問(wèn)題的詞替換為相應(yīng)的候選后,句子的得分(通過(guò)n-gram語(yǔ)言模型計(jì)算得到)提高了,那么就會(huì)把可能有問(wèn)題的詞替換為相應(yīng)的候選,反之則還是維持現(xiàn)狀。依次遍歷所有可能出錯(cuò)的位置,完整所有必要的替換。

67f9d5cc-e659-11ec-ba43-dac502259ad0.png

圖5: ACE的糾錯(cuò)效果演示

5總結(jié)

基于pipeline的文本糾錯(cuò)系統(tǒng)的框架都比較類似,沒(méi)有太多驚艷的操作。

a)基本必備混淆集跟語(yǔ)言模型,其中混淆集用于生成字符候選,語(yǔ)言模型用于比較不同字符在當(dāng)前位置的合理性。

b) 各個(gè)模塊都是獨(dú)立運(yùn)轉(zhuǎn)的,缺乏聯(lián)合優(yōu)化的手段,很難協(xié)調(diào)好不同的環(huán)節(jié)的設(shè)置,子模塊的優(yōu)化并不一定會(huì)導(dǎo)致系統(tǒng)整體性能的提升。例如,為了保證召回率,就需要把檢測(cè)環(huán)節(jié)放松點(diǎn),導(dǎo)致很多正確字符都是檢測(cè)為錯(cuò)誤,這樣就會(huì)導(dǎo)致糾正環(huán)節(jié)的準(zhǔn)確率下降。如果把檢測(cè)任務(wù)限制得更緊,提高了糾正環(huán)節(jié)的準(zhǔn)確率,但是相應(yīng)的召回率又會(huì)下降。

c) 整個(gè)系統(tǒng)有較多人為的痕跡,包括規(guī)則模塊或者相關(guān)字典,泛化能力有限,后期需要一定的人力維護(hù)成本。例如更新規(guī)則或者字典等。

d) 支持解決一些比較常見的文本錯(cuò)誤,但是對(duì)于稍微復(fù)雜的情形效果比較差。一方面,混淆集的構(gòu)建需要成本跟時(shí)間,對(duì)于新詞或者非常見字符不友好。另一方面,n-gram語(yǔ)言模型作為一種統(tǒng)計(jì)模型,沒(méi)有考慮到句子的語(yǔ)義信息,效果有限。

參考文獻(xiàn)

1.(2010) Reducing the false alarm rate of Chinese character error detection and correction

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.185.4106&rep=rep1&type=pdf

2.(2015) Chinese Spelling Error Detection and Correction Based on Language Model, Pronunciation, and Shape

https://aclanthology.org/W14-6835.pdf

3.(2016) ACE: Automatic colloquialism, typo- graphical and orthographic errors detection for Chi- nese language.

https://aclanthology.org/C16-2041.pdf

編輯:黃飛

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

    關(guān)注

    0

    文章

    28

    瀏覽量

    9321
  • N-gram
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    6600

原文標(biāo)題:中文文本糾錯(cuò)系列之pipeline篇

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    深入分析輸入子系統(tǒng)框架

    第六章:輸入系統(tǒng)(3)-框架
    發(fā)表于 10-16 07:08

    v4l2_pipeline_pm_use的知識(shí)點(diǎn)分析,錯(cuò)過(guò)后悔

    v4l2_pipeline_pm_use的知識(shí)點(diǎn)分析,錯(cuò)過(guò)后悔退出while循環(huán)的條件是什么?
    發(fā)表于 03-10 06:39

    OpenHarmony 3.1 Beta版本關(guān)鍵特性解析——HiStreamer框架大揭秘

    Pipeline。插件管理層:用于管理插件生命周期,支持動(dòng)態(tài)加載或靜態(tài)鏈接兩種方式使用插件。工具庫(kù):提供框架依賴的工具,隔離操作系統(tǒng)差異,提供調(diào)測(cè)功能。插件可彈性部署、動(dòng)態(tài)伸縮,主要包括以下幾部分內(nèi)容:平臺(tái)軟件插件
    發(fā)表于 03-29 11:51

    認(rèn)證系統(tǒng)糾錯(cuò)碼的應(yīng)用研

    針對(duì)數(shù)字簽名,探討了糾錯(cuò)碼理論和技術(shù)在數(shù)字簽名中的重要作用,介紹了一類糾錯(cuò)碼數(shù)字簽名方案;提出了一種將簽名與加密、糾錯(cuò)相結(jié)合的公鑰密碼新體制,新體制比較充分
    發(fā)表于 08-13 10:49 ?6次下載

    Pipeline ADCs Come of Age

    Pipeline ADCs Come of Age Abstract: In the mid 1970s, a new data converter architecture
    發(fā)表于 04-16 16:21 ?1031次閱讀
    <b class='flag-5'>Pipeline</b> ADCs Come of Age

    Pipeline ADCs Come of Age

    and mixed-signal community, called pipeline ADCs. The following article takes the knowledge of advantages and disadvantages of the pipeline
    發(fā)表于 04-25 10:22 ?1049次閱讀
    <b class='flag-5'>Pipeline</b> ADCs Come of Age

    糾錯(cuò)碼與通信系統(tǒng)的保密

    糾錯(cuò)碼與通信系統(tǒng)的保密,有需要的下來(lái)看看。
    發(fā)表于 07-29 19:05 ?0次下載

    數(shù)字通信系統(tǒng)糾錯(cuò)編碼技術(shù)的介紹

    本文介紹了數(shù)字通信系統(tǒng)糾錯(cuò)編碼技術(shù)相關(guān)知識(shí)的詳述。
    發(fā)表于 11-17 14:27 ?18次下載
    數(shù)字通信<b class='flag-5'>系統(tǒng)</b>及<b class='flag-5'>糾錯(cuò)</b>編碼技術(shù)的介紹

    網(wǎng)絡(luò)謠言文本句式特征分析與監(jiān)測(cè)系統(tǒng)

    基于實(shí)現(xiàn)網(wǎng)絡(luò)謠言自動(dòng)識(shí)別的目的,從地域、時(shí)間和傳播形式3個(gè)維度分析了收集到的網(wǎng)絡(luò)謠言基本情況.,網(wǎng)絡(luò)謠言以文本傳播形式為主,而且在文本句式上有一定的共通點(diǎn)和相似之處。本文采用了五類網(wǎng)絡(luò)謠言文本
    發(fā)表于 12-07 09:36 ?0次下載

    基于語(yǔ)義的文本語(yǔ)義分析

    文本情感傾向性研究是人工智能的分支學(xué)科,涉及了計(jì)算語(yǔ)言學(xué),數(shù)據(jù)挖掘,自然語(yǔ)言處理等多個(gè)學(xué)科。基于語(yǔ)義的情感傾向研究和基于機(jī)器學(xué)習(xí)的情感傾向研究是情感傾向性分析的兩個(gè)方向。本文采用了基于語(yǔ)義的方法
    發(fā)表于 12-15 16:35 ?6次下載

    如何使用Spark計(jì)算框架進(jìn)行分布式文本分類方法的研究

    針對(duì)傳統(tǒng)文本分類算法在面對(duì)日益增多的海量文本數(shù)據(jù)時(shí)效率低下的問(wèn)題,論文在Spark計(jì)算框架上設(shè)計(jì)并實(shí)現(xiàn)了一種并行化樸素貝葉斯文本分類器,并著重介紹了基于Spark計(jì)算
    發(fā)表于 12-18 14:19 ?3次下載
    如何使用Spark計(jì)算<b class='flag-5'>框架</b>進(jìn)行分布式<b class='flag-5'>文本</b>分類方法的研究

    中文文本糾錯(cuò)任務(wù)

    公文糾錯(cuò):針對(duì)公文寫作場(chǎng)景,提供字詞、標(biāo)點(diǎn)、專名、數(shù)值內(nèi)容糾錯(cuò),包含領(lǐng)導(dǎo)人姓名、領(lǐng)導(dǎo)人職位、數(shù)值一致性等內(nèi)容的檢查與糾錯(cuò),輔助進(jìn)行公文審閱校對(duì)。
    的頭像 發(fā)表于 07-26 14:25 ?1440次閱讀

    SpinalHDL里pipeline的設(shè)計(jì)思路

    如果你曾看過(guò)VexRSICV的設(shè)計(jì),對(duì)于從事邏輯設(shè)計(jì)的你會(huì)驚訝從未想過(guò)邏輯設(shè)計(jì)還能這么來(lái)做。針對(duì)VexRSICV所衍生出的pipeline Lib,該系列會(huì)對(duì)pipeline進(jìn)行一次梳理。誠(chéng)如之前一篇博客曾講,這是“勇者的游戲”。
    的頭像 發(fā)表于 08-16 15:11 ?835次閱讀
    SpinalHDL里<b class='flag-5'>pipeline</b>的設(shè)計(jì)思路

    Pipeline中throwIt的用法

    字如其名,來(lái)看下Pipeline中throwIt的用法,是怎么個(gè)丟棄方式。
    的頭像 發(fā)表于 10-21 16:24 ?423次閱讀
    <b class='flag-5'>Pipeline</b>中throwIt的用法

    什么是pipeline?Go中構(gòu)建流數(shù)據(jù)pipeline的技術(shù)

    本文介紹了在 Go 中構(gòu)建流數(shù)據(jù)pipeline的技術(shù)。 處理此類pipeline中的故障很棘手,因?yàn)?b class='flag-5'>pipeline中的每個(gè)階段可能會(huì)阻止嘗試向下游發(fā)送值,并且下游階段可能不再關(guān)心傳入的數(shù)據(jù)。
    的頭像 發(fā)表于 03-11 10:16 ?443次閱讀