目次
1. はじめに
2. 要件の説明
3. 手と頭を使い始めます
3.1 関連するサードパーティ パッケージをインストールします
3.2 必要なサードパーティ ライブラリをインポートします
3.3 PDF ファイルを読み取り、内容を特定します
実行結果
実行中の問題
新しい txt ファイルを生成します。新しいファイルは data.txt 内の空白行を削除し、元のファイル内で誤って識別されたコンテンツを正しいものに置き換えます。
3 列の csv ファイルを生成します。最初の列は英語名、2 番目の列は中国語名、3 列目は国です
概要
ホームページ バックエンド開発 Python チュートリアル PythonでPDテキスト認識・抽出・CSVファイルへの書き込みスクリプト共有を実現

PythonでPDテキスト認識・抽出・CSVファイルへの書き込みスクリプト共有を実現

May 17, 2023 pm 07:40 PM
python 脚本 csv

Python 实现 PD 文字识别、提取并写入 CSV 文件脚本分享

1. はじめに

2. 要件の説明

3. 自分の頭脳を使い始める

3.1 関連するサードパーティ パッケージをインストールする

3.2 必要なサードパーティ ライブラリをインポートします

3.3 PDF ファイルを読み取って内容を特定します

3.4 特定されたデータを処理して csv ファイルに書き込みます

まとめ

1. はじめに

スキャンされた文書は常に一般の人々の間で人気があります。紙の文書はスキャン後にアーカイブでき、いつでも携帯電話で開くことができます。それらを使用することで、心配や労力を節約できます。ただし、電子機器を介してスキャンするため、出力されるのは画像であり、ファイル上の内容を加工したい場合、直接操作することができないなど、スキャンした文書のメリットはデメリットにもなります。

内容を引用したい場合はどうすればよいですか?心配しないでください。Python が問題の解決に役立ちます。

2. 要件の説明

PDF スキャンがあります。テキストを抽出し、3 列の CSV ドキュメントに書き込みたいと考えています。内容と効果は次のとおりです:

Python 实现 PD 文字识别、提取并写入 CSV 文件脚本分享

pdfexample

Python 实现 PD 文字识别、提取并写入 CSV 文件脚本分享

csvexample

3. 手と頭を使い始めます

pdf スキャンはドキュメント スキャンであり、コンピュータの画像形式に変換され、テキストの抽出は画像内のテキストを識別することと同じです。したがって、私たちの仕事は、PDF を画像に変換し、OCR ツールを使用して画像内のテキストを抽出することです。

3.1 関連するサードパーティ パッケージをインストールします

pip3 install pdf2image pytesseract
ログイン後にコピー

3.2 必要なサードパーティ ライブラリをインポートします

import os #处理文件
from pdf2image import convert_from_path# pdf转图片
import pytesseract# 识别图片文字
import csv# 处理csv文件
ログイン後にコピー

3.3 PDF ファイルを読み取り、内容を特定します

tess_ocr (pdf_path, lang, first_page, last_page)

PDF ファイルを画像に分割し、テキストを抽出してテキスト ファイルに書き込みます

  • pdf_path: PDF の保存パスfile
  • image: PDF ドキュメントの各ページを表す PIL 画像のリスト
  • first_page: pdftoppm によって処理される最初のページを設定できます;
  • last_page: 最後のページを設定できますpdftoppm
  • fmt によって処理: 出力形式を指定できます。現在サポートされている形式は、jpg、png、ppm です。
  • 出力フォルダー: 画像の保存パス
def tess_ocr(pdf_path, lang,first_page,last_page):
# 创建一个和pdf同名的文件夹
 images = convert_from_path(pdf_path, fmt='png',first_page=first_page,last_page=last_page,output_folder=imagefolder,userpw='site')# 转成图片
text = ''
for img in images:
 text += pytesseract.image_to_string(img, lang=lang) # 识别图片文字
 with open(r'exampledata.txt' 'a', encoding='utf-8') as f: #写入txt文件
 f.write(text)
ログイン後にコピー

実行結果

分割を保存するための同じ名前のフォルダーを生成します。画像を作成し、画像のテキストを抽出して data.txt

Python 实现 PD 文字识别、提取并写入 CSV 文件脚本分享

image-20211215212147760

実行中の問題

" " 問題がスローされる1:

pdf2image.Exceptions.PDFInfoNotInstalledError: ページ数を取得できません。ポプラーはインストールされており、PATH にありますか? ''

解決策: ポプラーをダウンロードします。

#>>1 方法 1: 環境変数 Poppler/bin を設定します;

#>>2 方法 2:

パラメータは絶対パスを指定します:

images = Convert_from_path( pdf_path=pdf_file_path, Poppler_path=r'poppler 内の bin ファイルのアドレス')

" " 問題がスローされる 2:

pytesseract.pytesseract.TesseractNotFoundError: tesseract がインストールされていない、またはPATH にありません。詳細については、README ファイルを参照してください。」

解決策: さらに、tesseract-ocr をダウンロードしてインストールし、環境変数を構成します。

3.4 識別されたデータを処理して csv ファイルに書き込みます

modification(infile, outfile)

生成されたテキスト ドキュメントをクリーンアップします

infile: 処理が必要なファイルのアドレス
  • outfile: 処理後に生成された新しいファイルのアドレス
  • def modification(infile, outfile):
    infp = open(infile, "r",encoding='utf-8')
    outfp = open(outfile, "w",encoding='utf-8')
    lines = infp.readlines() #返回列表,包含所有的行。
    #依次读取每行
    for li in lines:
    if li.split(): #str.split(str="", num=string.count(str)),过滤文件中的空行
    # 根据识别情况对数据进行清洗
    li = li.replace('[', ' ').replace(']', '')
    outfp.writelines(li)
    infp.close()
    outfp.close()
    
    
    
    
    ログイン後にコピー
  • 実行結果

新しい txt ファイルを生成します。新しいファイルは data.txt 内の空白行を削除し、元のファイル内で誤って識別されたコンテンツを正しいものに置き換えます。

writercsv(intxt,outcsv)

テキスト ファイルをスペースで区切って csv テーブルに書き込みます

intxt: テキスト ファイル アドレス
  • outcsv: 新しく生成された csv ファイル
  • def writercsv(intxt,outcsv):
    # 使用newlines=''可保证存储的数据不空行。
    csvFile = open(outcsv, 'a',newline='', encoding='utf-8') 
    writer = csv.writer(csvFile)
    csvRow = []
    f = open(intxt,'r',encoding='utf-8')
    for line in f:
    csvRow = line.split() #以空格为分隔符
    if len(csvRow)>1 and len(csvRow)<=3:#约束条件,视情况而定
     writer.writerow(csvRow)
    f.close()
    csvFile.close()
    
    
    
    ログイン後にコピー
    実行結果

    3 列の csv ファイルを生成します。最初の列は英語名、2 番目の列は中国語名、3 列目は国です

    Python 实现 PD 文字识别、提取并写入 CSV 文件脚本分享image-20211215204846623

    Python 实现 PD 文字识别、提取并写入 CSV 文件脚本分享

    image-20211215204941725

    概要

    この研究を通じて、スキャンされた文書からテキストを抽出し、必要に応じてその内容をさまざまな形式に書き込むことが可能になります。 . 文書要件。

    最初は、PDF を抽出するためのライブラリはスキャンされた文書にも適しているのではないかと考え、Pdfplumber ライブラリと PyPDF2 ライブラリを試してみました。

    実践の結果、Pdfplumber はスキャンされた PDF のウォーターマークのみを認識でき、スキャンされた PDF には適用できないことがわかりました。PyPDF2 ライブラリが実行され、次のエラーが報告されます: NotImplementedError: アルゴリズム コード 1 と 2 のみがサポートされています。

    その理由は、この暗号化 PDF は acrobot の上位バージョンからのものである可能性があるため、対応する暗号化アルゴリズム コードは「4」ですが、既存の pypdf2 モジュールは暗号化アルゴリズム コード「4」のみをサポートしています。1 ' または '2' pdf 暗号化ファイル。

    以上がPythonでPDテキスト認識・抽出・CSVファイルへの書き込みスクリプト共有を実現の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPおよびPython:さまざまなパラダイムが説明されています PHPおよびPython:さまざまなパラダイムが説明されています Apr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPythonの選択:ガイド PHPとPythonの選択:ガイド Apr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

Visual StudioコードはPythonで使用できますか Visual StudioコードはPythonで使用できますか Apr 15, 2025 pm 08:18 PM

VSコードはPythonの書き込みに使用でき、Pythonアプリケーションを開発するための理想的なツールになる多くの機能を提供できます。ユーザーは以下を可能にします。Python拡張機能をインストールして、コードの完了、構文の強調表示、デバッグなどの関数を取得できます。デバッガーを使用して、コードを段階的に追跡し、エラーを見つけて修正します。バージョンコントロールのためにGitを統合します。コードフォーマットツールを使用して、コードの一貫性を維持します。糸くずツールを使用して、事前に潜在的な問題を発見します。

Python vs. JavaScript:学習曲線と使いやすさ Python vs. JavaScript:学習曲線と使いやすさ Apr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

Windows 8でコードを実行できます Windows 8でコードを実行できます Apr 15, 2025 pm 07:24 PM

VSコードはWindows 8で実行できますが、エクスペリエンスは大きくない場合があります。まず、システムが最新のパッチに更新されていることを確認してから、システムアーキテクチャに一致するVSコードインストールパッケージをダウンロードして、プロンプトとしてインストールします。インストール後、一部の拡張機能はWindows 8と互換性があり、代替拡張機能を探すか、仮想マシンで新しいWindowsシステムを使用する必要があることに注意してください。必要な拡張機能をインストールして、適切に動作するかどうかを確認します。 Windows 8ではVSコードは実行可能ですが、開発エクスペリエンスとセキュリティを向上させるために、新しいWindowsシステムにアップグレードすることをお勧めします。

PHPとPython:彼らの歴史を深く掘り下げます PHPとPython:彼らの歴史を深く掘り下げます Apr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

ターミナルVSCODEでプログラムを実行する方法 ターミナルVSCODEでプログラムを実行する方法 Apr 15, 2025 pm 06:42 PM

VSコードでは、次の手順を通じて端末でプログラムを実行できます。コードを準備し、統合端子を開き、コードディレクトリが端末作業ディレクトリと一致していることを確認します。プログラミング言語(pythonのpython your_file_name.pyなど)に従って実行コマンドを選択して、それが正常に実行されるかどうかを確認し、エラーを解決します。デバッガーを使用して、デバッグ効率を向上させます。

VSCODE拡張機能は悪意がありますか? VSCODE拡張機能は悪意がありますか? Apr 15, 2025 pm 07:57 PM

VSコード拡張機能は、悪意のあるコードの隠れ、脆弱性の活用、合法的な拡張機能としての自慰行為など、悪意のあるリスクを引き起こします。悪意のある拡張機能を識別する方法には、パブリッシャーのチェック、コメントの読み取り、コードのチェック、およびインストールに注意してください。セキュリティ対策には、セキュリティ認識、良好な習慣、定期的な更新、ウイルス対策ソフトウェアも含まれます。

See all articles