精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

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

開發
本文專注于Pytesseract、easyOCR、PyPDF2和LangChain庫,旨在提供一些有效從任何類型文檔中提取文本的技術。

想法

大型語言模型已經席卷了互聯網,導致更多的人沒有認真關注使用這些模型最重要的部分:高質量的數據!本文旨在提供一些有效從任何類型文檔中提取文本的技術。

Python庫

本文專注于Pytesseract、easyOCR、PyPDF2和LangChain庫。實驗數據是一個單頁PDF文件,可在以下鏈接獲取:

https://github.com/keitazoumana/Experimentation-Data/blob/main/Experimentation_file.pdf

由于Pytesseract和easyOCR可以處理圖像,因此在執行內容提取之前需要將PDF文件轉換為圖像。可以使用pypdfium2進行轉換,這是一個用于處理PDF文件的強大庫,其實現如下:

pip install pypdfium2

以下函數以PDF作為輸入,并將PDF的每一頁作為圖像列表返回。

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

現在,我們可以使用display_images函數來可視化PDF文件的所有頁面。

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()

通過組合上述兩個函數,我們可以得到以下結果:

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

圖片PDF以圖像格式可視化

深入文本提取過程

1.Pytesseract

Pytesseract(Python-tesseract)是用于從圖像中提取文本信息的Python OCR工具,可以使用以下pip命令進行安裝:

pip install pytesseract

以下的輔助函數使用了 Pytesseract 的 image_to_string() 函數從輸入圖像中提取文本。

from pytesseract import image_to_string
def 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 函數提取文本,如下所示:

text_with_pytesseract = extract_text_with_pytesseract(convert_pdf_to_images)
print(text_with_pytesseract)

成功執行以上代碼將生成以下結果:

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 and
Machine 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 首先通過從圖像的右上角到右下角識別矩形形狀。然后它提取各個圖像的內容,最終的結果是這些提取內容的串聯。這種方法在處理基于列的 PDF 和圖像文檔時效果非常好。

2.easyOCR

easyOCR 也是一個用于光學字符識別的開源 Python 庫,目前支持提取 80 多種語言的文本。easyOCR需要安裝Pytorch 和 OpenCV,可以使用以下指令安裝:

!pip install opencv-python-headless==4.1.2.30

根據您的操作系統,安裝 Pytorch 模塊的方法可能不同。但所有的說明都可以在官方頁面上找到。現在我們來安裝 easyOCR 庫:

!pip install easyocr

在使用 easyOCR 時,因為它支持多語言,所以在處理文檔時需要指定語言。通過其 Reader 模塊設置語言,指定語言列表。例如,fr 用于法語,en 用于英語。語言的詳細列表在此處可用。

from easyocr import Reader

# Load model for the English language
language_reader = Reader(["en"])

文本提取過程在extract_text_with_easyocr 函數中實現:

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)

我們可以如下執行上述函數:

text_with_easy_ocr = extract_text_with_easyocr(convert_pdf_to_images)
print(text_with_easy_ocr)

easyOCR 的結果

與 Pytesseract 相比,easyOCR 的效果似乎不太高效。例如,它能夠有效地讀取前兩個段落。然而,它不是將每個文本塊視為獨立的文本,而是使用基于行的方法進行讀取。例如,第一個文本塊中的字符串“Data Science section covers basic to advanced”已與第二個文本塊中的“overfitting when training computer vision”組合在一起,這種組合完全破壞了文本的結構并使最終結果產生偏差。

3.PyPDF2

PyPDF2 也是一個專門用于 PDF 處理任務的 Python 庫,例如文本和元數據的檢索、合并、裁剪等。

!pip install PyPDF2

提取邏輯實現在 extract_text_with_pyPDF 函數中:

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_text
text_with_pyPDF = extract_text_with_pyPDF("Experimentation_file.pdf")
print(text_with_pyPDF)

使用 PyPDF 庫進行文本提取

提取過程快速而準確,甚至保留了原始字體大小。PyPDF 的主要問題是它不能有效地從圖像中提取文本。

4.LangChain

LangChain 的 UnstructuredImageLoader 和 UnstructuredFileLoader 模塊可分別用于從圖像和文本/PDF 文件中提取文本,并且在本節中將探討這兩個選項。

首先,我們需要按照以下方式安裝 langchain 庫:

!pip install langchain

(1) 從圖像中提取文本

from langchain.document_loaders.image import UnstructuredImageLoader

以下是提取文本的函數:

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)

現在,我們可以提取內容:

text_with_langchain_image = extract_text_with_langchain_image(convert_pdf_to_images)
print(text_with_langchain_image)

來自 langchain UnstructuredImageLoader 的文本提取。

該庫成功高效地提取了圖像的內容。

(2) 從 PDF 中提取文本

以下是從 PDF 中提取內容的實現:

from langchain.document_loaders import UnstructuredFileLoader
def 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_content
text_with_langchain_files = extract_text_with_langchain_pdf("Experimentation_file.pdf")
print(text_with_langchain_files)

類似于 PyPDF 模塊,langchain 模塊能夠生成準確的結果,同時保持原始字體大小。

從 langchain 的 UnstructuredFileLoader 中提取文本。

責任編輯:趙寧寧 來源: 小白玩轉Python
相關推薦

2021-03-15 21:50:22

Linux提取文本GUI工具

2021-03-10 10:20:06

Linux文本命令

2023-11-15 13:04:30

Python提取表格

2020-07-08 07:54:03

PythonPDF數據

2025-02-17 12:00:00

PythonOpenCV提取圖像

2021-09-04 23:45:40

機器學習語言人工智能

2014-07-16 17:35:03

Android表單模型

2021-03-16 09:00:00

深度學習人工智能傳感器

2021-05-13 23:54:12

DockerDockerfile鏡像

2021-08-16 11:51:16

微軟Windows 365Azure

2023-06-24 19:59:40

2013-04-01 11:14:56

IT大數據網絡信息化

2022-11-23 10:31:54

2023-03-26 00:24:15

2024-04-16 16:14:01

人工智能LLMRAG

2023-04-27 19:02:30

語言模型管理企業數據

2025-01-20 09:41:29

2023-06-19 16:05:22

大型語言模型人工智能

2022-08-24 15:57:17

圖片輪廓

2016-01-26 11:08:54

點贊
收藏

51CTO技術棧公眾號

午夜羞羞小视频在线观看| 中文字字幕在线观看| 麻豆精品av| 欧美伊人精品成人久久综合97| 中文字幕欧美日韩一区二区| 亚洲h视频在线观看| 男人的天堂亚洲| 日韩综合视频在线观看| 欧美激情一区二区三区p站| 范冰冰一级做a爰片久久毛片| 国产精品色哟哟网站| 国产激情美女久久久久久吹潮| 影音先锋在线国产| 欧美激情aⅴ一区二区三区| 亚洲精品在线91| 先锋资源在线视频| 国产人妖一区| 精品久久中文字幕久久av| 亚洲欧美日韩不卡一区二区三区| 亚洲伦理在线观看| 狠狠色丁香久久婷婷综| 欧美在线观看一区二区三区| 黄色录像二级片| 香蕉久久夜色精品国产使用方法 | 一区二区三区天堂av| 波多野吉衣在线视频| 99精品在免费线偷拍| 欧美日韩性生活视频| 黄色一级片av| 91免费在线| 久久久噜噜噜久久人人看| 国产精品免费一区二区三区观看| 国产露脸无套对白在线播放| 久久久久久久高潮| 69久久夜色精品国产7777| 青青草原在线免费观看视频| 97精品国产一区二区三区| 日韩精品视频在线观看网址| 韩国av中国字幕| 国产精久久一区二区| 欧美日韩aaa| 日本男人操女人| 午夜精品久久久久久久久久蜜桃| 天天影视色香欲综合网老头| 欧美乱做爰xxxⅹ久久久| aaa大片在线观看| 亚洲欧美激情在线| 黄色免费高清视频| 免费的黄网站在线观看| 国产精品久久久久久久蜜臀| 日韩精品成人一区二区在线观看| 日本啊v在线| 久久无码av三级| 免费在线观看一区二区| 免费人成在线观看网站| 久久亚洲综合色一区二区三区| 国产欧美一区二区三区另类精品| 亚洲国产精品无码久久| 成人精品视频一区| 国产91免费视频| 黄色小视频免费观看| 成人sese在线| 久久99精品久久久久久青青日本| 日韩porn| 久久蜜臀中文字幕| 四虎一区二区| 黄网站视频在线观看| 亚洲精品视频在线观看网站| 免费在线看黄色片| 九色porny丨国产首页在线| 欧美视频国产精品| 日本在线观看免费视频| 国产精久久久| 亚洲加勒比久久88色综合| 国产激情视频网站| 美女网站一区| 亚洲视频一区二区三区| 黄大色黄女片18免费| 午夜av一区| 高清欧美一区二区三区| 一级成人黄色片| 久久亚洲风情| 成人免费高清完整版在线观看| 精品国产亚洲AV| www.日韩在线| 亚洲欧美日韩精品在线| 色在线视频网| 一本到高清视频免费精品| 在线看的黄色网址| 日本一区二区三区视频在线看 | 国产成人精品一区二区三区在线观看 | 伊人久久成人| 国产精品video| www天堂在线| 国产偷国产偷精品高清尤物 | 亚洲精品成人无码| 在线精品视频在线观看高清| 97在线视频观看| 久草热在线观看| 国产99久久久久久免费看农村| 欧美成人在线免费观看| 成人ww免费完整版在线观看| 欧美日韩精品二区| 黄色片免费网址| 夜夜躁狠狠躁日日躁2021日韩| 另类图片亚洲另类| 无码一区二区三区| 成人精品高清在线| 好色先生视频污| 九色成人搞黄网站| 亚洲免费av网址| 久一视频在线观看| 麻豆精品一二三| 久久亚洲综合网| 手机在线免费av| 欧美精品一级二级| 久久国产柳州莫菁门| 雨宫琴音一区二区在线| 国产一区深夜福利| 成人激情电影在线看| 岛国视频午夜一区免费在线观看| 亚洲五月激情网| 欧美一区电影| 日韩av第一页| 午夜在线观看视频18| 亚洲愉拍自拍另类高清精品| 亚洲国产成人va在线观看麻豆| 亚洲另类春色校园小说| 国产最新精品视频| 午夜精品小视频| 日韩美女啊v在线免费观看| 免费激情视频在线观看| 精品国产一区二区三区不卡蜜臂| 久久香蕉频线观| 亚洲图片在线播放| 亚洲国产激情av| 日韩欧美xxxx| 精品亚洲精品| 91福利视频网| 无套内谢的新婚少妇国语播放| 一区二区三区视频在线看| 久久久久久久久久一区二区| 青青草成人影院| 国产精品视频免费在线观看| 国产福利在线观看| 欧洲另类一二三四区| 亚洲码无人客一区二区三区| 午夜一区不卡| 欧美日韩一区在线观看视频| 范冰冰一级做a爰片久久毛片| 国产视频久久久| 丰满少妇xoxoxo视频| 久久麻豆一区二区| 91免费视频网站在线观看| 在线视频亚洲专区| 国产精品久久久久久久av电影| 国产免费av高清在线| 欧美性欧美巨大黑白大战| 永久免费观看片现看| 黄网站免费久久| 成人在线观看毛片| 免费看久久久| 国产91在线播放| 福利视频在线| 日韩欧美成人午夜| 日本少妇性高潮| 久久久精品免费免费| 亚洲国产高清av| 欧美日韩亚洲一区三区| 狠狠爱一区二区三区| 在线视频超级| 在线免费观看羞羞视频一区二区| 亚洲系列在线观看| 一区二区三区不卡在线观看| 丝袜熟女一区二区三区| 丝瓜av网站精品一区二区| 一级一片免费播放| 粉嫩av一区二区| 国产精品91免费在线| 91香蕉在线观看| 日韩大片免费观看视频播放| 国产主播第一页| 亚洲免费观看高清完整版在线观看熊| 最新日本中文字幕| 免费看欧美女人艹b| 丰满人妻一区二区三区53号| 精品三级av在线导航| 国产欧美精品一区二区三区介绍| 在线中文字幕第一页| 亚洲另类图片色| 国产精品探花视频| 婷婷久久综合九色国产成人| 男人天堂资源网| 成人午夜激情片| 丝袜制服一区二区三区| 国模大胆一区二区三区| 新呦u视频一区二区| 一区二区三区国产好| 国产精品久久久久久久久久小说 | 亚洲精品国产a久久久久久| 北岛玲一区二区| 极品少妇一区二区| 久久国产乱子伦免费精品| 午夜欧美精品久久久久久久| 午夜精品短视频| 久久av国产紧身裤| 亚洲自拍偷拍区| 91国内外精品自在线播放| 97av在线视频| 在线看福利影| 在线精品播放av| 四虎影视2018在线播放alocalhost| 欧美日韩国产成人在线91| 天天操天天操天天操天天| 亚洲线精品一区二区三区八戒| 成人精品一二三区| 久久久久国产精品人| 精品国产一区在线| 国产精品资源在线看| 伊人国产在线视频| 葵司免费一区二区三区四区五区| 欧美精品卡一卡二| 综合久久久久| 日本在线视频www色| 久久国产成人精品| 日本午夜精品一区二区| 久久aimee| 国产精品果冻传媒潘| 日韩精品视频在线看| 91网站免费看| 韩国三级成人在线| 成人国产精品一区二区| 久久久久久一区二区三区四区别墅| 日韩av电影免费观看高清| 国偷自产一区二区免费视频| 2019中文在线观看| 九色porny丨国产首页在线| 性色av一区二区咪爱| 丁香花在线观看完整版电影| 欧美大片免费观看| 四虎影视国产在线视频| 精品中文字幕在线| 性欧美ⅴideo另类hd| 欧美黑人性猛交| 亚洲综合图区| 欧美国产亚洲精品久久久8v| 久久www人成免费看片中文| 欧美黄色小视频| 91av久久| 欧美一级电影免费在线观看| 国产极品在线观看| 秋霞av国产精品一区| 中文字幕不卡三区视频| 国产成人福利视频| 91久久久久久白丝白浆欲热蜜臀| 国产精品久久一区| 亚洲国产91视频| 成人在线观看91| 国产精品x8x8一区二区| 免费看成人午夜电影| 热久久天天拍国产| 国产免费内射又粗又爽密桃视频| 亚洲性视频h| 欧美黄网站在线观看| 日本成人在线视频网站| а 天堂 在线| 粉嫩蜜臀av国产精品网站| 日韩精品一区二区三区高清免费| 久久久久亚洲综合| 国产精品一区二区亚洲| 夜夜揉揉日日人人青青一国产精品 | 亚洲午夜国产一区99re久久| 男女视频免费看| 欧美在线小视频| 国产精品伊人久久| 亚洲成色777777女色窝| 国产私人尤物无码不卡| 久久精品国产一区二区电影| heyzo在线| 国产精品免费一区豆花| 日韩精品免费视频一区二区三区| 精品欧美国产| 日本不卡二三区| 久久久久99精品成人片| 日韩国产在线观看| 红桃视频一区二区三区免费| 91天堂素人约啪| 波多野结衣在线网址| 欧美午夜电影在线| 国产精品久久无码一三区| 亚洲国产精品视频在线观看 | 婷婷成人影院| 亚洲综合激情五月| 亚洲一区二区动漫| 激情久久综合网| 久久亚区不卡日本| 久久黄色免费视频| 欧美吞精做爰啪啪高潮| 懂色av蜜臀av粉嫩av分享吧| 亚洲天堂av电影| heyzo高清国产精品| 国产日韩精品电影| 亚洲97av| 日韩久久久久久久久久久久| 视频一区二区国产| 国产精品成人99一区无码| 国产精品嫩草99a| 国产精品777777| 欧美日韩精品一二三区| 日本精品专区| 久久久久久国产| 国产一区二区久久久久| 亚洲人成网站在线播放2019| 日韩一级不卡| 日韩精品xxx| 中文字幕亚洲综合久久菠萝蜜| av大片免费观看| 日韩你懂的在线观看| 欧美激情二区| 国产日产亚洲精品| av在线不卡免费观看| 农村妇女精品一二区| 成人免费av资源| 国产十六处破外女视频| 欧美日本一道本在线视频| 久久视频www| 91大神福利视频在线| 加勒比久久高清| 久操网在线观看| 国产成人在线看| 欧美做爰爽爽爽爽爽爽| 91麻豆精品91久久久久久清纯| 久蕉依人在线视频| 欧美一二三视频| 亚洲区小说区| 欧美激情精品久久久久久小说| 99久久免费精品| 国产成人在线免费观看视频| 欧美精品一区二区三区一线天视频| 91在线中字| 99re视频在线播放| 欧美亚洲不卡| 在线精品视频播放| 精品福利樱桃av导航| 天堂在线观看免费视频| 欧美一区二区三区免费视| 亚洲精品白浆高清| 好男人www社区| 亚洲国产精品99久久久久久久久| 中文字幕乱码视频| 日韩中文字幕第一页| 精品国产第一国产综合精品| 91精品国产吴梦梦| 福利一区二区在线| 亚洲天堂视频网站| 国产亚洲xxx| 欧美性aaa| 欧美少妇一区二区三区| 成人综合在线观看| 亚洲日本视频在线观看| 一区二区三区国产视频| 免费一级欧美在线观看视频| 一级全黄肉体裸体全过程| 国产福利视频一区二区三区| 久久一级黄色片| 亚洲精品美女久久| 欧美特黄aaaaaaaa大片| 亚洲午夜精品久久久中文影院av | 免费观看在线黄色网| 99在线影院| 国产精品日本| 亚洲AV成人无码网站天堂久久| 欧美一二三区在线观看| 91超碰在线| 午夜精品美女久久久久av福利| 激情欧美一区二区三区在线观看| 毛片aaaaa| 亚洲欧美中文在线视频| 国产不卡精品| 91成人在线观看喷潮教学| 国产色婷婷亚洲99精品小说| 国产精品系列视频| 91精品国产高清自在线看超| 成人高清电影网站| 久久久男人的天堂| 欧美中文字幕一区二区三区 | 91影院成人| 在线免费看黄色片| 欧美日韩一级大片网址| heyzo高清中文字幕在线| 亚洲欧洲精品一区| 成人午夜av影视| 亚洲中文字幕一区二区| 久久久影视精品| 999国产精品| 亚洲色图14p| 日韩欧美卡一卡二| 狠狠久久综合| 日韩黄色片视频| 亚洲国产裸拍裸体视频在线观看乱了|