ホームページ >バックエンド開発 >Python チュートリアル >NLP 用の Python を使用して PDF ファイルから構造化テキスト データを抽出するにはどうすればよいですか?

NLP 用の Python を使用して PDF ファイルから構造化テキスト データを抽出するにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-09-27 11:17:021584ブラウズ

如何用Python for NLP从PDF文件中提取结构化文本数据?

Python for NLP を使用して PDF ファイルから構造化テキスト データを抽出するにはどうすればよいですか?

はじめに:
自然言語処理 (NLP) は、人工知能分野の重要な分野の 1 つであり、その目標は、コンピューターが人間の言語を理解して処理できるようにすることです。テキスト データは NLP の中核リソースであるため、さまざまなソースから構造化テキスト データを抽出する方法が NLP の基本的なタスクになります。 PDF ファイルは一般的なドキュメント形式です。この記事では、NLP に Python を使用し、PDF ファイルから構造化テキスト データを抽出する方法を紹介します。

ステップ 1: 依存ライブラリをインストールする
まず、PDF ファイルを処理するために必要な Python ライブラリをいくつかインストールする必要があります。その中で最も重要なのは PyPDF2 ライブラリで、PDF ファイルの読み取りと解析に役立ちます。 PyPDF2 ライブラリは、次のコマンドを使用してインストールできます。

pip install PyPDF2

ステップ 2: PDF ファイルを読み取る
始める前に、デモ用のサンプル PDF ファイルを準備する必要があります。サンプル PDF ファイルの名前が「sample.pdf」であるとします。次に、次のように PyPDF2 ライブラリを使用して PDF ファイルを読み取ります。

import PyPDF2

filename = "sample.pdf"

# 打开PDF文件
pdf_file = open(filename, 'rb')

# 创建一个PDF阅读器
pdf_reader = PyPDF2.PdfReader(pdf_file)

# 获取PDF文件中的页数
num_pages = pdf_reader.numPages

# 逐页提取文本
text_data = []
for page in range(num_pages):
    page_obj = pdf_reader.getPage(page)
    text_data.append(page_obj.extractText())

# 关闭PDF文件
pdf_file.close()

上記のコードでは、まず PDF ファイルを開いてから、PyPDF2 ライブラリを使用して PDF リーダーを作成します。その後、PDF ファイルのページ番号を取得し、ループを使用してテキスト コンテンツをページごとに抽出し、抽出されたテキスト データをリストに保存します。最後に、忘れずに PDF ファイルを閉じてください。

ステップ 3: テキスト データをクリーンアップする
PDF ファイルから抽出されたテキスト データには、多くの場合、多数の空白文字やその他の無関係な特殊文字が含まれています。したがって、次のステップに進む前に、テキスト データをクリーンアップして前処理する必要があります。単純なテキスト クリーニング関数の例を次に示します。

import re

def clean_text(text):
    # 去除多余的空白字符
    text = re.sub('s+', ' ', text)
    
    # 去除特殊字符
    text = re.sub('[^A-Za-z0-9]+', ' ', text)
    
    return text
    
# 清理文本数据
cleaned_text_data = []
for text in text_data:
    cleaned_text = clean_text(text)
    cleaned_text_data.append(cleaned_text)

上記のコードでは、まず正規表現を使用して余分な空白文字を削除し、次に特殊文字を削除します。もちろん、テキストのクリーニング方法は実際の状況に応じて調整できます。

ステップ 4: テキスト データのさらなる処理
上記のステップでは、PDF ファイルから構造化テキスト データを抽出し、簡単なクリーニングを実行しました。ただし、特定のアプリケーション要件によっては、さらにテキスト処理を実行する必要がある場合があります。ここでは、単語頻度統計とキーワード抽出という 2 つの一般的なテキスト処理タスクを簡単に紹介します。

単語頻度統計:
単語頻度統計は、NLP の一般的なタスクの 1 つであり、その目的は、テキスト内に各単語が出現する回数をカウントすることです。以下は単語頻度統計の簡単な例です:

from collections import Counter

# 将文本数据拼接为一个字符串
combined_text = ' '.join(cleaned_text_data)

# 分词
words = combined_text.split()

# 统计词频
word_freq = Counter(words)

# 打印出现频率最高的前10个词语
print(word_freq.most_common(10))

キーワード抽出:
キーワード抽出は NLP における重要なタスクであり、その目的はテキスト データから最も代表的なキーワードを抽出することです。 Python では、キーワード抽出に textrank4zh ライブラリを使用できます。例は次のとおりです:

from textrank4zh import TextRank4Keyword

# 创建TextRank4Keyword对象
tr4w = TextRank4Keyword()

# 提取关键词
tr4w.analyze(text=combined_text, lower=True, window=2)

# 打印关键词
for item in tr4w.get_keywords(10, word_min_len=2):
    print(item.word)

上記のコードでは、まず TextRank4Keyword オブジェクトを作成し、次に、analyze() メソッドを呼び出してキーワードを抽出します。その後、get_keywords() メソッドを通じて指定された数のキーワードを取得できます。デフォルトは最初の 10 個のキーワードです。

結論:
この記事では、自然言語処理 (NLP) に Python を使用し、PDF ファイルから構造化テキスト データを抽出する方法を紹介します。 PyPDF2 ライブラリを使用して PDF ファイルを読み取り、解析し、簡単なテキストのクリーニングと前処理を実行しました。最後に、単語頻度統計とキーワード抽出を実行する方法についても紹介しました。この記事の導入により、読者は PDF ファイルから構造化テキスト データを抽出する方法を習得し、それを自然言語処理タスクにさらに応用できるようになると思います。

以上がNLP 用の Python を使用して PDF ファイルから構造化テキスト データを抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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