文本糾錯(cuò)是自然語(yǔ)言處理的一個(gè)重要任務(wù),也是文本處理的第一道坎,一個(gè)錯(cuò)誤的文本表述可能會(huì)引起后續(xù)語(yǔ)義的錯(cuò)誤表達(dá),并對(duì)后續(xù)的效果產(chǎn)生影響。
例如,以常見的輸入錯(cuò)誤為例,十分豐富多彩,常見錯(cuò)誤類型包括:
1、少字:微信跳一->微信跳一跳
2、多字:微信跳一跳跳->微信跳一跳
3、錯(cuò)字:微信挑一挑->微信跳一跳
4、拼音:tiaoyitiao ->跳一跳
5、中英文混拼:held住-> hold住
6、中文拼音混拼:跳yi跳->跳一跳
7、知識(shí)錯(cuò)誤:南山平安金融中心->福田平安金融中心
8、音轉(zhuǎn):灰機(jī)->飛機(jī)
9、諧音字詞,如配副眼睛-配副眼鏡
10、混淆音字詞,如流浪織女-牛郎織女
11、字詞順序顛倒,如伍迪艾倫-艾倫伍迪
12、字詞補(bǔ)全,如愛有天意-假如愛有天意
13、形似字錯(cuò)誤,如高梁-高粱
14、中文拼音全拼,如xingfu-幸福
15、中文拼音縮寫,如sz-深圳
而這些錯(cuò)誤又可以進(jìn)一步區(qū)分為有意或者無(wú)意兩種,無(wú)有意的錯(cuò)誤可能是為了反識(shí)別或者惡意營(yíng)銷等灰色產(chǎn)業(yè)服務(wù)。
因此,文本糾錯(cuò)這塊就有諸多應(yīng)用場(chǎng)景。
例如,寫作輔助上,在內(nèi)容寫作平臺(tái)上內(nèi)嵌糾錯(cuò)模塊,可在作者寫作時(shí)自動(dòng)檢查并提示錯(cuò)別字情況。從而降低因疏忽導(dǎo)致的錯(cuò)誤表述,有效提升作者的文章寫作質(zhì)量,同時(shí)給用戶更好的閱讀體驗(yàn)。
又如,搜索糾錯(cuò)上,用戶經(jīng)常在搜索時(shí)輸入錯(cuò)誤,通過(guò)分析搜索query的形式和特征,可自動(dòng)糾正搜索query并提示用戶,進(jìn)而給出更符合用戶需求的搜索結(jié)果,有效屏蔽錯(cuò)別字對(duì)用戶真實(shí)需求的影響。
再如,語(yǔ)音識(shí)別對(duì)話糾錯(cuò)上,將文本糾錯(cuò)嵌入對(duì)話系統(tǒng)中,可自動(dòng)修正語(yǔ)音識(shí)別轉(zhuǎn)文本過(guò)程中的錯(cuò)別字,向?qū)υ捓斫庀到y(tǒng)傳遞糾錯(cuò)后的正確query,能明顯提高語(yǔ)音識(shí)別準(zhǔn)確率,使產(chǎn)品整體體驗(yàn)更佳。
而就技術(shù)而言,實(shí)際上可以對(duì)應(yīng)的變成變體或者錯(cuò)誤體的生成以及還原兩者,前者研究如何快速生成盡可能豐富的變體,后者研究如何返回正確的文本,十分有趣。
因此,本文主要圍繞NLP糾錯(cuò)技術(shù),做第一篇論述,從工業(yè)場(chǎng)景中的文本糾錯(cuò)、魯棒性過(guò)濾以及惡意短信變體字還原大賽三個(gè)比賽進(jìn)行介紹,并使用最簡(jiǎn)單的編輯距離操作生成變體,供大家一起參考。
一、自然語(yǔ)言處理技術(shù)創(chuàng)新大賽—中文文本糾錯(cuò)比賽
賽題背景:文本校對(duì)任務(wù)主要是針對(duì)文本中出現(xiàn)的錯(cuò)誤進(jìn)行檢測(cè)和糾正,屬于綜合性的自然語(yǔ)言處理研究子方向,能夠比較全面體現(xiàn)了自然語(yǔ)言處理的技術(shù)水平。過(guò)往文本校對(duì)相關(guān)評(píng)測(cè)使用的都是外國(guó)語(yǔ)言學(xué)習(xí)者撰寫的文本,這些文本的錯(cuò)誤大多數(shù)都是一些中文母語(yǔ)寫作者不會(huì)犯的一些錯(cuò)誤。
對(duì)于政務(wù)公文、新聞出版等行業(yè)來(lái)說(shuō),一款針對(duì)以中文為母語(yǔ)的用戶所使用的校對(duì)系統(tǒng)將會(huì)有更大的幫助。因此,本賽題主要選擇互聯(lián)網(wǎng)上中文母語(yǔ)寫作者撰寫的網(wǎng)絡(luò)文本作為校對(duì)評(píng)測(cè)數(shù)據(jù),從拼寫錯(cuò)誤、語(yǔ)法錯(cuò)誤、語(yǔ)病錯(cuò)誤等多個(gè)方面考察機(jī)器的認(rèn)知智能能力。
賽題任務(wù):賽題選擇網(wǎng)絡(luò)文本作為校對(duì)數(shù)據(jù),從中檢測(cè)并糾正錯(cuò)誤,實(shí)現(xiàn)中文文本校對(duì)系統(tǒng)。即給定一段文本,校對(duì)系統(tǒng)從中檢測(cè)出錯(cuò)誤字詞、錯(cuò)誤類型,并進(jìn)行糾正。具體的輸入、輸出及錯(cuò)誤類型為:
輸入:輸入文件包含若干行文本,每行文本對(duì)應(yīng)句子ID和相應(yīng)的待校對(duì)句。
輸出:輸出文件每行對(duì)應(yīng)句子ID及相應(yīng)的校對(duì)結(jié)果。校對(duì)結(jié)果中每處錯(cuò)誤需包含錯(cuò)誤位置、錯(cuò)誤類型、錯(cuò)誤字詞及正確字詞,每處錯(cuò)誤及多處錯(cuò)誤間均以英文逗號(hào)分隔。
錯(cuò)誤類型:拼寫錯(cuò)誤,包括別字及別詞;語(yǔ)法錯(cuò)誤,包括冗余、缺失、亂序;語(yǔ)病錯(cuò)誤,包括語(yǔ)義重復(fù)及句式雜糅。
舉例如下:

地址:https://2021aichina.caai.cn/track?id=5
二、中國(guó)人工智能大賽魯棒性過(guò)濾算法
第三屆中國(guó)人工智能大賽,重點(diǎn)聚焦算法治理、深度偽造音視頻檢測(cè)、網(wǎng)絡(luò)安全等方向,希望以競(jìng)賽方式解決現(xiàn)實(shí)場(chǎng)景中需求問(wèn)題。
賽題背景:構(gòu)建魯棒的過(guò)濾算法在網(wǎng)絡(luò)空間內(nèi)容治理領(lǐng)域具有重要的實(shí)際價(jià)值。信息產(chǎn)生、獲取、消費(fèi)等環(huán)節(jié)的算法魯棒性欠缺,會(huì)嚴(yán)重影響正常的社會(huì)秩序。因此,算法魯棒性在算法安全治理中屬于非常重要的指標(biāo)。
在信息生成和獲取的環(huán)節(jié),過(guò)濾算法扮演著安全護(hù)衛(wèi)的作用,把守網(wǎng)絡(luò)信息安全的第一關(guān)。過(guò)濾算法是指將用戶產(chǎn)生的特定信息進(jìn)行自動(dòng)識(shí)別和過(guò)濾的算法。目前,特定信息變換各種形式出現(xiàn)在互聯(lián)網(wǎng)中,這對(duì)于現(xiàn)有的過(guò)濾算法無(wú)疑是一個(gè)挑戰(zhàn)。
例如,中國(guó)人工智能大賽魯棒性過(guò)濾算法賽道過(guò)濾出了這樣一道賽題:

賽題任務(wù):主辦方將收集上千條含特定信息和同比例正常信息的短文本,用以評(píng)價(jià)選手的過(guò)濾模型。測(cè)試文本根據(jù)所包含特定信息的變種難度不同設(shè)置相應(yīng)的難度分?jǐn)?shù)。本賽題將以參賽選手過(guò)濾模型識(shí)別出的特定信息樣本以及該樣本對(duì)應(yīng)難度的積作為主要評(píng)價(jià)指標(biāo)。
地址:https://ai.xm.gov.cn/competition/project-detail.html?id=e813904b755a439da1a6c5749bcf9b60&competeId=a8e0c40dbb2347fba8b3c9a6294efa5b
三、面向黑灰產(chǎn)治理的惡意短信變體字還原
賽題背景:惡意短信一直是黑灰產(chǎn)引流的重要渠道,信息中攜帶的微信號(hào)、QQ號(hào)、網(wǎng)址更是非法信息傳播的主要入口,業(yè)界通常做法是利用違法或不良信息檢測(cè)引擎在手機(jī)終端實(shí)現(xiàn)自動(dòng)攔截。然而不法分子為逃避檢測(cè),通過(guò)使用變體字發(fā)送惡意短信繞過(guò)攔截規(guī)則的情況越來(lái)越多。
由于變體字變換方式多,變換速度快,單純通過(guò)規(guī)則進(jìn)行變體詞發(fā)現(xiàn)的效果有限,配套人工審核成本高且具有滯后性。如何精準(zhǔn)和高效地還原變體字文本,提高非法信息的抽取能力,以及新型變體字還原的泛化性和時(shí)效性,就成為了解決這一難題的“關(guān)鍵之鑰”。
賽題任務(wù):參賽團(tuán)隊(duì)通過(guò)設(shè)計(jì)算法,實(shí)現(xiàn)對(duì)惡意短信中變體字的還原。參賽團(tuán)隊(duì)需要對(duì)訓(xùn)練集中的短信樣本進(jìn)行分析,采用深度學(xué)習(xí)建模的方法將測(cè)試集中新出現(xiàn)的短信變體字還原為正常信息文本,即不含有變體字、干擾字符,所有變體字部分應(yīng)使用常見簡(jiǎn)體漢字、字符來(lái)表示,同時(shí)需要保證不包含變體字的正常文本不受影響。
例子如下;
變體句子:噂儆的碦戸:其鎃祝冊(cè)茺贈(zèng)鎬888葒笣!禛朲對(duì)弈佰捆任你選!嶺:http://url.cn/5aLeqP2
還原后:尊敬的客戶:棋牌注冊(cè)充贈(zèng)高888紅包!真人對(duì)弈百款任你選!領(lǐng):url.cn5aLeqP2

地址:https://beta-www.datafountain.cn/competitions/508
四、基于編輯距離生成變體小測(cè)試
實(shí)際上,基于編輯距離來(lái)生成的變體是最快速且簡(jiǎn)單的方式,下面做了一個(gè)快速實(shí)現(xiàn):
#詞典庫(kù)
vocab=set([line.rstrip()forlineinopen('vocab.txt')])
#print(vocab)
#生成所有的候選集合
defgenerate_edit_one(word):
"""
#假設(shè)使用26個(gè)字符
letters='abcdefghijklmnopqrstuvwxyz'
splits=[(word[:i],word[i:])foriinrange(len(word)+1)]
#inserts操作
inserts=[L+c+RforL,Rinsplitsforcinletters]
#delete操作
deletes=[L+R[1:]forL,RinsplitsifR]
#replace操作
replaces=[L+c+R[1:]forL,RinsplitsifRforcinletters]
candidates=set(inserts+deletes+replaces)
#過(guò)濾掉不存在詞典庫(kù)里的單詞
return[wordforwordincandidatesifwordinvocab]
defgenerate_edit_two(str):
"""
給定一個(gè)字符串,生成編輯距離不大于2的字符串
"""
return[e2fore1ingenerate_edit_one(str)fore2ingenerate_edit_one(e1)ife2invocab]
print('給定一個(gè)字符串,生成編輯距離為1的字符串','
',generate_edit_one('apple'))
print('給定一個(gè)字符串,生成編輯距離不大于2的字符串','
',generate_edit_two("apple"))
執(zhí)行后,我們可以產(chǎn)生如下變體結(jié)果:

審核編輯 :李倩
-
模塊
+關(guān)注
關(guān)注
7文章
2788瀏覽量
50438 -
文本
+關(guān)注
關(guān)注
0文章
119瀏覽量
17457 -
自然語(yǔ)言處理
+關(guān)注
關(guān)注
1文章
628瀏覽量
14168
原文標(biāo)題:NLP糾錯(cuò) | 惡意短信變體字還原、魯棒性過(guò)濾與文本糾錯(cuò)競(jìng)賽概述與簡(jiǎn)單變體實(shí)現(xiàn)
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
評(píng)論