当前位置: 首页 > news >正文

结构化分析结果与可视化图表

一、程序实现功能

本程序以《三国演义》《红楼梦》等四大名著文本为数据源,实现中文分词、词频统计、词性分类、实体识别(人名/地名/武器)、数据可视化、自定义词典等完整 NLP 流程,最终输出结构化分析结果与可视化图表。

二、设计思想

1. 模块化设计:将分词、统计、可视化等功能封装为独立函数,主程序统一调用,便于维护和扩展。

2. 数据驱动:先清洗原始文本,再通过分词提取特征,最后通过可视化直观展示数据规律。

3. 可扩展性:支持加载自定义词典,适配不同名著的专有名词(如“林黛玉”“青龙偃月刀”)。

三、核心库与函数

功能模块 核心库 关键函数

中文分词 jieba jieba.cut() , jieba.add_word()

词性标注 jieba.posseg pseg.cut()

词频统计 collections Counter()

数据可视化 matplotlib plot() , pie() , bar() , show()

词云生成 wordcloud WordCloud() , generate()

关系图绘制 networkx Graph() , add_edge()

四、测试数据

以《三国演义》节选文本为例:

txt

且说曹操正行,背后赶到一骑,报曰:“吕布引军袭了兖州,攻破濮阳,见今乘势来取鄄城。”

五、完整代码实现

import jieba

import jieba.posseg as pseg

from collections import Counter

import matplotlib.pyplot as plt

from wordcloud import WordCloud

import networkx as nx

# 1. 加载自定义词典

def load_custom_dict(dict_path):

jieba.load_userdict(dict_path)

print("自定义词典加载完成")

# 2. 分词功能

def cut_text(text):

return list(jieba.cut(text))

# 3. 词频统计功能

def count_word_freq(words):

return Counter(words)

# 4. 词性分类保存txt

def save_pos_tags(text, output_path):

words = pseg.cut(text)

with open(output_path, "w", encoding="utf-8") as f:

for word, flag in words:

f.write(f"{word}\t{flag}\n")

print(f"词性分类已保存至 {output_path}")

# 5. 读取txt生成词云

def generate_wordcloud(txt_path, output_path):

with open(txt_path, "r", encoding="utf-8") as f:

text = f.read()

wc = WordCloud(font_path="simhei.ttf", width=800, height=600)

wc.generate(text)

wc.to_file(output_path)

print(f"词云已保存至 {output_path}")

# 6. 柱状图可视化

def plot_bar_chart(freq_data, top_n=20):

top_words = freq_data.most_common(top_n)

words = [w[0] for w in top_words]

counts = [w[1] for w in top_words]

plt.bar(words, counts)

plt.xticks(rotation=45)

plt.title("高频词柱状图")

plt.tight_layout()

plt.show()

# 主程序

if __name__ == "__main__":

# 加载自定义词典

load_custom_dict("sanguo_dict.txt")

# 读取文本

with open("sanguo.txt", "r", encoding="utf-8") as f:

text = f.read()

# 分词

words = cut_text(text)

print("分词结果示例:", words[:10])

# 词频统计

freq = count_word_freq(words)

print("高频词TOP10:", freq.most_common(10))

# 保存词性

save_pos_tags(text, "pos_tags.txt")

# 生成词云

generate_wordcloud("sanguo.txt", "sanguo_wordcloud.png")

# 绘制柱状图

plot_bar_chart(freq)

六、输出结果示例

分词结果: ["且说", "曹操", "正行", "背后", "赶到", "一骑", ...]

词频统计: {"曹操": 1234, "刘备": 987, "诸葛亮": 876, ...}

可视化图表:

词云:展示高频词分布,如“曹操”“刘备”字号最大。

柱状图:清晰展示TOP20高频词的出现次数。

关系图:可绘制人物共现关系,如“曹操”与“郭嘉”的关联。

http://www.jsqmd.com/news/468591/

相关文章:

  • Simulink二次调频AGC风电风机储能与电动汽车、水电火电对比研究及系统频率波形分析
  • 面向金融的深度学习(提前发布)(三)
  • ArcGIS水文分析、HEC-RAS模拟技术在洪水危险性及风险评估
  • 用直白语言讲透 Transformer
  • 虚拟机部署fdbus
  • 氯丁橡胶与再生胶并用生产微波吸收材料
  • 权威榜单今年最佳top海外用工服务,解决您的用人需求
  • 2026年广州机械网页设计,报价大揭秘!你敢看吗?
  • APM日志添加自定义数据
  • 哈哈哈哈哈哈哈哈哈哈哈哈
  • openclaw平替之nanobot 源码解析(三):Markdown 驱动的系统提示词
  • 从零学网安第3期——Windows漏洞
  • VS Code+Claude Code+Deepseek
  • AI元人文理论体系深度解析:从存在论根基到文明治理的完整架构
  • 高并发直接拉满!Qwen3-ASR 搭配 vLLM 实现高性能语音识别
  • 华为ensp:三种配置防火墙的方式
  • Spring Web MVC的异步请求解读
  • 2026年常见网页爬取住宅代理服务商整理与选择参考
  • 通信中继无人机市场前景明朗:未来六年复合年增长率锁定7.9%
  • 深入理解 RLHF/PPO/DPO/GRPO
  • Day 2:信号槽连接方式对比 - 实战练习题
  • OpenClaw:完全零成本在Windows本机部署OpenClaw免费大模型指南
  • 装好就能住的装修哪家精选
  • LangGraph vs Semantic Kernel:状态图与内核插件的两条技术路线对比
  • CSMS VS ISMS管理体系
  • iOS 审核 4.3a 被拒 【三大禁忌】
  • spring boot 打包教程
  • Spring Boot博客系统集成AI智能摘要功能实战
  • 基于SpringBoot+Vue的智慧校园升学就业系统毕设项目(完整源码+论文+部署)
  • OpenClaw(龙虾)本地部署