CodeGym /Kurslar /Python SELF AZ /PDF sənədlərdən mətn çıxarılması və sonrakı məlumatların ...

PDF sənədlərdən mətn çıxarılması və sonrakı məlumatların təhlili

Python SELF AZ
Səviyyə , Dərs
Mövcuddur

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:

  1. PDF faylını oxumaq.
  2. PDF məzmununun parsinqi.
  3. 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:

Python

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

Python

# 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:

Python

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:

Python

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.

Python

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.

Python

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).
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION