如何通过pdf所有页面制作词云?

How to pass all pages of pdf to create a word cloud?

我目前对词云这个概念还很陌生,发现了一种将文本传递到词云的简单方法。但我想将 pdf 传递给 python 中的 wordcloud.generate() 函数。我正在使用下面的代码并能够为特定页面创建一个云,行 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()

好吧,我想通了,但以另一种方式发布答案仅供参考,但欢迎其他最佳解决方案。

循环代码

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