關于人工智能應用場景中前期數據處理的業務場景和技術分析——包括結構化數據和非結構化數據 原創
“ 文檔處理是人工智能應用領域中的重要環節,其業務需求復雜,技術實現難度高;因此,怎么處理復雜文檔是每個技術人員都需要考慮的問題。”
文檔處理在當前人工智能行業下是一個非?;A也非常重要的工作,不論是模型的訓練和微調,還是以RAG檢索增強,亦或者是在傳統的搜索引擎(包括百度,谷歌這種搜索引擎;以及電商等內部平臺的搜索需求)中都是必不可少的一個重要環節。
但面對復雜的文檔格式和類型,文檔處理的難度相當大;而且在不同的需求場景下,同樣格式和內容的文檔需要不同的處理方式;比如說在開放性問答場景和精確性的企業服務場景下,對文檔處理的要求和質量是不一樣的。
所以,今天我們就來討論一下文檔處理過程中存在的一些問題以及相對的解決方案和技術選型。
文檔處理
關于文檔處理我們需要從兩個方面進行考慮,一個是業務場景,另一個是技術實現。
業務場景
先說業務場景,文檔處理的業務場景有很多;上面所說的RAG,模型訓練,搜索引擎等都需要文檔處理;而在垂直領域,比如醫療,金融,法律等面對快速爆炸的知識密集場景中,文檔處理依然是很重要的一環。
特別是面對多年積累的大量歷史數據,怎么快速從這些歷史數據中找到關鍵信息;除了搜索算法和大模型的應用之外,文檔的前期處理是必不可少且非常重要的一環。
因為,對于未經過處理的數據,再強大的算法或模型都很難得到精確的查詢或檢索效果;所以,文檔處理的方式,以及處理結果的質量都會成為影響數據召回的重要因素。
技術實現
技術實現也需要從多個角度進行說明和分析,主要包括不同文檔的類型和技術實現兩個方面。
文檔類型
在文檔處理領域中,不同的文檔類型和內容需要使用不同的處理方式;當然,這里所說的文檔并不只是指我們常見的word,pdf,md等文檔,還包括數據庫文檔,網頁文檔,圖片,表格等多種文檔類型。
從形式來看,文檔的類型多種多樣,包括我們常見的office三件套,markdown文檔,csv,數據庫文檔,網頁,日志文件等。
但從技術的角度來看,不管什么形式的文檔,主要都是以下三種格式:
- 結構化數據
- 半結構化數據
- 非結構化數據
結構化數據主要包括excel,csv,數據庫文檔,xml文檔,日志文件等。
半結構化數據主要包括網頁,mongdb,email等這種有部分是結構化數據,而部分是非結構化數據;比如說網頁中的標簽,h1,li;email的收件人,發件人等。
非結構化數據就是更常見的數據類型了,比如word,pdf,ppt,md,txt等;特別是word,pdf,md這種支持富文本,表格圖片的文檔格式;由于其復雜的文檔結構,導致其在處理過程中會存在非常多的困難點;比如常見的文本,圖片,表格同時存在的項目文檔;以及充斥大量架構圖,結構圖和流程圖的PDF文檔等。
而在人工智能應用場景中,我們不但需要保證這些文檔內容的連續性(比如表格拆分的問題),還需要保證其語義和結構性,比如目前對于存在大量結構圖和流程圖的文檔處理效果都不怎么好。
因此,面對這些復雜的文檔類型和內容,怎么進行有效性處理是很多企業和領域都需要思考和解決的問題。
技術方案
根據以上復雜的文檔類型,我們需要使用不同的數據處理方案;下面我們就以結構化,半結構化和非結構化這三種類型進行說明。
結構化數據
在這三種數據類型中,結構化數據是最好處理的一種數據格式;不論是數據庫,json數據,xml數據等;由于其有標準的格式,因此我們只需要根據其數據格式進行處理即可;而且由于計算機技術發展這些年,對這方面的數據處理技術已經非常成熟了。比如說python的pandas就非常適合處理數據庫,json和csv等格式的數據。
半結構化數據
半結構化數據相對來說處理過程相對較復雜一點,但又不像非結構化數據那么復雜。
比如說以網頁文檔為例,在爬蟲領域網頁爬取是一項非?;A的功能;而對爬取之后的網頁進行解析,可以使用正則表達式或一些三方網頁解析庫進行處理;其效果還不錯。
非結構化數據
非結構化數據在文檔處理領域中,屬于技術難度最大,處理方式最復雜的一種數據格式。
非結構化數據處理復雜的原因就在于,上面所說的文檔結構復雜,可能同時存在文字,圖片,表格,流程圖等多種不同的數據格式;而面對如此復雜的數據格式,再加上不同應用場景下對數據處理質量的要求;因此沒有辦法進行統一的處理;因此只能選擇在處理過程中的部分環節進行一定的抽象。
比如說,對文檔中的文字,圖片,表格分別進行提??;然后再進行特定的處理;這種一般會選擇多模態模型進行數據提取。
其次,對于一些圖片中存在大量文字描述的內容,可以選擇使用ORC等技術,把內容從圖片中提取出來然后當成文本數據進行處理。
當然,也可以使用最簡單的方式,通過多模態模型把整個文檔進行概要總結;然后使用總結的概要作為結果進行應用。
本文轉載自公眾號AI探索時代 作者:DFires
