-2

目前,我的代码正在从 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]

提前致谢。

4

1 回答 1

0

看看你的 Python,从逻辑上讲,一切看起来都很好,而且在语法上。我认为您的提取方法出了点问题,因为我尝试了这段代码,对 4 个单词的 pdf 进行了一些小的更改,但没有一个被刮掉。我没有使用 pyPDF2 的经验,所以我不能提供更多的建议,如果可能的话,你应该尝试不同的文本提取方法。

于 2017-02-17T01:20:24.070 回答