Python untuk NLP: Bagaimana untuk menangani teks PDF yang mengandungi sejumlah besar hiperpautan?
Pengenalan:
Dalam bidang pemprosesan bahasa semula jadi (NLP), memproses teks PDF adalah salah satu tugas biasa. Walau bagaimanapun, apabila teks PDF mengandungi sejumlah besar hiperpautan, ia akan membawa cabaran pemprosesan tertentu. Artikel ini akan memperkenalkan cara menggunakan Python untuk memproses teks PDF yang mengandungi sejumlah besar hiperpautan, dan memberikan contoh kod khusus.
Pasang perpustakaan bergantung
Pertama, kita perlu memasang dua perpustakaan bergantung: PyPDF2 dan semula. PyPDF2 digunakan untuk mengekstrak teks daripada fail PDF, semula digunakan untuk operasi ungkapan biasa. Anda boleh memasang kedua-dua perpustakaan menggunakan arahan berikut:
pip install PyPDF2 pip install re
Ekstrak teks dan pautan
Seterusnya, kita perlu menulis kod untuk mengekstrak teks dan pautan. Pertama, kami mengimport perpustakaan dan fungsi yang diperlukan:
import PyPDF2 import re
Kemudian, kami mentakrifkan fungsi untuk mengekstrak teks dan pautan:
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
Bersihkan dan memproses pautan
Selepas mengekstrak teks dan pautan, kami mungkin perlu melakukan pembersihan dan pemprosesan. Ini termasuk mengalih keluar pautan pendua, menapis pautan tidak sah, dsb. Berikut ialah contoh fungsi untuk membersihkan dan memproses pautan:
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
Kod sampel
Berikut ialah contoh kod lengkap yang menunjukkan cara menggunakan fungsi di atas untuk memproses teks PDF yang mengandungi sejumlah besar hiperpautan:
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)
Ringkasan:
Dengan menggunakan PyPDF2 dan perpustakaan semula, kami boleh memproses teks PDF yang mengandungi sejumlah besar hiperpautan dengan mudah. Kami mula-mula mengekstrak teks dan pautan, dan kemudian pautan boleh dibersihkan dan diproses. Ini memudahkan analisis dan pemprosesan teks PDF kami yang mengandungi sejumlah besar hiperpautan.
Di atas ialah cara menggunakan Python untuk memproses teks PDF yang mengandungi sejumlah besar hiperpautan dan contoh kod. Harap ini membantu!
Atas ialah kandungan terperinci Python untuk NLP: Bagaimana untuk mengendalikan teks PDF yang mengandungi sejumlah besar hiperpautan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!