Học Lập Trình Python: Trích Xuất Văn Bản Từ PDF và Xử Lý Ngôn Ngữ Tự Nhiên
Python là một trong những ngôn ngữ lập trình phổ biến nhất hiện nay, đặc biệt mạnh mẽ trong xử lý dữ liệu và trí tuệ nhân tạo. Trong bài viết này, chúng ta sẽ khám phá cách trích xuất văn bản từ tệp PDF và phân tích ngôn ngữ tự nhiên bằng Python, sử dụng pdfplumber
và spaCy
.
1. Trích Xuất Văn Bản Từ PDF Bằng Python
Khi làm việc với dữ liệu văn bản, đôi khi bạn cần trích xuất nội dung từ các tệp PDF để phân tích hoặc xử lý tiếp. Thư viện pdfplumber
giúp chúng ta đọc và lấy văn bản từ từng trang của tệp PDF một cách dễ dàng.
Cài đặt thư viện:
Trước tiên, bạn cần cài đặt các thư viện cần thiết bằng lệnh sau:
pip install pdfplumber spacy
python -m spacy download en_core_web_sm
Mã nguồn trích xuất văn bản từ PDF:
import pdfplumber
def extract_text_from_pdf(pdf_path):
text = ""
with pdfplumber.open(pdf_path) as pdf:
for page in pdf.pages:
text += page.extract_text() + "\n"
return text
# Đường dẫn đến tệp PDF
pdf_path = "sample.pdf"
# Trích xuất văn bản
text = extract_text_from_pdf(pdf_path)
print("Văn bản trích xuất từ PDF:")
print(text)
🔹 Giải thích:
pdfplumber.open(pdf_path)
: Mở tệp PDF.page.extract_text()
: Lấy văn bản từ từng trang.- Vòng lặp giúp duyệt qua tất cả các trang và nối văn bản lại.
2. Phân Tích Văn Bản Với SpaCy
Sau khi trích xuất văn bản, chúng ta có thể xử lý ngôn ngữ tự nhiên (NLP) để tìm các thực thể quan trọng như tên, địa điểm, tổ chức,… bằng thư viện spaCy
.
Mã nguồn phân tích văn bản:
import spacy
def analyze_text(text):
nlp = spacy.load("en_core_web_sm")
doc = nlp(text)
# Trích xuất thực thể được đặt tên (Named Entities)
entities = [(ent.text, ent.label_) for ent in doc.ents]
# Tách câu trong văn bản
sentences = [sent.text for sent in doc.sents]
return entities, sentences
# Phân tích văn bản trích xuất
entities, sentences = analyze_text(text)
print("\nThực thể được đặt tên (Named Entities):")
for entity in entities:
print(entity)
print("\nCác câu trong văn bản:")
for sentence in sentences:
print(sentence)
🔹 Giải thích:
spacy.load("en_core_web_sm")
: Tải mô hình NLP tiếng Anh.doc.ents
: Trích xuất thực thể được đặt tên (tên người, tổ chức, địa điểm,…).doc.sents
: Tách văn bản thành các câu riêng biệt.
3. Ứng Dụng Thực Tế
✅ Trích xuất dữ liệu từ báo cáo PDF để xử lý dữ liệu. ✅ Tìm kiếm thông tin quan trọng trong tài liệu như số điện thoại, địa chỉ, tên tổ chức. ✅ Hỗ trợ chatbot AI trong phân tích và hiểu văn bản.
Kết Luận
Python cung cấp nhiều công cụ mạnh mẽ như pdfplumber
và spaCy
để làm việc với văn bản. Việc kết hợp cả hai thư viện này giúp bạn tự động hóa việc trích xuất và xử lý dữ liệu từ PDF, tiết kiệm thời gian và nâng cao hiệu quả làm việc.
Hãy thực hành mỗi ngày để phát triển kỹ năng lập trình Python, đặc biệt là trong xử lý dữ liệu và trí tuệ nhân tạo! 🚀
- Học lập trình Python
- Trích xuất văn bản từ PDF bằng Python
- Xử lý ngôn ngữ tự nhiên với Python
- Phân tích dữ liệu PDF bằng Python
- Tự động hóa với Python