欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python庫textract提取各種文檔類型中文本數(shù)據(jù)

 更新時間:2024年01月15日 11:37:10   作者:濤哥聊python  
Python的textract庫是一個強大的工具,它可以從各種文檔類型中提取文本數(shù)據(jù),無論是PDF、Word文檔、圖片還是其他格式的文件,textract都可以輕松地將文本提取出來,本文將詳細介紹textract的功能和用法,并提供豐富的示例代碼來幫助大家深入了解

安裝和導(dǎo)入Textract

大家好,今天為大家分享一個無敵的 Python 庫 - textract。

Github地址:

https://github.com/deanmalmgren/textract 

在現(xiàn)代信息時代,文檔處理是一個常見的任務(wù),無論是在工作中還是在個人生活中。

要開始使用textract,首先需要安裝它。

可以使用pip進行安裝:

pip install textract

安裝完成后,可以在Python中導(dǎo)入textract模塊:

import textract

基本用法

textract的基本思想是將不同類型的文檔轉(zhuǎn)化為文本,以便進一步處理或分析。

以下是一個簡單的示例,演示了如何使用textract從一個PDF文件中提取文本:

import textract

text = textract.process('sample.pdf')
print(text.decode('utf-8'))

在這個示例中,使用process函數(shù)來提取sample.pdf文件中的文本。提取的文本將以字節(jié)流的形式返回,使用decode方法將其轉(zhuǎn)化為UTF-8編碼的文本。

支持的文檔類型

textract支持多種文檔類型,包括但不限于:

  • PDF

  • Microsoft Word (.doc, .docx)

  • PowerPoint (.ppt, .pptx)

  • Excel (.xls, .xlsx)

  • OpenDocument (.odt, .ods)

  • HTML

  • 圖像文件(JPEG、PNG、TIFF等)

這意味著可以使用textract來處理各種不同格式的文檔,而不必依賴于特定的工具或庫。

高級用法

除了基本用法外,textract還提供了一些高級功能,如自定義解析器、處理大型文檔和多語言支持等。

自定義解析器

textract使用內(nèi)置的解析器來提取文本,但你也可以自定義解析器來處理特定類型的文檔。

以下是一個示例,演示了如何自定義解析器來處理特定類型的文檔:

import textract

class MyCustomParser(textract.parsers.Parser):
    def extract(self, filename, **kwargs):
        # 自定義解析文檔的邏輯
        pass

text = textract.process('custom_document.ext', parser=MyCustomParser())
print(text.decode('utf-8'))

在這個示例中,創(chuàng)建了一個名為MyCustomParser的自定義解析器,并將其傳遞給process函數(shù),以用于處理custom_document.ext文件。

處理大型文檔

textract可以處理大型文檔,而不會消耗大量內(nèi)存。這使得它適用于處理大型PDF、Word文檔等文件。

以下是一個示例,演示了如何處理大型PDF文件:

import textract

text = textract.process('large_document.pdf', encoding='utf-8', extension='pdf')
print(text)

在這個示例中,使用encoding參數(shù)來指定文本的編碼,以及extension參數(shù)來指定文件擴展名,以確保textract正確處理大型PDF文件。

多語言支持

textract支持多種語言的文本提取,可以指定文檔的語言,以確保正確提取文本。

以下是一個示例,演示了如何提取不同語言的文本:

import textract
text_english = textract.process('english_document.pdf', language='eng')
text_spanish = textract.process('spanish_document.pdf', language='spa')

在這個示例中,使用language參數(shù)來指定文檔的語言,以確保textract正確提取文本。

實際應(yīng)用場景

當使用textract時,它可以在各種實際應(yīng)用場景中發(fā)揮作用。以下是一些具體的示例代碼,演示了如何在這些場景中使用textract。

1. 文檔搜索與索引

示例:建立文檔搜索引擎

import textract
def extract_text_from_document(document_path):
    try:
        text = textract.process(document_path).decode('utf-8')
        return text
    except Exception as e:
        print(f"Error extracting text from {document_path}: {str(e)}")
        return ""
def build_search_index(documents):
    search_index = {}
    for doc_path in documents:
        text = extract_text_from_document(doc_path)
        if text:
            words = text.split()
            for word in words:
                if word not in search_index:
                    search_index[word] = []
                search_index[word].append(doc_path)
    return search_index
# 示例文檔
documents = ['document1.pdf', 'document2.docx', 'document3.txt']
# 建立搜索引擎
search_index = build_search_index(documents)
# 搜索關(guān)鍵詞
keyword = 'Python'
if keyword in search_index:
    matching_documents = search_index[keyword]
    print(f"Documents containing '{keyword}':")
    for doc in matching_documents:
        print(doc)

在這個示例中,使用textract從文檔中提取文本,并建立了一個簡單的搜索引擎,以根據(jù)關(guān)鍵詞搜索匹配的文檔。

2. 文本分析與挖掘

示例:情感分析

import textract
from textblob import TextBlob

def perform_sentiment_analysis(document_path):
    try:
        text = textract.process(document_path).decode('utf-8')
        blob = TextBlob(text)
        sentiment_score = blob.sentiment.polarity
        return sentiment_score
    except Exception as e:
        print(f"Error performing sentiment analysis on {document_path}: {str(e)}")
        return None

# 示例文檔
documents = ['positive_review.txt', 'negative_review.txt', 'neutral_text.txt']

# 執(zhí)行情感分析
for doc_path in documents:
    sentiment_score = perform_sentiment_analysis(doc_path)
    if sentiment_score is not None:
        print(f"Sentiment score for {doc_path}: {sentiment_score}")

在這個示例中,使用textract從文檔中提取文本,并使用TextBlob庫執(zhí)行情感分析,以獲取文檔的情感分數(shù)。

3. 數(shù)據(jù)抽取與轉(zhuǎn)換

示例:將文檔數(shù)據(jù)轉(zhuǎn)化為CSV

import textract
import csv

def extract_text_to_csv(document_path, output_csv):
    try:
        text = textract.process(document_path).decode('utf-8')
        with open(output_csv, 'w', newline='', encoding='utf-8') as csv_file:
            writer = csv.writer(csv_file)
            writer.writerow(['Text'])
            writer.writerow([text])
    except Exception as e:
        print(f"Error extracting text to CSV from {document_path}: {str(e)}")

# 示例文檔
document = 'sample_document.pdf'

# 提取文本并保存為CSV
extract_text_to_csv(document, 'document_text.csv')

在這個示例中,使用textract從文檔中提取文本,并將其保存為CSV文件,以便進一步分析或處理。

4. 自動化文檔處理

示例:自動化生成報告

import textract
from docx import Document

def generate_report(document_path, output_path):
    try:
        text = textract.process(document_path).decode('utf-8')
        doc = Document()
        doc.add_heading('Report', 0)
        doc.add_paragraph(text)
        doc.save(output_path)
        print(f"Report generated at {output_path}")
    except Exception as e:
        print(f"Error generating report from {document_path}: {str(e)}")

# 示例文檔
document = 'data_report.docx'

# 自動生成報告
generate_report(document, 'generated_report.docx')

在這個示例中,使用textract從文檔中提取文本,并自動化生成新的報告文檔。

總結(jié)

textract是一個強大的文檔文本提取工具,它可以從各種文檔類型中提取文本數(shù)據(jù)。通過本文的介紹和示例代碼,應(yīng)該已經(jīng)對textract的功能和用法有了深入的了解,可以開始在自己的項目中使用它,以提取文檔中的文本并應(yīng)用于各種實際應(yīng)用場景。

以上就是Python庫textract提取各種文檔類型中文本數(shù)據(jù)的詳細內(nèi)容,更多關(guān)于Python庫textract提取文本的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python將xml和xsl轉(zhuǎn)換為html的方法

    Python將xml和xsl轉(zhuǎn)換為html的方法

    這篇文章主要介紹了Python將xml和xsl轉(zhuǎn)換為html的方法,實例分析了使用libxml2模塊操作xml和xsl轉(zhuǎn)換為html的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • Python訪問PostgreSQL數(shù)據(jù)庫詳細操作

    Python訪問PostgreSQL數(shù)據(jù)庫詳細操作

    postgresql是常用的關(guān)系型數(shù)據(jù)庫,并且postgresql目前還保持著全部開源的狀態(tài),這篇文章主要給大家介紹了關(guān)于Python訪問PostgreSQL數(shù)據(jù)庫的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • Python 循環(huán)讀取數(shù)據(jù)內(nèi)存不足的解決方案

    Python 循環(huán)讀取數(shù)據(jù)內(nèi)存不足的解決方案

    這篇文章主要介紹了Python 循環(huán)讀取數(shù)據(jù)內(nèi)存不足的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • pandas添加新列的5種常見方法

    pandas添加新列的5種常見方法

    pandas為DataFrame格式數(shù)據(jù)添加新列的方法非常簡單,下面這篇文章主要給大家介紹了關(guān)于pandas添加新列的5種常見方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • python selenium 執(zhí)行完畢關(guān)閉chromedriver進程示例

    python selenium 執(zhí)行完畢關(guān)閉chromedriver進程示例

    今天小編就為大家分享一篇python selenium 執(zhí)行完畢關(guān)閉chromedriver進程示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • python執(zhí)行l(wèi)inux系統(tǒng)命令的三種方式小結(jié)

    python執(zhí)行l(wèi)inux系統(tǒng)命令的三種方式小結(jié)

    本文介紹三種在python執(zhí)行l(wèi)inux命令的方式,三種方式都是基于python的標準庫實現(xiàn),因此不需要額外安裝第三方庫,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • Django頁面數(shù)據(jù)的緩存與使用的具體方法

    Django頁面數(shù)據(jù)的緩存與使用的具體方法

    這篇文章主要介紹了Django頁面數(shù)據(jù)的緩存與使用的具體方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 在tensorflow中設(shè)置保存checkpoint的最大數(shù)量實例

    在tensorflow中設(shè)置保存checkpoint的最大數(shù)量實例

    今天小編就為大家分享一篇在tensorflow中設(shè)置保存checkpoint的最大數(shù)量實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python求前n個階乘的和實例

    python求前n個階乘的和實例

    這篇文章主要介紹了python求前n個階乘的和實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • python爬蟲之生活常識解答機器人

    python爬蟲之生活常識解答機器人

    這篇文章主要介紹了python爬蟲之生活常識解答機器人,文中有非常詳細的代碼示例,對正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04

最新評論