精品欧美一区二区三区在线观看 _久久久久国色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男人天堂一区| 久久精品视频导航| 性折磨bdsm欧美激情另类| 爱情岛亚洲播放路线| 2017欧美狠狠色| 成人欧美在线观看 | 亚洲在线成人精品| 免费一区二区三区| 国产孕妇孕交大片孕| 最新国产乱人伦偷精品免费网站| 亚洲天堂av女优| 在线观看网站黄| 国产精品伦理| 一区二区三区中文字幕精品精品| 欧美xxxx黑人又粗又长密月| 国产精品一区二区黑人巨大| 亚洲一区二区三区四区五区午夜| xvideos亚洲人网站| 醉酒壮男gay强迫野外xx| 国产精一区二区| 色综合久久中文字幕| 日韩中文字幕亚洲精品欧美| 国产福利电影在线| 不卡一二三区首页| 91久久国产精品| 91午夜精品亚洲一区二区三区| 欧美黄色一区| 色婷婷av一区二区三区久久| 中出视频在线观看| 欧美欧美在线| 911国产精品| jizz大全欧美jizzcom| 黄色在线网站噜噜噜| 亚洲精品成人悠悠色影视| 亚洲一区三区电影在线观看| 天堂v视频永久在线播放| 国内成+人亚洲+欧美+综合在线 | 日韩免费观看一区二区| 一个色综合网| 日韩中文字幕网站| 亚洲精品国产熟女久久久| 加勒比久久高清| 欧美一区二区不卡视频| jizz欧美性11| 亚洲日本网址| 在线精品视频一区二区| 国产日韩一区二区在线| 18video性欧美19sex高清| 亚洲精品高清视频在线观看| 自拍偷拍99| 91网在线播放| 中文欧美字幕免费| 欧美乱偷一区二区三区在线| 婷婷视频在线观看| 成人av网站免费| 国产精品三区在线| 免费av网站观看| 成人午夜免费av| 国产成人亚洲欧美| 天天操天天干天天干| 不卡在线视频中文字幕| 欧美精品在线一区| 激情福利在线| 中文字幕 久热精品 视频在线| 天堂√在线观看一区二区| 阿v免费在线观看| 国产精品国产三级国产a| 亚洲欧洲一区二区福利| 精品美女在线观看视频在线观看 | 欧美成人黄色网| 欧美精品成人| 韩日欧美一区二区| 欧美啪啪小视频| 日韩国产在线一| 国产日韩精品在线| 国产99对白在线播放| 国产大陆精品国产| 精品久久久久久乱码天堂| 免费人成在线观看网站| 国产农村妇女毛片精品久久麻豆| 亚洲精品在线免费看| 国产黄色在线免费观看| 亚洲电影在线免费观看| 男女曰b免费视频| 日日夜夜亚洲精品| 亚洲精品一区二区三区在线观看| 精品人妻一区二区三区日产乱码卜 | 狠狠躁夜夜躁人人躁婷婷91| 国产精品天天av精麻传媒| 欧美黄色网络| 精品88久久久久88久久久| 毛茸茸多毛bbb毛多视频| 日韩免费视频| 欧美激情精品久久久久久大尺度| 国产免费av一区| 久久激五月天综合精品| 国产精品久久久久久久久久久久午夜片 | 欧美一区二区免费| 国产精品扒开腿做爽爽爽a片唱戏 亚洲av成人精品一区二区三区 | 国精品一区二区| 日本一区二区在线免费播放| 国产又粗又大又爽视频| 99精品欧美一区二区三区综合在线| 日韩精品无码一区二区三区| 日韩专区av| 色八戒一区二区三区| 中文字幕第六页| 久久婷婷国产| 久久亚洲一区二区三区四区五区高| 日韩精品人妻中文字幕| 国产自产2019最新不卡| 美国av一区二区三区| 在线中文字幕视频观看| 91国在线观看| 成年人的黄色片| 婷婷色综合网| 国产精品大片wwwwww| 狠狠综合久久av一区二区| 国产精品久久久久三级| 日本日本19xxxⅹhd乱影响| 国产麻豆一区二区三区| 亚洲色图日韩av| 激情综合网五月婷婷| 国产精品1区2区3区| 色综合电影网| 中文字幕在线免费观看视频| 欧美变态凌虐bdsm| 三级黄色在线观看| 日日摸夜夜添夜夜添精品视频 | 亚洲最大成人在线观看| 丝袜美腿综合| 国内偷自视频区视频综合| 国产三级小视频| 国产精品久久久久久久午夜片| 免费男同深夜夜行网站| 免费看成人人体视频| 欧美激情一级精品国产| 国产丰满果冻videossex| 国产精品乱人伦| 亚洲欧美激情网| 欧美久久综合网| 国产成人一区二区三区| 欧美白人做受xxxx视频| 福利视频第一区| 狠狠人妻久久久久久综合蜜桃| 国产精品vip| 成人动漫视频在线观看免费| 欧美14一18处毛片| 精品国产区一区| 国产稀缺真实呦乱在线| 成人激情文学综合网| 免费超爽大片黄| 欧美做受69| 奇门遁甲1982国语版免费观看高清| 日韩电影在线观看完整版| 日韩欧美亚洲一二三区| 男人天堂av电影| 日韩电影免费一区| 夜夜爽www精品| 午夜精品久久久久久毛片| 日韩有码在线播放| 国产老妇伦国产熟女老妇视频| 自拍偷拍亚洲综合| 亚洲视频在线不卡| 亚洲天堂偷拍| 久久99精品国产99久久| 电影一区二区三| 在线播放国产精品| 国产伦精品一区二区三区免.费 | 超碰在线免费观看97| 欧美日本三级| 国产91av在线| av在线第一页| 日韩一区二区精品在线观看| 国产精品不卡av| www日韩大片| 黄色永久免费网站| 午夜精品久久久久99热蜜桃导演 | 亚洲乱码中文字幕综合| av天堂一区二区| 午夜在线观看免费一区| 亚洲欧美日韩精品久久久| 国产在线不卡一区二区三区| 久久久亚洲成人| 国产日本在线视频| 日韩一区二区麻豆国产| 日本韩国欧美中文字幕| 国产精品乱码一区二三区小蝌蚪| 潘金莲一级淫片aaaaa| 亚洲综合电影一区二区三区| 伊人久久av导航| 国产伦精品一区二区三区免费优势| 亲爱的老师9免费观看全集电视剧| 日本在线免费| 亚洲成人精品久久| 中文字幕视频二区| 亚洲国产精品久久久久婷婷884| av男人的天堂av| 国产精品影音先锋| 北条麻妃视频在线| 欧美特黄一区| 亚洲高清在线观看一区| 精品一区二区男人吃奶| 成人国产亚洲精品a区天堂华泰| 国产社区精品视频| 超碰97人人做人人爱少妇| 欧美日本韩国一区二区| 日韩视频一区二区三区在线播放 | 老牛国产精品一区的观看方式| 麻豆映画在线观看| 国产亚洲一区| 韩日午夜在线资源一区二区| 精品视频成人| 国产精品国语对白| av在线中出| 美女视频久久黄| 91九色在线porn| 国产丝袜精品视频| 亚洲高清视频网站| 欧美精品自拍偷拍| 亚洲精品国产无码| 欧美小视频在线| 日本一二三区不卡| 亚洲一区二区三区在线看| 久久久久亚洲av片无码| 国产精品视频一二| 男女黄床上色视频| 91一区一区三区| 中国xxxx性xxxx产国| 国产精品夜夜嗨| 成年人三级黄色片| 免费成人你懂的| 亚欧美在线观看| 日本中文一区二区三区| 国产男女在线观看| 久久成人在线| 狠狠97人人婷婷五月| 一本色道久久综合一区 | 天堂在线亚洲视频| 18禁免费无码无遮挡不卡网站| 一区久久精品| 91九色国产ts另类人妖| 一区二区蜜桃| 亚洲国产精品女人| 亚洲天堂免费| 国产日产欧美一区二区| 一区二区三区在线| 久久久久久久久久伊人| 女主播福利一区| 亚洲五码在线观看视频| 亚洲精品一区二区妖精| 超薄肉色丝袜足j调教99| 最新精品国产| 国产91沈先生在线播放| 亚洲精品护士| 国产1区2区在线| 秋霞影院一区二区| 在线观看免费视频高清游戏推荐| 久久精品国产99国产精品| 777一区二区| 国产成人精品一区二| 女性生殖扒开酷刑vk| 处破女av一区二区| 国产在线观看无码免费视频| 久久综合国产精品| avhd101老司机| 亚洲人成影院在线观看| 国产亚洲精品av| 精品动漫一区二区三区| 免费av中文字幕| 欧美放荡的少妇| 老司机午夜福利视频| 亚洲免费精彩视频| av在线免费观看网站| 欧美精品在线免费播放| 欧美私密网站| 国产精品免费网站| 一区二区三区在线免费看| 精品无人区一区二区三区竹菊| 久久av资源| 97超碰人人爱| 国产视频一区三区| 成年人三级黄色片| 91色乱码一区二区三区| www成人啪啪18软件| 亚洲一级二级在线| 青娱乐在线免费视频| 欧美一区二区美女| 极品白浆推特女神在线观看| 欧美另类极品videosbest最新版本| 99爱在线视频| 国产区精品在线观看| 国内露脸中年夫妇交换精品| 丝袜足脚交91精品| 亚洲乱码视频| 毛片毛片毛片毛| 久久久久久久久岛国免费| 欧美风情第一页| 一本色道久久综合亚洲91| jizz国产视频| 国产一区二区三区日韩欧美| 国产网红在线观看| 国产一区视频在线播放| 丝袜av一区| 日本香蕉视频在线观看| 日本sm残虐另类| 中国极品少妇videossexhd| 国产精品理论在线观看| 一级片中文字幕| 日韩一区二区三区免费观看| 国产精品99999| 欧美一级在线播放| eeuss国产一区二区三区四区| 午夜精品区一区二区三| 亚洲日本黄色| 一本之道在线视频| 欧美国产激情一区二区三区蜜月| 日韩精品一卡二卡| 日韩美女天天操| 黄视频网站在线| 国产精品视频成人| 免费久久精品| 久在线观看视频| 顶级嫩模精品视频在线看| 成人免费毛片xxx| 欧美日韩日日夜夜| 国产午夜精品一区理论片| 97av在线视频| 欧美电影免费网站| cao在线观看| 成人午夜视频福利| 黄页网站免费观看| 日韩午夜中文字幕| 巨大荫蒂视频欧美大片| 国产精品在线看| 欧美亚洲国产精品久久| 动漫av免费观看| 久久久久久久久久久电影| 国产精品免费精品一区| 日韩二区三区在线| 日韩精品极品| 欧美高清视频一区| 久久先锋影音| www.av天天| 欧美主播一区二区三区美女| 国产精品一二三区视频| 国产精品扒开腿做| 第一sis亚洲原创| 99sesese| 日韩理论片一区二区| 国产三级精品在线观看| 欧美日韩999| 风间由美中文字幕在线看视频国产欧美| 天堂а√在线中文在线| 国产成人午夜99999| 日本网站在线免费观看| 日韩电视剧免费观看网站| 亚洲性色av| 污视频在线免费观看一区二区三区| 久久一区亚洲| 一二三四国产精品| 7777精品久久久大香线蕉| bestiality新另类大全| 国产成人精品一区二区三区福利| 亚洲成人中文| 国产成人精品无码免费看夜聊软件| 欧美专区在线观看一区| 色哟哟免费在线观看 | 久久久精品麻豆| 国产精品久久久久一区二区三区共| 国产乱码久久久久| 海角国产乱辈乱精品视频| 亚洲aaa级| 中文字幕精品一区二区三区在线| 樱花草国产18久久久久| 污视频网站免费观看| 国产精品观看在线亚洲人成网| 久久影视一区| 国产a级片视频| 色综合久久久久综合99| 免费av网站在线看| 国产青春久久久国产毛片| 日韩成人免费在线| 青青草免费av| 亚洲欧美日韩图片| 蜜桃精品视频| 中文字幕乱码人妻综合二区三区| 亚洲视频1区2区| 婷婷伊人综合中文字幕| 国产精品久久久久秋霞鲁丝| 欧美欧美全黄| 人妻av无码一区二区三区| 欧美一二三区在线观看| 成人免费影院| 黄色录像特级片| 国产日韩精品一区二区三区| www.亚洲欧美| 国产成人涩涩涩视频在线观看 | 亚洲精品福利|