提高"左右分欄式簡(jiǎn)歷"的解析效果

在視覺(jué)效果上,左右分欄式的簡(jiǎn)歷比上下更具有視覺(jué)吸引力,正受到求職者的廣泛使用。目前市面上至少有15%的簡(jiǎn)歷使用左右分欄布局。然而,正確處理左右分欄的簡(jiǎn)歷是一個(gè)令人頭疼的計(jì)算機(jī)視覺(jué)問(wèn)題。為解決第三方計(jì)算機(jī)視覺(jué)軟件在簡(jiǎn)歷文件處理上性能不佳或處理速度很慢的問(wèn)題,小析智能自研了一套處理列布局文檔的系統(tǒng),并通過(guò)后續(xù)應(yīng)用各種人工智能技術(shù)極大地改進(jìn)了此類(lèi)簡(jiǎn)歷的解析。因此,無(wú)論文檔如何分欄布局,小析智能都能夠提供最優(yōu)的解析效果。

介紹

簡(jiǎn)歷解析的第一步是將文檔轉(zhuǎn)換為可以提取信息的原始文本。提取出準(zhǔn)確的文字并保持正確的結(jié)果至關(guān)重要:任何錯(cuò)誤都會(huì)影響后續(xù)模型的表現(xiàn)。為許多不同類(lèi)型的文檔生成呈現(xiàn)良好的文本表示是一個(gè)很難解決的問(wèn)題。一種以自上而下并按行從左至右的順序呈現(xiàn)文本的簡(jiǎn)單方法通常足以滿(mǎn)足具有標(biāo)準(zhǔn)布局的文檔(如圖一)。

圖1

然而,簡(jiǎn)歷有一些其他布局,人類(lèi)很容易理解,但對(duì)機(jī)器來(lái)說(shuō)可能具有挑戰(zhàn)性。我們?cè)诤?jiǎn)歷文件中發(fā)現(xiàn)的一種常見(jiàn)布局是使用左右分割布局。左右分割布局的簡(jiǎn)歷在視覺(jué)上很吸引人,被求職者廣泛使用。候選人希望在他們的簡(jiǎn)歷中整齊地組織信息并提供視覺(jué)結(jié)構(gòu),例如通過(guò)包含他們的聯(lián)系信息的邊欄。對(duì)于傳統(tǒng)簡(jiǎn)歷解析系統(tǒng),對(duì)于這種左右分割的簡(jiǎn)歷(如圖二),很有可能提取出來(lái)的文字是會(huì)把聯(lián)系方式和工作經(jīng)歷連在一起

圖2

錯(cuò)誤文本提取對(duì)于某些任務(wù)仍然有用:例如一些可以通過(guò)搜索關(guān)鍵字來(lái)獲取的字段。但是,會(huì)對(duì)很多下有任務(wù),比如大段分割(基本信息,教育經(jīng)歷等),小段分割(不同工作經(jīng)歷之前的切割)帶來(lái)極大的困難。因此,要提高我們簡(jiǎn)歷解析對(duì)特殊格式簡(jiǎn)歷的提取,我們需要制定特殊的文本提取方法。

傳統(tǒng)的方法

通過(guò)傳統(tǒng)的方法能夠處理市面上大多數(shù)類(lèi)型的文檔布局

該方法有 3 個(gè)步驟。

第1步:掃描 PDF 的文本內(nèi)容并識(shí)別它們之間的視覺(jué)間隙(參見(jiàn)下面的示例)。

第2步:基于規(guī)則的系統(tǒng)決定視覺(jué)間隙是否為列分隔符。正如您在下面的示例中看到的,基于這些預(yù)測(cè),并非所有視覺(jué)間隙都是列分隔符,并且不應(yīng)因這些間隙而中斷從左到右的閱讀。

第3步:將通過(guò)分隔所有已識(shí)別的列來(lái)呈現(xiàn)文本。?

圖3

然而,利用視覺(jué)間隙的方法會(huì)在諸多問(wèn)題,例如:對(duì)于下面這種文本,會(huì)將左右兩部分分開(kāi),從而導(dǎo)致字段提取不正確。

圖4

在系統(tǒng)自檢過(guò)程中,我們的系統(tǒng)在許多情況下都取得了良好的文本抽取效果(>85%),但仍然無(wú)法預(yù)測(cè)某些列分隔符。根據(jù)損失函數(shù)的設(shè)計(jì),系統(tǒng)在預(yù)測(cè)視覺(jué)間隙是列分隔符時(shí)非常精確(即正類(lèi)的精度非常高),其原理是當(dāng)沒(méi)有列分隔符時(shí)(即假陽(yáng)性)預(yù)測(cè)列分隔符會(huì)帶來(lái)巨大的懲罰:即如果提取出來(lái)的文本將是錯(cuò)誤的,會(huì)嚴(yán)重影響解析質(zhì)量。改善這樣的系統(tǒng)需要一種以模型為方法,然而增加訓(xùn)練數(shù)據(jù)覆蓋面非常困難。當(dāng)我們遇到一個(gè)新的案例時(shí),我們需要為它實(shí)施一個(gè)新的規(guī)則,確保它與其他規(guī)則庫(kù)兼容,并選擇如何應(yīng)用和組合規(guī)則。隨著我們添加的規(guī)則越多,系統(tǒng)復(fù)雜性會(huì)變得非常高。

理想情況下,我們希望我們的解決方案以數(shù)據(jù)為中心,這樣我們就可以通過(guò)收集系統(tǒng)應(yīng)該如何執(zhí)行的示例來(lái)提高其性能,并將我們的注意力集中在管理和改進(jìn)示例數(shù)據(jù)上。我們還想要一個(gè)能夠保持處理速度的解決方案。

第一次改進(jìn)試驗(yàn)

我們分析了幾個(gè)可能幫助我們改進(jìn)系統(tǒng)的預(yù)訓(xùn)練模型,這些預(yù)訓(xùn)練模型中的大多數(shù)利用了計(jì)算機(jī)視覺(jué)方法,將文本視作圖像從而提取文本。這些方法都需要昂貴的算法支撐,因此文字提取速度變得非常緩慢。同時(shí),在簡(jiǎn)歷解析的任務(wù)中,他們的表現(xiàn)并不比我們以前基于規(guī)則的方法好多少。因此,我們放棄了直接采用預(yù)訓(xùn)練模型

由于我們主要的目標(biāo)只是改進(jìn)我們的列處理,而并不需要識(shí)別文本中的所有間隙,只有較大的垂直視覺(jué)間隙應(yīng)該才應(yīng)該被考慮?;谶@些簡(jiǎn)化的假設(shè),我們想出了一種新方法來(lái)檢測(cè)文檔圖像表示中空白直方圖的最大垂直視覺(jué)間隙,如圖五所示。

圖5

我們可以看到兩種布局在空白分布方面的區(qū)別,使用此表示來(lái)訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型以在列布局和常規(guī)布局之間進(jìn)行分類(lèi)。然而通過(guò)分類(lèi)器的方法不符合我們的所有要求:我們?nèi)匀粵](méi)法獲取的分隔列內(nèi)容的坐標(biāo)。此外,我們還注意到,解析速度將成為一個(gè)潛在問(wèn)題。

我們的新方法

我們解決方案的核心是:決定視覺(jué)間隙是否分隔相關(guān)或不相關(guān)的內(nèi)容(例如,列分隔符)。這是一個(gè)二元分類(lèi)問(wèn)題,我們可以為此訓(xùn)練機(jī)器學(xué)習(xí)模型來(lái)復(fù)制決策。通過(guò)使用我們基于規(guī)則的系統(tǒng),我們可以通過(guò)將規(guī)則轉(zhuǎn)換為特征并將輸出決策作為我們希望新模型學(xué)習(xí)的標(biāo)簽來(lái)生成訓(xùn)練數(shù)據(jù)。通過(guò)這樣做,我們可以開(kāi)始專(zhuān)注于改進(jìn)訓(xùn)練數(shù)據(jù)的收集和管理,并在每次模型迭代時(shí)能夠容易地重新訓(xùn)練模型,而不是向我們的代碼庫(kù)添加更多規(guī)則。

新的迭代流程變成了:?

數(shù)據(jù)選擇 ->?手動(dòng)注釋?-> 模型訓(xùn)練?->?標(biāo)簽校正?->?評(píng)估

圖6

數(shù)據(jù)選擇

與需要數(shù)百個(gè)示例來(lái)開(kāi)發(fā)和測(cè)試規(guī)則的基于規(guī)則的系統(tǒng)不同,我們將需要成千上萬(wàn)個(gè)訓(xùn)練樣本來(lái)監(jiān)督我們的模型訓(xùn)練。

我們從客戶(hù)在反饋中與我們分享的有問(wèn)題的文件開(kāi)始進(jìn)行自查。但是這個(gè)集合非常?。ù蠹s 20000 個(gè)簡(jiǎn)歷)。當(dāng)它們僅占訓(xùn)練數(shù)據(jù)的 10-15% 左右時(shí),我們?nèi)绾尾拍苷业礁嗟淖笥曳謾诘暮?jiǎn)歷?還記得從我們最初的嘗試開(kāi)始,我們就有了一個(gè)基于神經(jīng)網(wǎng)絡(luò)的列分類(lèi)器。雖然不足以取代我們舊的基于規(guī)則的系統(tǒng),但它是挖掘具有列布局的文檔的好方法。即使這個(gè)分類(lèi)器不是 100% 準(zhǔn)確,它仍然比隨機(jī)選擇文檔(準(zhǔn)確率為 10-15%)要好。此外,我們還收集了隨機(jī)的文檔樣本,以確保我們的方法適用于所有布局。

數(shù)據(jù)集的生成

為了生成我們的數(shù)據(jù)集,我們通過(guò)現(xiàn)有的渲染管道處理我們的文檔集。對(duì)于每個(gè)視覺(jué)間隙,目標(biāo)標(biāo)簽最初設(shè)置為我們基于規(guī)則的系統(tǒng)做出的決定。我們通過(guò)使用在這個(gè)決定中計(jì)算的變量和規(guī)則來(lái)引導(dǎo)特征。此外,我們添加了幾個(gè)新功能,可以更好地量化列布局的某些屬性。

手動(dòng)注釋

在上一步中,我們生成了一個(gè)偽標(biāo)記數(shù)據(jù)集:標(biāo)簽來(lái)自我們現(xiàn)有的系統(tǒng),未經(jīng)人工驗(yàn)證。為了確保我們的機(jī)器學(xué)習(xí)模型不會(huì)簡(jiǎn)單地學(xué)習(xí)重現(xiàn)基于規(guī)則的系統(tǒng)的錯(cuò)誤,我們還手動(dòng)注釋了一小部分左右分列簡(jiǎn)歷。

模型訓(xùn)練

有了訓(xùn)練數(shù)據(jù)后,我們現(xiàn)在可以通過(guò)訓(xùn)練機(jī)器學(xué)習(xí)模型來(lái)模仿我們基于規(guī)則的系統(tǒng)決策了。我們從決策樹(shù)算法開(kāi)始我們的實(shí)驗(yàn)。這是一種應(yīng)用于我們的數(shù)據(jù)集的簡(jiǎn)單算法,非常有效,提供良好的分類(lèi)性能,同時(shí)應(yīng)用速度非??欤@是我們?cè)谖覀冊(cè)u(píng)估方法的重要標(biāo)準(zhǔn)?

然而,決策樹(shù)有幾個(gè)問(wèn)題:它們?nèi)菀走^(guò)度擬合并遭受偏差和方差誤差。這會(huì)導(dǎo)致對(duì)新數(shù)據(jù)的預(yù)測(cè)不可靠。這可以通過(guò)組合幾個(gè)決策樹(shù)模型來(lái)改進(jìn)。組合這些模型將帶來(lái)更好的泛化能力

有幾種方法可以實(shí)現(xiàn)這一點(diǎn),更流行的方法是Bagging,其中多個(gè)模型在數(shù)據(jù)子集上并行訓(xùn)練:這種方法的一個(gè)例子是隨機(jī)森林。另一種集成方法是Boosting,其中模型按順序訓(xùn)練,每個(gè)模型都被訓(xùn)練以糾正前一個(gè)模型的錯(cuò)誤:這種方法的一個(gè)例子是梯度提升算法。

在測(cè)試了幾個(gè)選項(xiàng)之后,我們選擇了使用梯度提升方法來(lái)訓(xùn)練該模型

高效的標(biāo)簽校正

由于該模型的大部分訓(xùn)練數(shù)據(jù)來(lái)自偽標(biāo)記示例,我們的新模型主要經(jīng)過(guò)訓(xùn)練來(lái)學(xué)習(xí)我們基于規(guī)則的系統(tǒng)的決策,一定程度會(huì)傾向于重現(xiàn)已有的規(guī)則。為此,我們定義了一種方法可以手動(dòng)分析并糾正新模型與基于規(guī)則的系統(tǒng)的預(yù)測(cè)之間的差異。我們稱(chēng)這種方法為delta annotation。這個(gè)過(guò)程會(huì)專(zhuān)注于標(biāo)記標(biāo)記將對(duì)模型訓(xùn)練有改進(jìn)的數(shù)據(jù)。

有了這個(gè)部分校正的數(shù)據(jù)集,我們可以重新訓(xùn)練我們的模型,我們可以通過(guò)在最新模型和舊模型之間進(jìn)行增量注釋來(lái)不斷迭代和改進(jìn)我們的數(shù)據(jù)集。在我們的例子中,兩次迭代足以使差異飽和并在視覺(jué)差距級(jí)別達(dá)到良好的性能。

這使我們能夠遵循以數(shù)據(jù)為中心的方法,我們可以專(zhuān)注于系統(tǒng)地改進(jìn)我們的數(shù)據(jù),以提高我們模型的性能。

圖7

評(píng)估

我們現(xiàn)在有了更好的文本提取模型,但實(shí)際上仍然面臨著巨大的挑戰(zhàn)。我們?nèi)绾未_保視覺(jué)間隙級(jí)別的的識(shí)別改進(jìn)能夠轉(zhuǎn)化為原文本提取的整體改進(jìn)(回想一下,一個(gè)文檔可以有多個(gè)視覺(jué)間隙)。更重要的是,這是否轉(zhuǎn)化為簡(jiǎn)歷解析質(zhì)量的提高?為了驗(yàn)證這些問(wèn)題,我們需要在多個(gè)層面評(píng)估我們的新系統(tǒng)。

首先,我們進(jìn)行了模型評(píng)估,以了解我們是否更擅長(zhǎng)在視覺(jué)差距層面做出決策。為此,我們可以簡(jiǎn)單地使用盲測(cè)集并將新模型的性能與舊模型進(jìn)行比較。在 600 多個(gè)視覺(jué)差距上,我們的新模型在 91% 的情況下做出了正確的決定,而我們的舊規(guī)則庫(kù)系統(tǒng)只有 82%。然而,視覺(jué)差距并不都同樣重要,有些比其他的更重要:在我們的例子中,與列對(duì)應(yīng)的視覺(jué)差距是最重要的。對(duì)于這個(gè)重要的子集,我們看到性能從 60% 提高到 82%。換句話(huà)說(shuō),錯(cuò)誤率減少了一半以上。

其次,我們看看視覺(jué)間隙分類(lèi)的改進(jìn)是否轉(zhuǎn)化為更好的原文本提?。ɑ叵胍幌拢谝粋€(gè)文檔中可能有多個(gè)視覺(jué)間隙)。換句話(huà)說(shuō),我們是否在不混合左右分欄簡(jiǎn)歷中的部分方面做得更好?然而,由于多個(gè)種分割方式可能都是正確的,因此很難標(biāo)注單個(gè)“正確”的渲染。因此,我們不得不對(duì)原文本提取結(jié)果進(jìn)行主觀評(píng)價(jià)。使用我們信得過(guò)標(biāo)注服務(wù),我們將新舊系統(tǒng)的原文本提取結(jié)果并排顯示給我們的注釋者(他們不知道哪一面是哪一面)。注釋者評(píng)估文本現(xiàn)在是更好地分離、更差還是與以前大致相同。一組大約 7000 份簡(jiǎn)歷的結(jié)果中有4200份都認(rèn)為新版本更好,2400認(rèn)為差不多,只有400份認(rèn)為原來(lái)的更好。

最后,我們看看更好的原文本提取是否能轉(zhuǎn)化為更好的解析結(jié)果。我們知道,在舊系統(tǒng)失敗的左右分欄簡(jiǎn)歷中,我們的解析器有時(shí)會(huì)提取較少的信息,尤其是姓名、電話(huà)和地址等聯(lián)系信息。因此,最有效的方法是簡(jiǎn)單地檢查填充率是否在增加。在超過(guò) 12000 份隨機(jī)簡(jiǎn)歷中,我們看到聯(lián)系信息填充率絕對(duì)增加了 8%。但更多并不一定意味著更好!因此,我們還投資評(píng)估了使用舊系統(tǒng)的解析器和使用新系統(tǒng)的解析器之間的 1000 多個(gè)差異。下圖中的結(jié)果顯示了我們的新系統(tǒng)已修復(fù)的錯(cuò)誤百分比。以上數(shù)據(jù)確認(rèn)了我們現(xiàn)在擁有了一個(gè)端到端更好的解析器!?

圖8

總結(jié)我們的改進(jìn)

通過(guò)利用機(jī)器學(xué)習(xí)和海量數(shù)據(jù)來(lái)取代我們基于規(guī)則的原文本提取系統(tǒng)使得我們現(xiàn)在能夠精準(zhǔn)解析更多的簡(jiǎn)歷布局樣式,以下是主要的優(yōu)化數(shù)據(jù)

1. 對(duì)于與列對(duì)應(yīng)的視覺(jué)差距,視覺(jué)差距級(jí)別的正確決策從 60% 提高到 82%

2. 原文本提取質(zhì)量從 62% 提高到 90%

3. 聯(lián)系信息填充率絕對(duì)值增加了8%

4. 聯(lián)系信息錯(cuò)誤率從 33% 減少到 100%

5. 與我們基于規(guī)則的系統(tǒng)相比,速度影響可以忽略不計(jì)(額外 10 毫秒)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容