Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk mengekstrak data teks berstruktur daripada fail PDF dengan Python untuk NLP?

Bagaimana untuk mengekstrak data teks berstruktur daripada fail PDF dengan Python untuk NLP?

WBOY
Lepaskan: 2023-09-27 11:17:02
asal
1566 orang telah melayarinya

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

Bagaimana untuk mengekstrak data teks berstruktur daripada fail PDF menggunakan Python untuk NLP?

Pengenalan:
Natural language processing (NLP) adalah salah satu cabang penting dalam bidang kecerdasan buatan Matlamatnya adalah untuk membolehkan komputer memahami dan memproses bahasa manusia. Data teks ialah sumber teras NLP, jadi cara mengekstrak data teks berstruktur daripada pelbagai sumber telah menjadi tugas asas NLP. Fail PDF ialah format dokumen biasa Artikel ini akan memperkenalkan cara menggunakan Python untuk NLP dan mengekstrak data teks berstruktur daripada fail PDF.

Langkah 1: Pasang perpustakaan bergantung
Pertama, kita perlu memasang beberapa perpustakaan Python yang diperlukan untuk memproses fail PDF. Antaranya, yang paling penting ialah perpustakaan PyPDF2, yang boleh membantu kami membaca dan menghuraikan fail PDF. Pustaka PyPDF2 boleh dipasang dengan arahan berikut:

pip install PyPDF2
Salin selepas log masuk

Langkah 2: Baca fail PDF
Sebelum kita mula, kita perlu menyediakan sampel fail PDF untuk demonstrasi. Katakan fail PDF sampel kami dinamakan "sample.pdf". Seterusnya, kami akan menggunakan perpustakaan PyPDF2 untuk membaca fail PDF seperti yang ditunjukkan di bawah:

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()
Salin selepas log masuk

Dalam kod di atas, kami mula-mula membuka fail PDF dan kemudian mencipta pembaca PDF menggunakan perpustakaan PyPDF2. Selepas itu, kami mendapat nombor halaman fail PDF dan menggunakan gelung untuk mengekstrak kandungan teks halaman demi halaman dan menyimpan data teks yang diekstrak dalam senarai. Akhir sekali, ingat untuk menutup fail PDF.

Langkah 3: Bersihkan data teks
Data teks yang diekstrak daripada fail PDF selalunya mengandungi sejumlah besar aksara kosong dan aksara khas lain yang tidak berkaitan. Oleh itu, kita perlu membersihkan dan memproses data teks sebelum meneruskan ke langkah seterusnya. Berikut ialah contoh fungsi pembersihan teks ringkas:

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)
Salin selepas log masuk

Dalam kod di atas, kami mula-mula menggunakan ungkapan biasa untuk mengalih keluar aksara ruang kosong tambahan dan kemudian mengalih keluar aksara khas. Sudah tentu, kaedah pembersihan teks boleh dilaraskan mengikut keadaan sebenar.

Langkah 4: Pemprosesan selanjutnya data teks
Dalam langkah di atas, kami telah mengekstrak data teks berstruktur daripada fail PDF dan melakukan pembersihan mudah. Walau bagaimanapun, bergantung pada keperluan aplikasi khusus, kami mungkin perlu melakukan pemprosesan teks selanjutnya. Di sini, kami akan memperkenalkan secara ringkas dua tugas pemprosesan teks biasa: statistik kekerapan perkataan dan pengekstrakan kata kunci.

Statistik kekerapan perkataan:
Statistik kekerapan perkataan ialah salah satu tugas biasa dalam NLP, dan tujuannya adalah untuk mengira bilangan kali setiap perkataan muncul dalam teks. Berikut ialah contoh mudah statistik kekerapan perkataan:

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))
Salin selepas log masuk

Pengestrakan kata kunci:
Pengestrakan kata kunci ialah tugas penting dalam NLP, dan tujuannya adalah untuk mengekstrak kata kunci yang paling mewakili daripada data teks. Dalam Python, kita boleh menggunakan perpustakaan textrank4zh untuk pengekstrakan kata kunci Contohnya adalah seperti berikut:

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)
Salin selepas log masuk

Dalam kod di atas, kita mula-mula mencipta objek TextRank4Keyword, dan kemudian memanggil kaedah analisis() untuk mengekstrak kata kunci. Selepas itu, kita boleh mendapatkan bilangan kata kunci yang ditentukan melalui kaedah get_keywords(), lalai ialah 10 kata kunci pertama.

Kesimpulan:
Artikel ini menerangkan cara menggunakan Python untuk pemprosesan bahasa semula jadi (NLP) dan mengekstrak data teks berstruktur daripada fail PDF. Kami menggunakan perpustakaan PyPDF2 untuk membaca dan menghuraikan fail PDF, dan kemudian melakukan pembersihan dan prapemprosesan teks ringkas. Akhir sekali, kami juga memperkenalkan cara melaksanakan statistik kekerapan perkataan dan pengekstrakan kata kunci. Saya percaya bahawa melalui pengenalan artikel ini, pembaca boleh menguasai cara mengekstrak data teks berstruktur daripada fail PDF dan seterusnya mengaplikasikannya pada tugas pemprosesan bahasa semula jadi.

Atas ialah kandungan terperinci Bagaimana untuk mengekstrak data teks berstruktur daripada fail PDF dengan Python untuk NLP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan