1. Mətn çıxarılması
Demək olar ki, hər birimiz PDF sənədindən məlumat lazım olan bir vəziyyətlə qarşılaşmışıq, istər mühasibat hesabatı, araşdırma, ya da sevimli elektron kitabımız olsun. Amma məlumatları əl ilə deyil, avtomatik çıxarmaq lazım olduqda nə etməli? Bu zaman Python və onun inanılmaz kitabxanası PyPDF2 köməyə gəlir.
Mətn çıxararkən əsas addımlar
PDF-dən mətni uğurla çıxarmaq üçün bir neçə sadə addımı izləmək lazımdır:
- PDF faylını oxumaq.
- PDF məzmununun parsinqi.
- Gələcək analiz üçün mətnin çıxarılması.
2. PDF fayllarını oxumaq və parsinq etmək
Gəlin baxaq, Python-da PDF sənədini necə açıb oxumaq olar. İlk növbədə, PyPDF2 kitabxanasını import etməliyik:
import PyPDF2
İndi isə PDF sənədini açaq. Təsəvvür edək ki, bizdə sample.pdf
adlı bir fayl var və biz onu analiz etmək istəyirik. Gəlin onu yükləyək və neçə səhifədən ibarət olduğunu öyrənək.
PDF faylını yükləmək
# PDF faylını açmaq
with open("sample.pdf", "rb") as pdf_file:
# PDF Reader obyektini yaradırıq
pdf_reader = PyPDF2.PdfReader(pdf_file)
# Ümumi səhifə sayını əldə edirik
num_pages = len(pdf_reader.pages)
print(f"Sənədin ümumi səhifə sayı: {num_pages}")
Mətni çıxarmaq
İndi, PDF sənədini açdıqdan sonra gəlin ondan mətn çıxaraq. Bunun üçün aşağıdakıları etməliyik:
PdfReader
PDF faylını oxumaq üçün açır.for
dövrü istifadə edirik, bütün səhifələrdən keçmək vəextract_text()
metodunu çağırmaq üçün.- Çıxarılmış mətn
text
dəyişənində saxlanılır və onu ya göstərə, ya da emal edə bilərsiniz.
Bu prosesin nümunəsi belə görünür:
import PyPDF2
# PDF faylını açmaq
with open("sample.pdf", "rb") as pdf_file:
pdf_reader = PyPDF2.PdfReader(pdf_file)
text = ""
# Hər səhifədən mətn çıxarmaq
for page_num in range(len(pdf_reader.pages)):
page = pdf_reader.pages[page_num]
text += page.extract_text() + "\n"
print(text)
Müəyyən səhifələrdən mətn çıxarmaq
Bəs, mətn yalnız müəyyən bir səhifədən lazımdırsa, necə? Məsələn, təsəvvür edək ki, yalnız üçüncü səhifədən mətn çıxarmaq istəyirik. Bu belə edilir:
import PyPDF2
with open("sample.pdf", "rb") as pdf_file:
pdf_reader = PyPDF2.PdfReader(pdf_file)
page = pdf_reader.pages[2] # Üçüncü səhifədən mətn çıxarırıq (indeks 2)
text = page.extract_text()
print(text)
Bu nümunə yalnız üçüncü səhifədən mətn çıxarmağa imkan verir ki, bu da sənəd çox səhifəlik olduqda və emalı məhdudlaşdırmaq istədiyiniz zaman faydalı ola bilər. PyPDF2 səhifə nömrələməsini 0-dan başlayır.
3. PDF-dən mətnin işlənməsinin avtomatlaşdırılması
PDF-dən mətn çıxarıldıqdan sonra onu analiz edib dərin məlumat analizi üçün işləyə bilərsən. PyPDF2 bu prosesi avtomatlaşdırmağa imkan verir, bu da xüsusilə böyük həcmli sənədlərlə işləyərkən faydalıdır.
Mətni çıxarıb ayrı faylda saxlamaq
Sonraki analizlər üçün mətni tekst faylında saxlamaq rahatdır. Bu, onun daha da asan işlənməsini təmin edəcək.
import PyPDF2
# PDF faylını açmaq
with open("sample.pdf", "rb") as pdf_file:
pdf_reader = PyPDF2.PdfReader(pdf_file)
text = ""
for page_num in range(len(pdf_reader.pages)):
page = pdf_reader.pages[page_num]
text += page.extract_text() + "\n"
# Çıxarılan mətnin faylda saxlanması
with open("extracted_text.txt", "w", encoding="utf-8") as text_file:
text_file.write(text)
Çıxarılan mətnin işlənməsi və analizi
Mətni çıxardıqdan sonra Python vasitəsilə analiz etmək olar. Bunun üçün çox vaxt re
(regulyar ifadələr), nltk
(Natural Language Toolkit) və ya pandas
kimi kitabxanalardan istifadə olunur.
Sözlərin sayını hesablamaq və açar ifadələri tapmaq
Tutaq ki, bizdə extracted_text.txt
adlı tekst faylı var və sənəddə müəyyən sözləri və ifadələri hesablamaq istəyirik.
import re
# Çıxarılan mətni açmaq
with open("extracted_text.txt", "r", encoding="utf-8") as text_file:
text = text_file.read()
# Açar sözlərin axtarışı və sayının hesablanması
keywords = ["hesabat", "məlumatlar", "analiz"]
keyword_counts = {keyword: len(re.findall(keyword, text, re.IGNORECASE)) for keyword in keywords}
print("Açar sözlərin tezliyi:", keyword_counts)
Burada:
- Saxlanılan mətni açırıq.
- Regulyar ifadələrdən istifadə edərək açar sözləri (registrdən asılı olmayaraq) sayırıq.
- Hər bir açar sözün neçə dəfə qeyd olunduğunu alırıq.
4. PyPDF2 üstünlükləri və məhdudiyyətləri
Üstünlükləri:
- Mətni və səhifələri sadə şəkildə çıxarmaq və işlətmək üçün rahatlıq.
- Əsas əməliyyatların dəstəyi: mətni oxumaq, sənədləri birləşdirmək və bölmək.
- Python-un digər kitabxanaları ilə asan inteqrasiya.
Məhdudiyyətləri:
- PyPDF2, çox səviyyəli formatlar, cədvəllər və şəkillər olan mürəkkəb PDF-lərdən mətni həmişə düzgün çıxarmır.
- Şəkil və cədvəllərin birbaşa çıxarılması dəstəklənmir.
- Şifrlənmiş və ya parol ilə qorunan sənədlərin işlənməsi dəstəklənmir (amma parol məlumdursa, qorumanı çıxarmağa cəhd etmək olar).
GO TO FULL VERSION