2017-02-17 3 views
-2

Im Moment extrahiert mein Code Daten aus einem PDF & mit dem Wort Häufigkeit. Ich habe schon eine Weile versucht, es in der Reihenfolge der Häufigkeit zu arrangieren, aber ich konnte es nicht. Ich habe mir mehrere ähnliche Antworten angesehen, kann aber keine Antwort finden, die ich zur Arbeit bringen kann. Kann jemand darauf hinweisen, was ich tun muss?Wohin gehe ich falsch?

import PyPDF2 
import re 


pdfFileObj = open('ch8.pdf', 'rb') #Open the File 
pdfReader = PyPDF2.PdfFileReader(pdfFileObj) #Read the file 
frequency = {} #Create dict 

print "Number of Pages %s " % pdfReader.numPages #Print Num Pages 

pageObj = pdfReader.getPage(0) # Get the first page 
match_pattern = re.findall(r'\b[a-z]{3,15}\b', pageObj.extractText()) #Find the text 

for word in match_pattern: #Start counting the frequency 
    word = word.lower() 
    count = frequency.get(word,0) 
    frequency[word] = count + 1 


frequency_list = frequency.keys() 

for words in frequency_list: 
    print words, frequency[words] 

Vielen Dank im Voraus.

+1

Haben Sie versucht, 'Counter' zu verwenden? Sie können einen Zähler darauf ausführen und dann nach 'most_common' sortieren. Hier sind ein paar Informationen dazu: https://docs.python.org/2.7/library/collections.html#collections.Counter.most_common – serk

+0

Fauler Titel (könnte für jede Frage auf SO verwendet werden!), Faule Frage. Grundlegende Fehlerbehebung: Beginnen Sie mit der einfachsten Eingabe, und sehen Sie, was Ihr Code damit macht. Wenn Sie immer noch nicht herausfinden können, was vor sich geht, geben Sie Ihre Eingabe, Ihre Ausgabe, welche Ausgabe Sie erwartet haben, was Sie versucht haben und was passiert ist, als Sie es versucht haben. –

Antwort

0

Mit Blick auf Ihre Python, sieht logisch alles gut und syntaktisch. Ich würde annehmen, dass etwas mit deiner Extraktionsmethode falsch läuft, weil ich diesen Code mit ein paar kleinen Änderungen an einem PDF von 4 Wörtern ausprobiert habe und keiner davon gekratzt wurde. Ich habe keine Erfahrung mit pyPDF2, daher kann ich nicht viel mehr Ratschläge geben als die Idee, dass Sie nach Möglichkeit eine andere Extraktionsmethode für den Text ausprobieren sollten.

Verwandte Themen