NLP 用 Python: 多数のハイパーリンクを含む PDF テキストを処理するにはどうすればよいですか?
はじめに:
自然言語処理 (NLP) の分野では、PDF テキストの処理は一般的なタスクの 1 つです。ただし、PDF テキストに多数のハイパーリンクが含まれている場合、処理に特定の課題が生じます。この記事では、Python を使用して多数のハイパーリンクを含む PDF テキストを処理する方法と、具体的なコード例を紹介します。
依存ライブラリのインストール
まず、2 つの依存ライブラリ、PyPDF2 と re をインストールする必要があります。 PyPDF2 は PDF ファイルからテキストを抽出するために使用され、re は正規表現操作に使用されます。次のコマンドを使用して、両方のライブラリをインストールできます。
pip install PyPDF2 pip install re
テキストとリンクの抽出
次に、テキストとリンクを抽出するコードを記述する必要があります。まず、必要なライブラリと関数をインポートします:
import PyPDF2 import re
次に、テキストとリンクを抽出する関数を定義します:
def extract_text_and_links(pdf_file): # 打开PDF文件 with open(pdf_file, 'rb') as file: pdf = PyPDF2.PdfFileReader(file) # 提取文本和链接 text = '' links = [] for page_num in range(pdf.numPages): page = pdf.getPage(page_num) text += page.extract_text() annotations = page['/Annots'] if annotations: for annotation in annotations: link = annotation.getObject() if link['/Subtype'] == '/Link': url = link['/A']['/URI'] links.append(url) return text, links
Clean Andリンクの処理
テキストとリンクを抽出した後、リンクのクリーニングと処理が必要になる場合があります。これには、重複リンクの削除、無効なリンクの除外などが含まれます。以下は、リンクをクリーンアップして処理するサンプル関数です。
def clean_and_process_links(links): # 去除重复链接 unique_links = list(set(links)) # 过滤无效链接 valid_links = [] for link in unique_links: # 添加你的链接过滤条件 if re.match(r'^(http|https)://', link): valid_links.append(link) return valid_links
サンプル コード
以下は、上記の関数を使用して大量のリンクを処理する方法を示す完全なサンプル コードです。 PDF テキスト:
import PyPDF2 import re def extract_text_and_links(pdf_file): with open(pdf_file, 'rb') as file: pdf = PyPDF2.PdfFileReader(file) text = '' links = [] for page_num in range(pdf.numPages): page = pdf.getPage(page_num) text += page.extract_text() annotations = page['/Annots'] if annotations: for annotation in annotations: link = annotation.getObject() if link['/Subtype'] == '/Link': url = link['/A']['/URI'] links.append(url) return text, links def clean_and_process_links(links): unique_links = list(set(links)) valid_links = [] for link in unique_links: if re.match(r'^(http|https)://', link): valid_links.append(link) return valid_links # 测试代码 pdf_file = 'example.pdf' text, links = extract_text_and_links(pdf_file) valid_links = clean_and_process_links(links) print('提取到的文本:') print(text) print('提取到的链接:') for link in valid_links: print(link)
概要:
PyPDF2 と re ライブラリを使用すると、多数のハイパーリンクを含む PDF テキストを簡単に処理できます。まずテキストとリンクを抽出し、その後リンクをクリーンアップして処理します。これにより、多数のハイパーリンクを含む PDF テキストを分析および処理することが容易になります。
上記は、Python を使用して、多数のハイパーリンクとコード例を含む PDF テキストを処理する方法です。お役に立てれば!
以上がNLP 用 Python: 多数のハイパーリンクを含む PDF テキストを処理するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。