Python 文本分析-词云展示
image.pngvscode中 ipynb运行
.ipynb文件
当前所在文件夹放置待分析pdf文件
1 提取PDF中的文本,保存到txt
import PyPDF2
def extract_text_from_pdf(pdf_path, txt_path):
with open(pdf_path, 'rb') as pdf_file:
pdf_reader = PyPDF2.PdfReader(pdf_file)
text = ""
for page_num in range(len(pdf_reader.pages)):
page = pdf_reader.pages[page_num]
text += page.extract_text()
with open(txt_path, 'w', encoding='utf-8') as txt_file:
txt_file.write(text)
pdf_path = "./ASV-2024-workshop abstract(p130-648).pdf" # 替换为您的 PDF 文件路径
txt_path = "output.txt" # 替换为输出的 TXT 文件路径
extract_text_from_pdf(pdf_path, txt_path)
# 在上述代码中,首先定义了一个名为 extract_text_from_pdf 的函数,它接受 PDF 文件路径和 TXT 文件路径作为参数。然后通过 PyPDF2 库读取 PDF 文件的每一页,并提取文字,最后将提取的文字保存到指定的 TXT 文件中。请确保将代码中的 pdf_path 和 txt_path 替换为实际的文件路径。
2 根据txt内容画词云
代码如下:
import jieba
import wordcloud
from matplotlib import pyplot as plt
def draw_word_cloud(txt_path):
# 读取 TXT 文件内容
with open(txt_path, 'r', encoding='utf-8') as f:
text = f.read()
# 使用 jieba 进行分词
words = jieba.lcut(text)
new_text = " ".join(words)
# 生成词云
wc = wordcloud.WordCloud(
# font_path='simhei.ttf', # 字体路径,根据实际情况修改
font_path='arial.ttf', # 字体路径,根据实际情况修改
background_color='white', # 背景颜色
width=2000, height=1500, # 图像宽高
# scale=20,
)
wc.generate(new_text)
# 显示词云图像
plt.imshow(wc)
plt.axis('off') # 不显示坐标轴
# plt.show()
plt.savefig("wordcloud_asv2024.jpg",dpi=600)
txt_path = "./output.txt" # 替换为您的 TXT 文件路径
draw_word_cloud(txt_path)
网友评论