Python untuk NLP: Bagaimana untuk memproses teks PDF yang mengandungi kata kunci tertentu?
Abstrak: Pemprosesan bahasa semulajadi (NLP) adalah bidang penyelidikan penting dalam bidang kecerdasan buatan. Artikel ini akan menggunakan bahasa Python untuk memperkenalkan cara memproses teks PDF yang mengandungi kata kunci tertentu. Artikel akan menyertakan contoh kod untuk mengekstrak teks daripada PDF, menggunakan ungkapan biasa untuk pemadanan kata kunci dan cara menggunakan perpustakaan Python untuk pemprosesan PDF.
Pengenalan:
PDF (Portable Document Format) ialah format fail elektronik biasa yang digunakan secara meluas untuk membaca, berkongsi dan mencetak pelbagai dokumen. Dalam NLP, memproses teks PDF adalah tugas biasa, terutamanya mengekstrak maklumat penting daripada sejumlah besar dokumen PDF. Artikel ini akan memperkenalkan cara menggunakan Python untuk memproses teks PDF dan cara menghuraikan data teks dalam dokumen PDF dan melakukan pemadanan kata kunci.
Langkah 1: Pasang perpustakaan bergantung
Sebelum bermula, pastikan anda telah memasang perpustakaan bergantung yang diperlukan. Dalam contoh kod artikel ini, kami akan menggunakan perpustakaan Python berikut:
Perpustakaan ini boleh dipasang menggunakan arahan berikut:
pip install PyPDF2
Langkah 2: Ekstrak teks PDF
Pertama, kita perlu menggunakan perpustakaan PyPDF2 untuk mengekstrak teks daripada dokumen PDF. Di bawah ialah contoh kod yang mengekstrak teks daripada fail PDF bernama sample_pdf.pdf
. sample_pdf.pdf
的PDF文件中提取文本。
import PyPDF2 def extract_text_from_pdf(pdf_filename): pdf_file = open(pdf_filename, 'rb') pdf_reader = PyPDF2.PdfFileReader(pdf_file) num_pages = pdf_reader.numPages text = '' for page in range(num_pages): page_obj = pdf_reader.getPage(page) text += page_obj.extractText() pdf_file.close() return text
对于上述代码示例,首先我们打开PDF文件并创建一个PdfFileReader
对象。然后,我们使用getNumPages
方法获取PDF的总页数,并创建一个空字符串text
来存储提取的文本。接下来,我们使用getPage
方法来提取每一页的文本,并将其添加到text
字符串中。最后,我们关闭PDF文件并返回提取的文本。
步骤3:使用正则表达式匹配关键词
一旦我们提取了PDF文本,我们可以使用Python的正则表达式模块(re)来匹配关键词。下面是一个示例代码,该代码使用正则表达式匹配文本中包含特定关键词的部分。
import re def match_keywords(text, keywords): keyword_matches = [] for keyword in keywords: matches = re.findall(r'' + keyword + r'', text, flags=re.IGNORECASE) keyword_matches.append((keyword, len(matches))) return keyword_matches
在上述代码示例中,我们使用re.findall
函数来查找文本中所有匹配给定关键词的实例。使用表示单词的边界,
flags=re.IGNORECASE
表示忽略大小写。我们将找到的匹配结果存储在一个列表中,并返回匹配到的关键词及其对应的匹配次数。
步骤4:应用到PDF文本处理
现在我们已经定义了从PDF中提取文本和匹配关键词的函数,我们可以将它们应用到我们的PDF文本处理任务中。下面是一个示例代码,该代码演示了如何从一个名为sample_pdf.pdf
的PDF文件中提取文本,并匹配包含特定关键词的部分,如NLP
和Python
。
pdf_filename = 'sample_pdf.pdf' keywords = ['NLP', 'Python'] text = extract_text_from_pdf(pdf_filename) matches = match_keywords(text, keywords) for keyword, count in matches: print(f'关键词 "{keyword}" 在PDF中出现了 {count} 次.')
对于上述代码示例,我们首先指定要处理的PDF文件的文件名,并定义了一个包含特定关键词的关键词列表。然后,我们使用extract_text_from_pdf
函数从PDF中提取文本,并将结果存储在一个名为text
的变量中。接下来,我们使用match_keywords
函数匹配关键词,并将结果存储在一个名为matches
的变量中。最后,我们遍历matches
rrreee
PdfFileReader
. Kemudian, kami menggunakan kaedah getNumPages
untuk mendapatkan jumlah bilangan halaman PDF dan mencipta rentetan kosong text
untuk menyimpan teks yang diekstrak. Seterusnya, kami menggunakan kaedah getPage
untuk mengekstrak teks setiap halaman dan menambahkannya pada rentetan text
. Akhir sekali, kami menutup fail PDF dan mengembalikan teks yang diekstrak.
Langkah 3: Padankan kata kunci menggunakan ungkapan biasa
rrreee
Dalam contoh kod di atas, kami menggunakan fungsire.findall
untuk mencari semua kejadian dalam teks yang sepadan dengan kata kunci yang diberikan. Gunakan
untuk menunjukkan sempadan perkataan dan flags=re.IGNORECASE
untuk mengabaikan huruf besar. Kami menyimpan hasil padanan yang ditemui dalam senarai dan mengembalikan kata kunci yang dipadankan dan bilangan padanan yang sepadan. sample_pdf.pdf
dan memadankan bahagian yang mengandungi kata kunci tertentu, seperti NLP
dan Python kod>. <li>rrreee</li>Untuk contoh kod di atas, kami terlebih dahulu menentukan nama fail fail PDF untuk diproses dan menentukan senarai kata kunci yang mengandungi kata kunci tertentu. Kami kemudian menggunakan fungsi <code>extract_text_from_pdf
untuk mengekstrak teks daripada PDF dan menyimpan hasilnya dalam pembolehubah yang dipanggil text
. Seterusnya, kami memadankan kata kunci menggunakan fungsi match_keywords
dan menyimpan hasilnya dalam pembolehubah yang dipanggil match
. Akhir sekali, kami mengulangi senarai padanan
dan mencetak setiap kata kunci dan bilangan kejadiannya dalam teks PDF.
Atas ialah kandungan terperinci Python untuk NLP: Bagaimana untuk memproses teks PDF yang mengandungi kata kunci tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!