提高"左右分欄式簡歷"的解析效果

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

介紹

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

圖1

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

圖2

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

傳統(tǒng)的方法

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

該方法有 3 個步驟。

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

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

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

圖3

然而,利用視覺間隙的方法會在諸多問題,例如:對于下面這種文本,會將左右兩部分分開,從而導致字段提取不正確。

圖4

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

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

第一次改進試驗

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

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

圖5

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

我們的新方法

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

新的迭代流程變成了:?

數(shù)據(jù)選擇 ->?手動注釋?-> 模型訓練?->?標簽校正?->?評估

圖6

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

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

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

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

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

手動注釋

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

模型訓練

有了訓練數(shù)據(jù)后,我們現(xiàn)在可以通過訓練機器學習模型來模仿我們基于規(guī)則的系統(tǒng)決策了。我們從決策樹算法開始我們的實驗。這是一種應用于我們的數(shù)據(jù)集的簡單算法,非常有效,提供良好的分類性能,同時應用速度非??欤@是我們在我們評估方法的重要標準?

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

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

在測試了幾個選項之后,我們選擇了使用梯度提升方法來訓練該模型

高效的標簽校正

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

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

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

圖7

評估

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

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

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

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

圖8

總結(jié)我們的改進

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

1. 對于與列對應的視覺差距,視覺差距級別的正確決策從 60% 提高到 82%

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

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

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

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

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

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

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