日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 科技  > 軟件

從PDF和圖像中提取文本,以供大型語(yǔ)言模型使用

來(lái)源: 責(zé)編: 時(shí)間:2023-11-30 09:29:09 255觀看
導(dǎo)讀想法大型語(yǔ)言模型已經(jīng)席卷了互聯(lián)網(wǎng),導(dǎo)致更多的人沒(méi)有認(rèn)真關(guān)注使用這些模型最重要的部分:高質(zhì)量的數(shù)據(jù)!本文旨在提供一些有效從任何類型文檔中提取文本的技術(shù)。Python庫(kù)本文專注于Pytesseract、easyOCR、PyPDF2和LangChai

想法

大型語(yǔ)言模型已經(jīng)席卷了互聯(lián)網(wǎng),導(dǎo)致更多的人沒(méi)有認(rèn)真關(guān)注使用這些模型最重要的部分:高質(zhì)量的數(shù)據(jù)!本文旨在提供一些有效從任何類型文檔中提取文本的技術(shù)。MuV28資訊網(wǎng)——每日最新資訊28at.com

MuV28資訊網(wǎng)——每日最新資訊28at.com

Python庫(kù)

本文專注于Pytesseract、easyOCR、PyPDF2和LangChain庫(kù)。實(shí)驗(yàn)數(shù)據(jù)是一個(gè)單頁(yè)P(yáng)DF文件,可在以下鏈接獲取:MuV28資訊網(wǎng)——每日最新資訊28at.com

https://github.com/keitazoumana/Experimentation-Data/blob/main/Experimentation_file.pdfMuV28資訊網(wǎng)——每日最新資訊28at.com

由于Pytesseract和easyOCR可以處理圖像,因此在執(zhí)行內(nèi)容提取之前需要將PDF文件轉(zhuǎn)換為圖像。可以使用pypdfium2進(jìn)行轉(zhuǎn)換,這是一個(gè)用于處理PDF文件的強(qiáng)大庫(kù),其實(shí)現(xiàn)如下:MuV28資訊網(wǎng)——每日最新資訊28at.com

pip install pypdfium2

以下函數(shù)以PDF作為輸入,并將PDF的每一頁(yè)作為圖像列表返回。MuV28資訊網(wǎng)——每日最新資訊28at.com

def convert_pdf_to_images(file_path, scale=300/72):      pdf_file = pdfium.PdfDocument(file_path)      page_indices = [i for i in range(len(pdf_file))]      renderer = pdf_file.render(       pdfium.PdfBitmap.to_pil,       page_indices = page_indices,        scale = scale,   )      final_images = []       for i, image in zip(page_indices, renderer):              image_byte_array = BytesIO()       image.save(image_byte_array, format='jpeg', optimize=True)       image_byte_array = image_byte_array.getvalue()       final_images.append(dict({i:image_byte_array}))      return final_images

現(xiàn)在,我們可以使用display_images函數(shù)來(lái)可視化PDF文件的所有頁(yè)面。MuV28資訊網(wǎng)——每日最新資訊28at.com

def display_images(list_dict_final_images):      all_images = [list(data.values())[0] for data in list_dict_final_images]      for index, image_bytes in enumerate(all_images):              image = Image.open(BytesIO(image_bytes))       figure = plt.figure(figsize = (image.width / 100, image.height / 100))              plt.title(f"----- Page Number {index+1} -----")       plt.imshow(image)       plt.axis("off")       plt.show()

通過(guò)組合上述兩個(gè)函數(shù),我們可以得到以下結(jié)果:MuV28資訊網(wǎng)——每日最新資訊28at.com

convert_pdf_to_images = convert_pdf_to_images('Experimentation_file.pdf')display_images(convert_pdf_to_images)

MuV28資訊網(wǎng)——每日最新資訊28at.com

圖片PDF以圖像格式可視化MuV28資訊網(wǎng)——每日最新資訊28at.com

深入文本提取過(guò)程

1.Pytesseract

Pytesseract(Python-tesseract)是用于從圖像中提取文本信息的Python OCR工具,可以使用以下pip命令進(jìn)行安裝:MuV28資訊網(wǎng)——每日最新資訊28at.com

pip install pytesseract

以下的輔助函數(shù)使用了 Pytesseract 的 image_to_string() 函數(shù)從輸入圖像中提取文本。MuV28資訊網(wǎng)——每日最新資訊28at.com

from pytesseract import image_to_stringdef extract_text_with_pytesseract(list_dict_final_images):      image_list = [list(data.values())[0] for data in list_dict_final_images]   image_content = []      for index, image_bytes in enumerate(image_list):              image = Image.open(BytesIO(image_bytes))       raw_text = str(image_to_string(image))       image_content.append(raw_text)      return "/n".join(image_content)

可以使用 extract_text_with_pytesseract 函數(shù)提取文本,如下所示:MuV28資訊網(wǎng)——每日最新資訊28at.com

text_with_pytesseract = extract_text_with_pytesseract(convert_pdf_to_images)print(text_with_pytesseract)

成功執(zhí)行以上代碼將生成以下結(jié)果:MuV28資訊網(wǎng)——每日最新資訊28at.com

This document provides a quick summary of some of Zoumana’s article on Medium.It can be considered as the compilation of his 80+ articles about Data Science, Machine Learning andMachine Learning Operations....Pytesseract was able to extract the content of the image.Here is how it managed to do it!Pytesseract starts by identifying rectangular shapes within the input image from top-right to bottom-right. Then it extracts the content of the individual images, and the final result is the concatenation of those extracted content. This approach works perfectly when dealing with column-based PDFs and image documents....

Pytesseract 首先通過(guò)從圖像的右上角到右下角識(shí)別矩形形狀。然后它提取各個(gè)圖像的內(nèi)容,最終的結(jié)果是這些提取內(nèi)容的串聯(lián)。這種方法在處理基于列的 PDF 和圖像文檔時(shí)效果非常好。MuV28資訊網(wǎng)——每日最新資訊28at.com

2.easyOCR

easyOCR 也是一個(gè)用于光學(xué)字符識(shí)別的開(kāi)源 Python 庫(kù),目前支持提取 80 多種語(yǔ)言的文本。easyOCR需要安裝Pytorch 和 OpenCV,可以使用以下指令安裝:MuV28資訊網(wǎng)——每日最新資訊28at.com

!pip install opencv-python-headless==4.1.2.30

根據(jù)您的操作系統(tǒng),安裝 Pytorch 模塊的方法可能不同。但所有的說(shuō)明都可以在官方頁(yè)面上找到。現(xiàn)在我們來(lái)安裝 easyOCR 庫(kù):MuV28資訊網(wǎng)——每日最新資訊28at.com

!pip install easyocr

在使用 easyOCR 時(shí),因?yàn)樗С侄嗾Z(yǔ)言,所以在處理文檔時(shí)需要指定語(yǔ)言。通過(guò)其 Reader 模塊設(shè)置語(yǔ)言,指定語(yǔ)言列表。例如,fr 用于法語(yǔ),en 用于英語(yǔ)。語(yǔ)言的詳細(xì)列表在此處可用。MuV28資訊網(wǎng)——每日最新資訊28at.com

from easyocr import Reader# Load model for the English languagelanguage_reader = Reader(["en"])

文本提取過(guò)程在extract_text_with_easyocr 函數(shù)中實(shí)現(xiàn):MuV28資訊網(wǎng)——每日最新資訊28at.com

def extract_text_with_easyocr(list_dict_final_images):      image_list = [list(data.values())[0] for data in list_dict_final_images]   image_content = []      for index, image_bytes in enumerate(image_list):              image = Image.open(BytesIO(image_bytes))       raw_text = language_reader.readtext(image)       raw_text = " ".join([res[1] for res in raw_text])                             image_content.append(raw_text)      return "/n".join(image_content)

我們可以如下執(zhí)行上述函數(shù):MuV28資訊網(wǎng)——每日最新資訊28at.com

text_with_easy_ocr = extract_text_with_easyocr(convert_pdf_to_images)print(text_with_easy_ocr)

MuV28資訊網(wǎng)——每日最新資訊28at.com

easyOCR 的結(jié)果MuV28資訊網(wǎng)——每日最新資訊28at.com

與 Pytesseract 相比,easyOCR 的效果似乎不太高效。例如,它能夠有效地讀取前兩個(gè)段落。然而,它不是將每個(gè)文本塊視為獨(dú)立的文本,而是使用基于行的方法進(jìn)行讀取。例如,第一個(gè)文本塊中的字符串“Data Science section covers basic to advanced”已與第二個(gè)文本塊中的“overfitting when training computer vision”組合在一起,這種組合完全破壞了文本的結(jié)構(gòu)并使最終結(jié)果產(chǎn)生偏差。MuV28資訊網(wǎng)——每日最新資訊28at.com

3.PyPDF2

PyPDF2 也是一個(gè)專門(mén)用于 PDF 處理任務(wù)的 Python 庫(kù),例如文本和元數(shù)據(jù)的檢索、合并、裁剪等。MuV28資訊網(wǎng)——每日最新資訊28at.com

!pip install PyPDF2

提取邏輯實(shí)現(xiàn)在 extract_text_with_pyPDF 函數(shù)中:MuV28資訊網(wǎng)——每日最新資訊28at.com

def extract_text_with_pyPDF(PDF_File):    pdf_reader = PdfReader(PDF_File)        raw_text = ''    for i, page in enumerate(pdf_reader.pages):                text = page.extract_text()        if text:            raw_text += text    return raw_texttext_with_pyPDF = extract_text_with_pyPDF("Experimentation_file.pdf")print(text_with_pyPDF)

MuV28資訊網(wǎng)——每日最新資訊28at.com

使用 PyPDF 庫(kù)進(jìn)行文本提取MuV28資訊網(wǎng)——每日最新資訊28at.com

提取過(guò)程快速而準(zhǔn)確,甚至保留了原始字體大小。PyPDF 的主要問(wèn)題是它不能有效地從圖像中提取文本。MuV28資訊網(wǎng)——每日最新資訊28at.com

4.LangChain

LangChain 的 UnstructuredImageLoader 和 UnstructuredFileLoader 模塊可分別用于從圖像和文本/PDF 文件中提取文本,并且在本節(jié)中將探討這兩個(gè)選項(xiàng)。MuV28資訊網(wǎng)——每日最新資訊28at.com

首先,我們需要按照以下方式安裝 langchain 庫(kù):MuV28資訊網(wǎng)——每日最新資訊28at.com

!pip install langchain

(1) 從圖像中提取文本MuV28資訊網(wǎng)——每日最新資訊28at.com

from langchain.document_loaders.image import UnstructuredImageLoader

以下是提取文本的函數(shù):MuV28資訊網(wǎng)——每日最新資訊28at.com

def extract_text_with_langchain_image(list_dict_final_images):   image_list = [list(data.values())[0] for data in list_dict_final_images]   image_content = []      for index, image_bytes in enumerate(image_list):              image = Image.open(BytesIO(image_bytes))       loader = UnstructuredImageLoader(image)       data = loader.load()       raw_text = data[index].page_content                             image_content.append(raw_text)      return "/n".join(image_content)

現(xiàn)在,我們可以提取內(nèi)容:MuV28資訊網(wǎng)——每日最新資訊28at.com

text_with_langchain_image = extract_text_with_langchain_image(convert_pdf_to_images)print(text_with_langchain_image)

MuV28資訊網(wǎng)——每日最新資訊28at.com

來(lái)自 langchain UnstructuredImageLoader 的文本提取。MuV28資訊網(wǎng)——每日最新資訊28at.com

該庫(kù)成功高效地提取了圖像的內(nèi)容。MuV28資訊網(wǎng)——每日最新資訊28at.com

(2) 從 PDF 中提取文本MuV28資訊網(wǎng)——每日最新資訊28at.com

以下是從 PDF 中提取內(nèi)容的實(shí)現(xiàn):MuV28資訊網(wǎng)——每日最新資訊28at.com

from langchain.document_loaders import UnstructuredFileLoaderdef extract_text_with_langchain_pdf(pdf_file):      loader = UnstructuredFileLoader(pdf_file)   documents = loader.load()   pdf_pages_content = '/n'.join(doc.page_content for doc in documents)      return pdf_pages_contenttext_with_langchain_files = extract_text_with_langchain_pdf("Experimentation_file.pdf")print(text_with_langchain_files)

類似于 PyPDF 模塊,langchain 模塊能夠生成準(zhǔn)確的結(jié)果,同時(shí)保持原始字體大小。MuV28資訊網(wǎng)——每日最新資訊28at.com

MuV28資訊網(wǎng)——每日最新資訊28at.com

從 langchain 的 UnstructuredFileLoader 中提取文本。MuV28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-35306-0.html從PDF和圖像中提取文本,以供大型語(yǔ)言模型使用

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 全網(wǎng)最細(xì):Jest+Enzyme測(cè)試React組件(包含交互、DOM、樣式測(cè)試)

下一篇: 聊聊Clickhouse分布式表的操作

標(biāo)簽:
  • 熱門(mén)焦點(diǎn)
  • 天貓精靈Sound Pro體驗(yàn):智能音箱沒(méi)有音質(zhì)?來(lái)聽(tīng)聽(tīng)我的

    這幾年除了手機(jī)作為智能生活終端最主要的核心之外,第二個(gè)可以成為中心點(diǎn)的產(chǎn)品是什么?——是智能音箱。 手機(jī)在執(zhí)行命令的時(shí)候有兩種操作方式,手和智能語(yǔ)音助手,而智能音箱只
  • 5月安卓手機(jī)好評(píng)榜:魅族20 Pro奪冠

    性能榜和性價(jià)比榜之后,我們來(lái)看最后的安卓手機(jī)好評(píng)榜,數(shù)據(jù)來(lái)源安兔兔評(píng)測(cè),收集時(shí)間2023年5月1日至5月31日,僅限國(guó)內(nèi)市場(chǎng)。第一名:魅族20 Pro好評(píng)率:97.50%不得不感慨魅族老品牌還
  • 之家push系統(tǒng)迭代之路

    前言在這個(gè)信息爆炸的互聯(lián)網(wǎng)時(shí)代,能夠及時(shí)準(zhǔn)確獲取信息是當(dāng)今社會(huì)要解決的關(guān)鍵問(wèn)題之一。隨著之家用戶體量和內(nèi)容規(guī)模的不斷增大,傳統(tǒng)的靠"主動(dòng)拉"獲取信息的方式已不能滿足用
  • 新電商三兄弟,“抖快紅”成團(tuán)!

    來(lái)源:價(jià)值研究所作 者:Hernanderz 隨著內(nèi)容電商的概念興起,抖音、快手、小紅書(shū)組成的“新電商三兄弟”成為業(yè)內(nèi)一股不可忽視的勢(shì)力,給阿里、京東、拼多多帶去了巨大壓
  • 阿里大調(diào)整

    來(lái)源:產(chǎn)品劉有媒體報(bào)道稱,近期淘寶天貓集團(tuán)啟動(dòng)了近年來(lái)最大的人力制度改革,涉及員工績(jī)效、層級(jí)體系等多個(gè)核心事項(xiàng),目前已形成一個(gè)初步的“征求意見(jiàn)版”:1、取消P序列
  • 機(jī)構(gòu)稱Q2國(guó)內(nèi)智能手機(jī)銷量同比下滑4% vivo份額重回第1

    7月29日消息,根據(jù)市場(chǎng)調(diào)查機(jī)構(gòu)Counterpoint Research公布的最新報(bào)告,2023年第2季度中國(guó)智能手機(jī)銷量同比下降4%,創(chuàng)新自2014年以來(lái)第2季度銷量新低。報(bào)
  • 三星電子Q2營(yíng)收60萬(wàn)億韓元 存儲(chǔ)業(yè)務(wù)營(yíng)收同比仍下滑超過(guò)50%

    7月27日消息,據(jù)外媒報(bào)道,從三星電子所發(fā)布的財(cái)報(bào)來(lái)看,他們主要利潤(rùn)來(lái)源的存儲(chǔ)芯片業(yè)務(wù)在今年二季度仍不樂(lè)觀,營(yíng)收同比仍在大幅下滑,所在的設(shè)備解決方案
  • iQOO 11S新品發(fā)布會(huì)

    iQOO將在7月4日19:00舉行新品發(fā)布會(huì),推出杭州亞運(yùn)會(huì)電競(jìng)賽事官方用機(jī)iQOO 11S。
  • 蘋(píng)果140W USB-C充電器:采用氮化鎵技術(shù)

    據(jù)10 月 30 日 9to5 Mac 消息報(bào)道,當(dāng)蘋(píng)果推出新的 MacBook Pro 2021 時(shí),該公司還推出了新的 140W USB-C 充電器,附贈(zèng)在 MacBook Pro 16 英寸機(jī)型的盒子里,也支
Top 主站蜘蛛池模板: 蒙城县| 红原县| 浦城县| 潢川县| 上虞市| 大兴区| 南宫市| 仪征市| 嘉善县| 故城县| 贵州省| 虞城县| 酒泉市| 岐山县| 赤壁市| 广灵县| 监利县| 黄大仙区| 玉山县| 通道| 万宁市| 怀来县| 莱西市| 宿松县| 东兰县| 青龙| 应用必备| 象山县| 磐安县| 永年县| 鹤岗市| 江都市| 介休市| 什邡市| 广元市| 高碑店市| 梁平县| 芜湖县| 舒兰市| 澎湖县| 和平县|