Извлечение текста из PDF -Tokenize TypeError - PullRequest
0 голосов
/ 22 января 2019

При попытке извлечь текст из PDF с использованием Textract, я получаю TypeError: «не могу использовать строковый шаблон на байтовоподобном объекте». Кто-нибудь может быть полезным с тем, что может быть решением? Когда я печатаю (текст), я получаю текст из PDF, который я хочу извлечь, хотя и в немного странном формате. Тем не менее, текст [0] и т. Д. Содержит только цифры ..?

import textract
import os
from nltk.tokenize import word_tokenize

for filename in os.listdir('Harbour PDF'):
if '.DS_Store' == filename:
    continue
filename = 'Harbour PDF/' + filename
print(filename)

text = textract.process(filename)
print(text)

tokens = word_tokenize(text)
keywords = [word for word in word_tokenize(text,'english',False)]

Ошибка:

Файл "scrapePort.py", строка 15, в токены = word_tokenize (текст) Файл "/Users/Rasmus/anaconda3/lib/python3.6/site-packages/nltk/tokenize/init.py", строка 143, в word_tokenize предложения = [текст], если preserve_line иначе sent_tokenize (текст, язык) Файл "/Users/Rasmus/anaconda3/lib/python3.6/site-packages/nltk/tokenize/init.py", строка 105, в sent_tokenize вернуть tokenizer.tokenize (текст) Файл "/Users/Rasmus/anaconda3/lib/python3.6/site-packages/nltk/tokenize/punkt.py", строка 1269, в токенизации список возврата (self.sentences_from_text (text, realign_boundaries)) Файл "/Users/Rasmus/anaconda3/lib/python3.6/site-packages/nltk/tokenize/punkt.py", строка 1323, в фразе_from_text вернуть [текст [s: e] для s, e в self.span_tokenize (text, realign_boundaries)] Файл "/Users/Rasmus/anaconda3/lib/python3.6/site-packages/nltk/tokenize/punkt.py", строка 1323, в вернуть [текст [s: e] для s, e в self.span_tokenize (text, realign_boundaries)] Файл "/Users/Rasmus/anaconda3/lib/python3.6/site-packages/nltk/tokenize/punkt.py", строка 1313, в span_tokenize для сл в ломтиках: Файл "/Users/Rasmus/anaconda3/lib/python3.6/site-packages/nltk/tokenize/punkt.py", строка 1354, в _realign_boundaries для sl1, sl2 в _pair_iter (кусочки): Файл "/Users/Rasmus/anaconda3/lib/python3.6/site-packages/nltk/tokenize/punkt.py", строка 317, в _pair_iter prev = next (it) Файл "/Users/Rasmus/anaconda3/lib/python3.6/site-packages/nltk/tokenize/punkt.py", строка 1327, в _slices_from_text для совпадения в self._lang_vars.period_context_re (). finditer (text): TypeError: нельзя использовать строковый шаблон для байтовоподобного объекта

1 Ответ

0 голосов
/ 13 апреля 2019

Вам может понадобиться сначала декодировать ваши данные.

text.decode("utf-8")
...