拼音型簡(jiǎn)單錯(cuò)誤語(yǔ)料獲取與處理

在自然語(yǔ)言處理領(lǐng)域中抛猖,語(yǔ)料是非常關(guān)鍵的一個(gè)部分。然而鼻听,中文的自然語(yǔ)言處理領(lǐng)域在大的通用型語(yǔ)料上雖然不少财著,但在特定方向上的語(yǔ)料仍然匱乏。在要進(jìn)行拼音型文本糾錯(cuò)任務(wù)過(guò)程中撑碴,我發(fā)現(xiàn)這方面的語(yǔ)料著實(shí)少瓢宦,因此在語(yǔ)料的獲取和處理上花費(fèi)較多時(shí)間,以下是我面對(duì)語(yǔ)料匱乏情況下的探索和總結(jié)灰羽。

語(yǔ)料的獲取

語(yǔ)料獲取分為兩個(gè)部分,一是搜索:查詢并獲取已有的特定方向的語(yǔ)料鱼辙。二是制造:自行制造出需要的語(yǔ)料廉嚼。

語(yǔ)料搜索

首先我們自然要考慮能否找到已經(jīng)標(biāo)記好的公開(kāi)語(yǔ)料。

沒(méi)有查詢到相應(yīng)結(jié)果之后倒戏,開(kāi)始尋找這方面的公開(kāi)比賽怠噪,最好是去年或前年這類年份較近且比賽已經(jīng)結(jié)束的,一來(lái)更可能可以獲取完整語(yǔ)料杜跷,二來(lái)可以參考比賽結(jié)束后放出的優(yōu)勝者的論文傍念,而年份越近則參賽者更可能用上更先進(jìn)的方法矫夷。

此外還可以參考這方面的論文,論文中會(huì)給出評(píng)測(cè)的方法和樣例文本憋槐,根據(jù)文中出現(xiàn)的語(yǔ)料來(lái)源關(guān)鍵詞再進(jìn)行搜索双藕。由此我搜索到幾份臺(tái)灣的拼音型質(zhì)量較高的語(yǔ)料,分別是13-15年的Chinese Spelling Check Task的語(yǔ)料:

匯總鏈接

SIGHAN 2013 Bake-off: Chinese Spelling Check Task

CLP 2014 Bake-off: Chinese Spelling Check Task

SIGHAN 2015 Bake-off: Chinese Spelling Check Task

以下是語(yǔ)料的一個(gè)樣例:

image

可以看出阳仔,這份語(yǔ)料的錯(cuò)誤類型是拼音相近的詞語(yǔ)忧陪,它不僅標(biāo)出了錯(cuò)誤詞語(yǔ),還給出了正確答案近范,由此還可以將錯(cuò)誤檢測(cè)模型擴(kuò)展為糾正模型嘶摊。

填寫(xiě)資料下載后可以看到,壓縮包中除了訓(xùn)練评矩、測(cè)試語(yǔ)料外還包含相似拼音字表和相近字形字表叶堆。

雖然語(yǔ)料質(zhì)量較高,但還是有些缺點(diǎn)的:

1. 首先自然是語(yǔ)料的規(guī)模不足斥杜,將三份語(yǔ)料匯總之后也不過(guò)得到3M左右的語(yǔ)料
 2. 其次是文本問(wèn)題虱颗,可以看出語(yǔ)料使用的是繁體字,在建立面向簡(jiǎn)體字的模型的過(guò)程中果录,我們需要將其轉(zhuǎn)換為簡(jiǎn)體字
 3. 第三是文化問(wèn)題上枕,文字雖然可以轉(zhuǎn)換為簡(jiǎn)體字,但文本的組織結(jié)構(gòu)弱恒、表述以及用詞還是附帶較濃的臺(tái)灣氣息辨萍,如“幼兒園”在文本中稱為“幼稚園”,“什么”在文本中為“什幺”

在瀏覽完各類論文和語(yǔ)料庫(kù)之后返弹,就可以開(kāi)始發(fā)散思維了锈玉。原本打算爬取小學(xué)生病句作為語(yǔ)料,然而點(diǎn)開(kāi)幾份病句題之后卻發(fā)現(xiàn)义起,小學(xué)生的病句里就已經(jīng)涉及到知識(shí)推理拉背、指代不明等高難度問(wèn)題了,由此不得讓人感慨默终,我們還有很長(zhǎng)的路要走椅棺。

可以直接用于訓(xùn)練的語(yǔ)料并不多,接下來(lái)該考慮語(yǔ)料制造了

語(yǔ)料制造

語(yǔ)料制造分為人工制作新語(yǔ)料和在現(xiàn)有語(yǔ)料上進(jìn)行改造齐蔽。

人工制作

人工制作新語(yǔ)料可以是完全人為構(gòu)造新句子两疚,當(dāng)然還有方便得多的方法就是從已有的句子上挑選詞語(yǔ),選擇相近音的字詞進(jìn)行替換含滴。除了項(xiàng)目人員自行替換之外诱渤,也可外包出去花費(fèi)金錢獲取有一定數(shù)目和質(zhì)量的人工語(yǔ)料。

此外谈况,也可以從外國(guó)人學(xué)習(xí)中文的作文著手勺美,已有的語(yǔ)法錯(cuò)誤递胧、詞語(yǔ)錯(cuò)誤語(yǔ)料有相當(dāng)一部分是來(lái)自外國(guó)人的作文加上人工標(biāo)記形成的,如北京語(yǔ)言大學(xué)的HSK動(dòng)態(tài)作文語(yǔ)料庫(kù)赡茸,但筆者并未發(fā)現(xiàn)有能夠獲取完整語(yǔ)料的地方缎脾。僅有官方提供的各種小規(guī)模查詢方式。

改造語(yǔ)料

在網(wǎng)上各類公開(kāi)語(yǔ)料庫(kù)上得到大量中文通用語(yǔ)料并進(jìn)行預(yù)處理之后坛掠,最簡(jiǎn)單的方法就是對(duì)于每個(gè)句子以一定的概率隨機(jī)替換掉某個(gè)字或詞(取決于模型是基于字還是基于詞的赊锚,但一般來(lái)說(shuō)基于字效果更好、字典更小屉栓、速度更快)舷蒲,替換的字或詞的數(shù)目可以自行調(diào)整, 不同的概率對(duì)應(yīng)不同的替換數(shù)目友多。優(yōu)點(diǎn)是足夠自動(dòng)化牲平、方便快速、語(yǔ)料數(shù)目大域滥,缺點(diǎn)則是語(yǔ)料和將要糾錯(cuò)的句子的貼合度并不高纵柿。

在前面的方法之上為了更貼近待糾錯(cuò)句子,可以構(gòu)造相近音的字表或詞表启绰,替換時(shí)查表隨機(jī)替換昂儒。

以上就是語(yǔ)料獲取方面的總結(jié)。在獲取到Chinese Spelling Check Task的語(yǔ)料之后委可,還需要對(duì)其進(jìn)行處理渊跋。

CSC語(yǔ)料處理

繁體轉(zhuǎn)簡(jiǎn)體工具介紹及安裝

為了建立面向簡(jiǎn)體中文的糾錯(cuò)模型,我們首先得將繁體語(yǔ)料轉(zhuǎn)換成簡(jiǎn)體着倾。在搜索python轉(zhuǎn)換的工具包時(shí)拾酝,網(wǎng)上博客一水的推薦https://github.com/skydark/nstools/tree/master/zhtools的轉(zhuǎn)換工具,然而在實(shí)際使用過(guò)后發(fā)現(xiàn)效果并不是很好卡者,在剔除使用zhtools的文章之后蒿囤,發(fā)現(xiàn)一個(gè)在github有3k stars的工具包opencc:https://github.com/BYVoid/OpenCC

使用python的可以 pip install opencc,但會(huì)報(bào)錯(cuò)并且需要各種設(shè)置崇决。以下介紹一下Ubuntu下編譯安裝的方法材诽,安裝完成后直接可以在命令行中使用opencc而無(wú)需特定語(yǔ)言。

先找個(gè)空白文件夾安裝需要的其它工具:
git clone https://github.com/doxygen/doxygen.git
cd doxygen
mkdir build
cd build
sudo apt-get install flex
sudo apt-get install bison
cmake -G "Unix Makefiles" ..
make
sudo make install

而后就可以開(kāi)始安裝opencc了:
git clone git@github.com:BYVoid/OpenCC.git
cd OpenCC
make
sudo make install

安裝完成后就可以在命令行中以:

opencc -c <配置文件名> -i <輸入文件名> -o <輸出文件名>

的格式進(jìn)行使用了恒傻,-c中支持的配置文件名可以在github上找到脸侥,若不加-o選項(xiàng)則會(huì)直接將轉(zhuǎn)換后的結(jié)果顯示出來(lái)。

進(jìn)一步處理

將所有的Input txt 和Truth txt拷到一個(gè)文件夾后碌冶,使用

cat *Input* > input.txt
cat *Truth* > truth.txt

opencc -c tw2sp.json -i input.txt -o input.txt
opencc -c tw2sp.json -i truth.txt -o truth.txt

就可以得到轉(zhuǎn)換后的文件了。

在進(jìn)行簡(jiǎn)繁轉(zhuǎn)換后涝缝,筆者發(fā)現(xiàn)其內(nèi)部的英文和數(shù)字使用的是全角字符扑庞,然后在網(wǎng)上找段轉(zhuǎn)換代碼將文本轉(zhuǎn)換成半角譬重,之后再將數(shù)字轉(zhuǎn)換成星號(hào)

在檢測(cè)階段,我們還不需要正確的詞語(yǔ)罐氨,只需要錯(cuò)誤詞語(yǔ)的索引即可臀规,在用正則表達(dá)式將truth中的漢字剔除后,就得到處理后的文本了:

文本

image

答案(只有索引)

image

答案(帶正確字)

image

值得注意的是栅隐,測(cè)試語(yǔ)料中錯(cuò)誤字所使用的索引是從1開(kāi)始的塔嬉,并且0代表句子完全正確。

訓(xùn)練語(yǔ)料使用的sgml格式租悄,可以用parser處理也可以直接暴力用正則表達(dá)式替換再用python細(xì)處理谨究。

其它

上面的處理完成之后,已經(jīng)可以投入訓(xùn)練了泣棋,但是也可以進(jìn)一步進(jìn)行處理:

  1. 長(zhǎng)句切短句胶哲。將長(zhǎng)句子按照逗號(hào)、句號(hào)潭辈、感嘆號(hào)等切分成幾個(gè)短句子鸯屿,因?yàn)橹皇且獧z測(cè)簡(jiǎn)單的詞語(yǔ)錯(cuò)誤,因此不大需要考慮前后短句子的邏輯關(guān)系把敢,將句子切開(kāi)之后語(yǔ)料數(shù)目也同樣增加了寄摆。
  2. 增加STA、END修赞、UNK標(biāo)簽婶恼,自然語(yǔ)言處理領(lǐng)域中常常使用的方法,對(duì)于要輸入LSTM的句子榔组,開(kāi)頭加上STA標(biāo)簽熙尉,結(jié)尾加上END標(biāo)簽(也可以開(kāi)頭和結(jié)尾使用同一個(gè)標(biāo)簽),加上標(biāo)簽可以讓模型知道是句子開(kāi)頭和結(jié)尾搓扯,由此可以加強(qiáng)判斷第一個(gè)詞和最后一個(gè)詞正確與否的能力检痰。而UNK則是用于標(biāo)記詞表外單詞的標(biāo)簽,若單詞頻率太低則將其替換成UNK锨推,減少詞表大小铅歼。
  3. 保存字詞和索引轉(zhuǎn)換表,提前切分并替換成索引换可。將字詞和索引的轉(zhuǎn)換以固定文件保存下來(lái)椎椰,而后將語(yǔ)料預(yù)先轉(zhuǎn)換成索引序列,可以省去大規(guī)模語(yǔ)料在內(nèi)存中轉(zhuǎn)換成索引的時(shí)間。要注意STA垦缅、END和UNK標(biāo)簽不要被單獨(dú)切開(kāi)了代咸。

以上就是我在語(yǔ)料方面的探索和總結(jié)瞪醋,希望能對(duì)讀者有些許幫助瓤的。

我的個(gè)人博客:Zedom1.top

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末休弃,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子圈膏,更是在濱河造成了極大的恐慌塔猾,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件稽坤,死亡現(xiàn)場(chǎng)離奇詭異丈甸,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)尿褪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門睦擂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人茫多,你說(shuō)我怎么就攤上這事祈匙。” “怎么了天揖?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵夺欲,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我今膊,道長(zhǎng)些阅,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任斑唬,我火速辦了婚禮市埋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘恕刘。我一直安慰自己缤谎,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布褐着。 她就那樣靜靜地躺著坷澡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪含蓉。 梳的紋絲不亂的頭發(fā)上频敛,一...
    開(kāi)封第一講書(shū)人閱讀 49,036評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音馅扣,去河邊找鬼斟赚。 笑死,一個(gè)胖子當(dāng)著我的面吹牛差油,可吹牛的內(nèi)容都是我干的拗军。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼发侵!你這毒婦竟也來(lái)了侈咕?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤器紧,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后楼眷,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體铲汪,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年罐柳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了掌腰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡张吉,死狀恐怖齿梁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情肮蛹,我是刑警寧澤勺择,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站伦忠,受9級(jí)特大地震影響省核,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜昆码,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一气忠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧赋咽,春花似錦旧噪、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至亦镶,卻和暖如春日月,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背缤骨。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工爱咬, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人绊起。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓精拟,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蜂绎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 尋找方向:找對(duì)浪潮再起步 成立初創(chuàng)企業(yè)栅表、啟動(dòng)創(chuàng)業(yè)項(xiàng)目,不能急于投入具體的項(xiàng)目之中师枣,而要先尋找方向怪瓶、找對(duì)浪潮。在尋找...
    逆逆nini閱讀 160評(píng)論 0 0
  • 問(wèn)題不是問(wèn)題践美,以什么樣的態(tài)度面對(duì)問(wèn)題才是問(wèn)題洗贰。這就是我們常說(shuō)的態(tài)度決定一切,有了適合(不是好和壞)的態(tài)度才有...
    趙國(guó)興閱讀 1,222評(píng)論 0 2
  • 人物介紹:神探——警官陳桂彬(劉青云shi) 神探的徒弟——警官何家安(請(qǐng)求陳桂彬幫忙破案) ...
    王文會(huì)516閱讀 584評(píng)論 4 2
  • 牙齦出血腫痛:(有口瘡,嘴內(nèi)熱臭熏人兴革,口干口苦绎晃,而且口渴,胸悶煩躁杂曲,舌苔黃膩庶艾。屬于脾胃積熱) 生石膏30克、知...
    逍遙an閱讀 430評(píng)論 0 0
  • 落葉化春泥擎勘,殘?jiān)抡招拈g落竹。 功名倘若現(xiàn),父母定歡顏货抄。
    六二之阿正咿呀閱讀 264評(píng)論 1 0