亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

安裝和導(dǎo)入Textract

大家好,今天為大家分享一個(gè)無(wú)敵的 Python 庫(kù) - textract。

Github地址:

https://github.com/deanmalmgren/textract 

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

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

可以使用pip進(jìn)行安裝:

pip install textract

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

import textract

基本用法

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

以下是一個(gè)簡(jiǎn)單的示例,演示了如何使用textract從一個(gè)PDF文件中提取文本:

import textract

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

在這個(gè)示例中,使用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來處理各種不同格式的文檔,而不必依賴于特定的工具或庫(kù)。

高級(jí)用法

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

自定義解析器

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

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

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

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

處理大型文檔

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

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

import textract

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

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

多語(yǔ)言支持

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

以下是一個(gè)示例,演示了如何提取不同語(yǔ)言的文本:

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

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

實(shí)際應(yīng)用場(chǎng)景

當(dāng)使用textract時(shí),它可以在各種實(shí)際應(yīng)用場(chǎng)景中發(fā)揮作用。以下是一些具體的示例代碼,演示了如何在這些場(chǎng)景中使用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)

在這個(gè)示例中,使用textract從文檔中提取文本,并建立了一個(gè)簡(jiǎn)單的搜索引擎,以根據(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}")

在這個(gè)示例中,使用textract從文檔中提取文本,并使用TextBlob庫(kù)執(zhí)行情感分析,以獲取文檔的情感分?jǐn)?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')

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

4. 自動(dòng)化文檔處理

示例:自動(dòng)化生成報(bào)告

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'

# 自動(dòng)生成報(bào)告
generate_report(document, 'generated_report.docx')

在這個(gè)示例中,使用textract從文檔中提取文本,并自動(dòng)化生成新的報(bào)告文檔。

總結(jié)

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

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

相關(guān)文章

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

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

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

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

    postgresql是常用的關(guān)系型數(shù)據(jù)庫(kù),并且postgresql目前還保持著全部開源的狀態(tài),這篇文章主要給大家介紹了關(guān)于Python訪問PostgreSQL數(shù)據(jù)庫(kù)的相關(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)存不足的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • pandas添加新列的5種常見方法

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

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

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

    今天小編就為大家分享一篇python selenium 執(zhí)行完畢關(guān)閉chromedriver進(jìn)程示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    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的標(biāo)準(zhǔn)庫(kù)實(shí)現(xiàn),因此不需要額外安裝第三方庫(kù),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • Django頁(yè)面數(shù)據(jù)的緩存與使用的具體方法

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

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

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

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

    python求前n個(gè)階乘的和實(shí)例

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

    python爬蟲之生活常識(shí)解答機(jī)器人

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

最新評(píng)論