В настоящий момент мой код извлекает данные из PDF &, подсчитывая частоту слова. Я уже некоторое время пытался организовать его в порядке частоты, но не смог. Я просмотрел несколько похожих ответов, но не могу найти ответ, который я могу получить для работы. Может кто-то указать, что мне нужно делать?Где я иду не так?
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]
Thanks in Advance.
Вы пытались использовать 'Counter'? Вы можете запустить счетчик на нем, а затем отсортировать по 'most_common'. Вот информация о нем: https://docs.python.org/2.7/library/collections.html#collections.Counter.most_common – serk
Ленивый заголовок (может быть использован для каждого вопроса на SO!), Ленивый вопрос. Основные способы устранения неполадок: начните с самого простого ввода, посмотрите, что делает с этим код. Если вы все еще не можете понять, что происходит, укажите свой вклад, свой результат, какой результат вы ожидали, что вы пробовали и что произошло, когда вы его попробовали. –