python - 如何通过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()
解决方案
好的,所以我想通了,但另一方面,发布答案仅供参考,但其他最佳解决方案是最受欢迎的。
循环代码
pdfReader = PyPDF4.PdfFileReader(open('ReadyPlayerOne.pdf', 'rb'))
pageData = ''
for page in pdfReader.pages:
pageData += page.extractText()
print(pageData)
推荐阅读
- php - 将数组合并为一个数组并使用相同的值填充键
- ios - DYLD,未加载库:/usr/lib/swift/libswiftCore.dylib
- php - 如何使用不同的字段在 Doctrine EntityType 中选择一个选项
- javascript - 使用 Javascript 突出显示页面上的文本
- groovy - 如何在 jmeter PreProcessor 中动态创建 XML 对象
- node.js - 使用 spawn() 生成子进程,但仍然阻塞当前调用者函数
- powershell - 如何使用 Powershell 从 sourceforge 下载文件?
- linux - Linux .config 中缺少配置选项
- nginx - 使用 Nginx 作为代理的 TLS 协议中断
- networking - 我的任务是存储一个字符串字节,即 0C001A0001000800030000010501000000800100001003103F002A0 到 0x000C, 0x001A ,0x0001, 0x0008 ,0x0100