Portable Document Format (PDF)-filer brukes ofte til å dele dokumenter elektronisk. Enkeltpersoner og bedrifter bruker PDF-filer til å dele informasjon på samme måte. Ofte må vi trekke ut noe informasjon fra PDF-filene for videre behandling. Å trekke ut tekst fra en PDF-fil kan imidlertid være utfordrende, spesielt hvis dokumentet inneholder kompleks formatering og layout. Heldigvis er det flere måter å gjøre dette på.
Her vil vi gi den mest brukte metoden for å trekke ut tekst fra PDF-filer ved hjelp av Python. Python består av flere biblioteker som muliggjør effektiv PDF-tekstutvinning.
Artikkelen utforsker noen populære Python-biblioteker for å trekke ut tekst fra PDF-filer og trinn-for-trinn-tekstutvinningsprosessen fra PDF-er.
Python-biblioteker for PDF-behandling
Python har flere godt integrerte biblioteker som effektivt håndterer ustrukturerte datakilder som PDF-filer. Her er en liste over noen Python-biblioteker for PDF-behandling.
- PyPDF2: Det er et Python-bibliotek for PDF som kan hjelpe med å dele, slå sammen, beskjære og transformere sider med PDF-filer. pyPDF2 lar deg også trekke ut tekst fra PDF-filer.
- PyMuPDF: PyMuPDF er en Python-innpakning for MuPDF C-biblioteket. Den lar deg lese, skrive og manipulere PDF-filer i Python. Du kan også få tilgang til PDF-dokumentets metadata, trekke ut tekst og bilder og dekryptere et PDF-dokument med PyMuPDF.
- ReportLab: Det er et åpen kildekode Python-bibliotek som kan brukes til å lage og manipulere PDF-filer. Det gir et høyt nivå API for å lage PDF-dokumenter fra bunnen av og støtter innebygging av bilder og fonter.
- Pdf2dox: Det er et Python-bibliotek for å trekke ut data ved å bruke PyMuPDF-biblioteket fra PDF-filer.
Konverter kompleks PDF til tekstformat umiddelbart ved hjelp av PDF til tekst-konvertering. Prøv det gratis.
Sette opp utviklingsmiljøet
Før vi diskuterer trinnene for tekstutvinning fra PDF, er det viktig å sette opp et utviklingsmiljø og installere de nødvendige Python-bibliotekene for å trekke ut tekst.
- Installer Python: Hvis du ikke allerede har gjort det, må du installere Python på systemet ditt. Du kan laste ned den nyeste versjonen av Python fra her..
- Installer pip: For å sjekke om du har pip installert i Python, kjør
py -m ensurepip --default-pip
Hvis pip ikke kjører automatisk, last det ned her. og kjør følgende kode for å installere eller oppgradere
pip.python get-pip.py
- Installer det nødvendige biblioteket: Installer et hvilket som helst Python-bibliotek for å jobbe med PDF-filer. Her vil vi installere det ofte brukte biblioteket, PyPDF2. For å installere den, kjør følgende kommando.
pip install PyPDF2
Når du har installert Python og de nødvendige bibliotekene, er utviklingsmiljøet ditt satt. Du kan bruke hvilken som helst tekstredigerer eller IDE for å skrive Python-kode, for eksempel Visual Studio Code, PyCharm eller Sublime Text.
Vi vil bruke PyPDF2 Python-biblioteket til å pakke ut filer.
Skriv inn PDF:
# importerer nødvendige moduler |
Utgang:
La oss nå forstå hver kode separat.
- reader = PdfReader('nanonets.pdf')
Fra PyPDF2-modulen opprettet vi et objekt av PDFReader-klassen. Det vil ta det nødvendige posisjonsargumentet for banen til pdf-filen.
- print(len(leser.sider))
Egenskapen pages gir en liste over sideobjekter. Her kan vi bruke den innebygde len() Python-funksjonen for å få antall sider i pdf-filen.
- side = leser.sider[0]
Vi kan også få en spesifikk pdf-filside ved å trykke på sideindeksen. Listeindeksering starter fra 0 i Python, så denne kommandoen vil gi oss filens første side.
- tekst = side.ekstrakt_tekst()
print (tekst)
Vi vil bruke denne kommandoen til å trekke ut tekst fra pdf-siden.
Forbehandler uttrukket tekst for å rense og normalisere den
Ulike forhåndsbehandlingsteknikker, som fjerning av stoppord, små bokstaver, fjerning av tegnsetting, stemming eller lemmatisering, brukes til å rense og normalisere den utpakkede teksten i Python.
Inngang: Python er et populært programmeringsspråk som brukes til dataanalyse og maskinlæring. Det er enkelt å lære og har et bredt utvalg av biblioteker for ulike bruksområder.
Kode:
tekst = "Python er et populært programmeringsspråk som brukes til dataanalyse og maskinlæring. Det er lett å lære og har et bredt utvalg av biblioteker for ulike bruksområder.» |
Utgang: ['python', 'populær', 'programmering', 'språk', 'brukt', 'data', 'analyse', 'maskin', 'lærende', 'lett', 'lære', 'vidt', ' rekkevidde, 'biblioteker', 'forskjellige', 'applikasjoner']
Dette trinnet har fjernet stoppord som «er», «en», «for», «og», «det» og «har», og alle ordene i teksten har også små bokstaver.
Lagre uttrukket tekst til en fil eller database
Kjør følgende kode:
med åpen(«extracted_text.txt», 'I') as f: |
Denne koden vil åpne en fil med navnet extracted_text.txt i skrivemodus. De f.write() metoden skriver den forhåndsbehandlede teksten til filen. Den konverterer listen over ord inn ren_tekst til en streng ved å slå sammen ordene med et mellomrom (' '), og skriver deretter den resulterende strengen til filen.
Så resultatet er at den forhåndsbehandlede teksten lagres i en fil med navnet extracted_text.txt i gjeldende arbeidskatalog.
Konverter kompleks PDF til tekstformat umiddelbart ved hjelp av PDF til tekst-konvertering. Prøv det gratis.
Flere avanserte teknikker kan brukes for å forbedre nøyaktigheten av tekstutvinning. Her er noen teknikker:
- Optisk karaktergjenkjenning (OCR): OCR er en prosess som konverterer skannede bilder til maskinkodet tekst. OCR kan brukes til å trekke ut tekst fra PDF-filer som inneholder bilder eller skannede sider. Flere OCR-motorer er tilgjengelige, inkludert Tesseract, Google Cloud Vision og Amazon Textract.
- Forbehandlingsteknikker: Forbehandlingsteknikker innebærer å manipulere PDF-filen før selve utvinningsprosessen. Dette inkluderer teknikker som fjerning av skjevheter, fjerning av støy og terskel for å fjerne støy, skjevheter og andre forvrengninger som kan påvirke nøyaktigheten til utvinningsprosessen.
- Layoutanalyse: Det innebærer å identifisere og klassifisere de forskjellige elementene i en PDF-fil, for eksempel tekstblokker, tabeller og bilder. Denne informasjonen kan forbedre nøyaktigheten av tekstuttrekk ved å identifisere dokumentets struktur.
- Maskinlæringsverktøy: Flere tekstuttrekksverktøy, som f.eks Nanonetter, bruk maskinlæringsteknikker for å trekke ut tekst fra PDF-filer nøyaktig.
Tips for å optimalisere ytelsen og redusere minnebruken i Python
Effektiv håndtering av minne i Python kan være komplekst, noe som krever forståelse av Pythons datastrukturer og objekter. Her er noen tips for å optimalisere ytelsen og redusere minnebruken mens du kjører kode i Python.
1. Bruk innebygde Python-funksjoner og biblioteker
Å bruke innebygde Python-funksjoner er en effektiv måte å akselerere koden på. Det anbefales å inkludere disse funksjonene i koden når det er hensiktsmessig, fordi de er optimalisert og godt testet for ytelse.
Disse funksjonene er raske fordi de utføres i C, et høyytelsesspråk. Eksempler på disse funksjonene inkluderer maks, min, alle, kart og mange andre.
2. Bruk Pytorch DataLoader
Å trene et stort datasett kan være minnekrevende. Bruk av PyTorchs DataLoader gir en løsning på dette problemet ved å muliggjøre opprettelse av flere mini-batcher med data fra hele datasettet. Hver mini-batch, som kan inneholde flere prøver bestemt av tilgjengelig minne, lastes sømløst inn i modellen, noe som muliggjør effektiv opplæring av store datasett.
3. Bruk listeforståelse over løkker
I Python er loops vanlige, men listeforståelser gir en mer kortfattet og raskere måte å lage nye lister på. Det er bedre enn append-metoden for å legge til elementer i en Python-liste.
4. Importerklæring overhead
I Python kan plasseringen av importsetningen påvirke kodens ytelse og minnebruk. Import av en pakke utenfor en funksjon kan resultere i raskere kodeutførelse, men kan også kreve mer minne enn å importere pakken inne i en funksjon. Å vurdere avveiningene mellom ytelse og minnebruk er viktig når du bestemmer hvor du skal plassere importsetningene dine i Python.
5. Databiter
Chunking eller lasting av data i små grupper er en nyttig teknikk for å forhindre minnefeil når du arbeider med store datasett i Python. I mange tilfeller er ikke all data nødvendig på en gang, og forsøk på å laste alt i en enkelt batch kan føre til at programmet krasjer på grunn av minnebegrensninger. Ved å behandle dataene i mindre biter er det mulig å unngå disse minnefeilene og lagre resultatene etter behov. Derfor er det vanlig å dele data i databehandling og analyse for å forhindre minnerelaterte problemer.
6. Sammenkobling av strenger
To vanlige måter å sammenkoble strenger i Python er å bruke '+'-operatoren eller join()-metoden. Mens '+'-operatoren er mye brukt, er join()-metoden mer effektiv og raskere å sette sammen strenger. Hovedårsaken er at ved hvert trinn lager '+'-operatoren en ny streng og kopierer den gamle strengen, mens join()-metoden fungerer annerledes, noe som resulterer i raskere sammenkobling.
Konverter kompleks PDF til tekstformat umiddelbart ved hjelp av PDF til tekst-konvertering. Prøv det gratis.
Ta bort
Håndtering av minnefeil i Python kan være utfordrende, men det finnes ulike metoder for å optimalisere minnebruken og forhindre minneoverflyt. Det første trinnet er å identifisere problemets kjerneårsak og bruke gjeldende minneoptimaliseringsmetoder. Hvis problemet vedvarer, kan relaterte prosesser optimaliseres, eller operasjonen kan deles opp i mindre biter ved hjelp av en ekstern databasetjeneste.
Med disse tipsene og teknikkene er det mulig å optimalisere minnebruken og unngå minnerelaterte problemer når du arbeider med store datasett i Python. Mens Python-biblioteker tilbyr en praktisk måte å trekke ut tekst fra PDF-filer, er det verdt å vurdere andre automatiserte verktøy for tekstutvinning, som f.eks. Nanonetter.
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- Platoblokkkjede. Web3 Metaverse Intelligence. Kunnskap forsterket. Tilgang her.
- kilde: https://nanonets.com/blog/extract-text-from-pdf-file-using-python/
- :er
- $OPP
- 1
- 7
- 8
- a
- akselerere
- adgang
- nøyaktighet
- nøyaktig
- avansert
- påvirke
- Alle
- tillate
- tillater
- allerede
- Amazon
- amazontekst
- analyse
- og
- api
- aktuelt
- søknader
- påføring
- hensiktsmessig
- ER
- argument
- Artikkel
- AS
- At
- forsøker
- Automatisert
- automatisk
- tilgjengelig
- BE
- fordi
- før du
- Bedre
- mellom
- Blocks
- Brutt
- innebygd
- bedrifter
- by
- CAN
- saker
- Årsak
- utfordrende
- karakter
- karaktergjenkjenning
- sjekk
- klasse
- Cloud
- kode
- Felles
- vanligvis
- komplekse
- vurderer
- inneholde
- inneholder
- Praktisk
- Kjerne
- Crash
- skape
- opprettet
- Opprette
- skaperverket
- avling
- Gjeldende
- dato
- dataanalyse
- databehandling
- Database
- datasett
- Avgjør
- dekryptere
- bestemmes
- Utvikling
- forskjellig
- diskutere
- dokument
- dokumenter
- ned
- nedlasting
- hver enkelt
- redaktør
- Effektiv
- effektivt
- effektiv
- elektronisk
- elementer
- muliggjøre
- muliggjør
- Motorer
- Engelsk
- Hele
- Miljø
- feil
- spesielt
- avgjørende
- alt
- eksempler
- gjennomføring
- trekke ut
- FAST
- raskere
- Noen få
- filet
- Filer
- Først
- etter
- fonter
- Til
- format
- Heldigvis
- Gratis
- fra
- funksjon
- funksjoner
- videre
- få
- få
- gif
- Gi
- Google Cloud
- håndtere
- Ha
- hjelpe
- her.
- høyt nivå
- høy ytelse
- Hvordan
- Hvordan
- Men
- HTTPS
- identifisering
- bilder
- Påvirkning
- importere
- viktig
- importere
- forbedre
- in
- inkludere
- inkluderer
- Inkludert
- innlemme
- indeks
- individer
- informasjon
- installere
- installerte
- involvere
- utstedelse
- saker
- IT
- sammenføyning
- Språk
- stor
- siste
- Layout
- LÆRE
- læring
- bibliotekene
- Bibliotek
- i likhet med
- begrensninger
- Liste
- lister
- laste
- lasting
- maskin
- maskinlæring
- Hoved
- gjøre
- GJØR AT
- administrerende
- manipulere
- mange
- kart
- max
- Minne
- Flett
- metadata
- metode
- metoder
- Mote
- modell
- Moduler
- mer
- mest
- flere
- oppkalt
- Trenger
- Ny
- Bråk
- Antall
- objekt
- gjenstander
- OCR
- of
- tilby
- Gammel
- on
- åpen
- åpen kildekode
- drift
- operatør
- optimalisering
- Optimalisere
- optimalisert
- optimalisere
- Annen
- andre
- utenfor
- pakke
- side
- banen
- ytelse
- vedvarer
- Sted
- plato
- Platon Data Intelligence
- PlatonData
- Populær
- mulig
- forebygge
- prosess
- Prosesser
- prosessering
- program
- Programmering
- eiendom
- gi
- gir
- Python
- pytorch
- område
- Lese
- Reader
- grunnen til
- anerkjennelse
- anbefales
- redusere
- i slekt
- fjerne
- fjernet
- fjerne
- krever
- påkrevd
- resultere
- resulterende
- Resultater
- Kjør
- rennende
- s
- Spar
- sømløst
- tjeneste
- sett
- flere
- Del
- deling
- enkelt
- skjev
- liten
- mindre
- So
- løsning
- noen
- Kilder
- Rom
- spesifikk
- splittet
- starter
- Uttalelse
- uttalelser
- Trinn
- Steps
- Stopp
- struktur
- studio
- slik
- Støtter
- system
- Ta
- teknikker
- Tesseract
- Det
- De
- derfor
- Disse
- tips
- til
- tokens
- verktøy
- Kurs
- Transform
- forstå
- forståelse
- oppgradering
- us
- bruk
- bruke
- bruke
- ulike
- Ve
- versjon
- syn
- W
- Vei..
- måter
- om
- hvilken
- mens
- bred
- Bred rekkevidde
- allment
- vil
- med
- ord
- ord
- Arbeid
- arbeid
- virker
- verdt
- skrive
- Du
- Din
- zephyrnet