Python读取word文件并绘制词云图

1、安装必要的库

pip install python-docx wordcloud matplotlib

2、完整代码

import docx
from wordcloud import WordCloud
import matplotlib.pyplot as plt

# 读取Word文件内容
def read_word_file(file_path):
    doc = docx.Document(file_path)
    full_text = []
    for para in doc.paragraphs:
        full_text.append(para.text)
    return '\n'.join(full_text)

# 生成词云图
def generate_wordcloud(text):
    wordcloud = WordCloud(width=800, height=400, background_color='white').generate(text)
    
    # 显示词云图
    plt.figure(figsize=(10, 5))
    plt.imshow(wordcloud, interpolation='bilinear')
    plt.axis('off')
    plt.show()

# 主函数
def main():
    file_path = 'your_word_file.docx'  # 替换为你的Word文件路径
    text = read_word_file(file_path)
    generate_wordcloud(text)

if __name__ == "__main__":
    main()

3、修改中文乱码错误

注意:
要是出现中文乱码的情况,可以用以下方式修改:
在这里插入图片描述
添加字体

wordcloud = WordCloud(width=800, height=400, background_color='white', font_path='simhei.ttf').generate(text)

在这里插入图片描述

修改之后的效果:
在这里插入图片描述

4、详细解释

详细解释

安装库:

  • python-docx:用于读取Word文件。
  • wordcloud:用于生成词云图。
  • matplotlib:用于显示词云图。

读取Word文件内容:

  • 使用python-docx的Document类读取Word文件。
  • 遍历文档中的段落,将每个段落的文本添加到一个列表中。
  • 将所有段落的文本合并为一个字符串。

生成词云图:

  • 使用wordcloud的WordCloud类生成词云图。
  • 设置词云图的宽度、高度和背景颜色。
  • 调用generate方法生成词云图。
  • 使用matplotlib显示词云图。

注意事项

  • 确保你的Word文件路径正确。
  • 可以根据需要调整词云图的参数,如颜色、字体等。
  • 如果文本中有很多常见词或停用词,可以使用WordCloud的stopwords参数排除它们。

通过以上步骤,你可以轻松地读取Word文件并生成漂亮的词云图。

好的,您可以按照以下步骤来实现: 1. 首先,需要安装一些需要的库,比如 pandas、jieba、wordcloud。您可以使用以下命令来安装它们: ``` pip install pandas jieba wordcloud ``` 2. 接着,导入需要的库: ```python import pandas as pd import jieba from wordcloud import WordCloud import matplotlib.pyplot as plt ``` 3. 读取 Excel 文件中的数据。假设您的 Excel 文件名为 data.xlsx,里面的数据存储在名为 sheet1 的工作表中,数据列名为 content,那么您可以使用以下代码读取数据: ```python df = pd.read_excel('data.xlsx', sheet_name='sheet1') data = df['content'].tolist() ``` 4. 对文本进行分词处理。使用 jieba 库,您可以使用以下代码来对文本进行分词: ```python stopwords = [line.strip() for line in open('stopwords.txt', 'r', encoding='utf-8').readlines()] words = [] for text in data: seg_list = jieba.cut(text, cut_all=False) for word in seg_list: if word not in stopwords: words.append(word) ``` 其中 stopwords.txt 是存储停用词的文件,您需要提前下载并存储在项目目录中。 5. 绘制词云图。使用 WordCloud 库,您可以使用以下代码绘制词云图: ```python text = ' '.join(words) wordcloud = WordCloud(background_color="white", width=800, height=600).generate(text) plt.imshow(wordcloud, interpolation='bilinear') plt.axis("off") plt.show() ``` 这里使用了 matplotlib 库来显示词云图。 完整代码如下: ```python import pandas as pd import jieba from wordcloud import WordCloud import matplotlib.pyplot as plt df = pd.read_excel('data.xlsx', sheet_name='sheet1') data = df['content'].tolist() stopwords = [line.strip() for line in open('stopwords.txt', 'r', encoding='utf-8').readlines()] words = [] for text in data: seg_list = jieba.cut(text, cut_all=False) for word in seg_list: if word not in stopwords: words.append(word) text = ' '.join(words) wordcloud = WordCloud(background_color="white", width=800, height=600).generate(text) plt.imshow(wordcloud, interpolation='bilinear') plt.axis("off") plt.show() ``` 希望这个回答能够帮到您。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叁拾舞

你的鼓励将是我最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值