首页 > 解决方案 > 如何通过pdf的所有页面创建词云?

问题描述

我目前对这个词云概念很陌生,并找到了一种将文本传递到词云的简单方法。但我想将 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()

标签: pythonnumpyword-cloudpypdf2

解决方案


好的,所以我想通了,但另一方面,发布答案仅供参考,但其他最佳解决方案是最受欢迎的。

循环代码

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

推荐阅读