Как пройти все страницы PDF, чтобы создать облако слов? - PullRequest
0 голосов
/ 13 октября 2018

В настоящее время я новичок в этой концепции облаков слов и нашел простой способ передачи текста в облако слов.Но я хочу передать PDF в функцию wordcloud.generate () в Python.Я использую приведенный ниже код и могу создать облако для конкретной страницы, строка pdfReader.numPages дает мне количество страниц, но я не могу понять, как его зациклить.

Пример кода

from wordcloud import WordCloud
import matplotlib.pyplot as plt
from PIL import Image
import numpy as np
import PyPDF4

pdfFileObj = open('ReadyPlayerOne.pdf', 'rb')
pdfReader = PyPDF4.PdfFileReader(pdfFileObj)
print(pdfReader.numPages)
pageObj = pdfReader.getPage(0)
print(pageObj.extractText())
pdfFileObj.close()

ourMask = np.array(Image.open('twitter_mask.png'))

cloud = WordCloud(background_color='white', mask=ourMask ).generate(pageObj.extractText())

plt.imshow(cloud)
plt.axis('off')
plt.show()

1 Ответ

0 голосов
/ 13 октября 2018

Хорошо, я понял это, но другим способом выложу ответ только для справки, но другие оптимальные решения приветствуются.

Код для цикла

pdfReader = PyPDF4.PdfFileReader(open('ReadyPlayerOne.pdf', 'rb'))
pageData = ''
for page in pdfReader.pages:
    pageData += page.extractText()
    print(pageData)
...