0

I am trying to read and convert pdf file to text by following this tutorial but i keep getting error. here is my python code

import PyPDF2 
import textract
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords

pdfFileObj = open(filename,'rb')
#The pdfReader variable is a readable object that will be parsed
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
#discerning the number of pages will allow us to parse through all #the pages
num_pages = pdfReader.numPages
count = 0
text = ""
#The while loop will read each page
while count < num_pages:
    pageObj = pdfReader.getPage(count)
    count +=1
    text += pageObj.extractText()
 
if text != "":
   text = text
 
else:
   text = textract.process(fileurl, method='tesseract', language='eng')
 
 
tokens = word_tokenize(text)
 
punctuations = ['(',')',';',':','[',']',',']
 
stop_words = stopwords.words('english')
 
keywords = [word for word in tokens if not word in stop_words and not word in punctuations]

the error I keep getting is

tokens = word_tokenize(text)

TypeError: cannot use a string pattern on a bytes-like object

how can I fix the error?

Community
  • 1
  • 1
e.iluf
  • 1,389
  • 5
  • 27
  • 69

1 Answers1

3

You are reading in bytes but you need a string because word_tokenize uses regex in the backend.

Change this line:

tokens = word_tokenize(text.decode("utf-8"))
MyNameIsCaleb
  • 4,409
  • 1
  • 13
  • 31