Python训练数据个性化提取 JSON与DICT转换并输出

深度学习或机器学习过程中少不了需要对训练过程进行额外处理,比如我们想观察score的变化,相关差准确率变化的趋势。

除了用模型自带的plot工具,我们也需要自己进行集中处理或对中间过程进行缓存。

原始输入:

{'Role': 'Server #', 'Round': 1, 'Results_raw': {'test_f1': 0.10770681986233807, 'test_total': 609, 'test_avg_loss': 1.9486457109451294, 'test_loss': 1186.7252379655838, 'val_f1': 0.08549080600237736, 'val_total': 542, 'val_avg_loss': 1.949989914894104, 'val_loss': 1056.8945338726044}}
{'Role': 'Server #', 'Round': 2, 'Results_raw': {'test_f1': 0.11019650206846494, 'test_total': 609, 'test_avg_loss': 1.9490487575531006, 'test_loss': 1186.9706933498383, 'val_f1': 0.09533932757526807, 'val_total': 542, 'val_avg_loss': 1.9504367113113403, 'val_loss': 1057.1366975307465}}
{'Role': 'Server #', 'Round': 3, 'Results_raw': {'test_f1': 0.11728175062534404, 'test_total': 609, 'test_avg_loss': 1.9500796794891357, 'test_loss': 1187.5985248088837, 'val_f1': 0.09500389029711606, 'val_total': 542, 'val_avg_loss': 1.9511232376098633, 'val_loss': 1057.508794784546}}
{'Role': 'Server #', 'Round': 4, 'Results_raw': {'test_f1': 0.11653842664371827, 'test_total': 609, 'test_avg_loss': 1.9523628950119019, 'test_loss': 1188.9890030622482, 'val_f1': 0.10123642955228289, 'val_total': 542, 'val_avg_loss': 1.9534810781478882, 'val_loss': 1058.7867443561554}}
{'Role': 'Server #', 'Round': 5, 'Results_raw': {'test_f1': 0.12422168569025195, 'test_total': 609, 'test_avg_loss': 1.9476524591445923,
### 使用Python爬虫抓取微博数据生成词云图 为了实现这一目标,需要完成几个主要的任务:安装必要的库、获取微博的数据以及处理这些数据来生成词云图像。 #### 安装所需库 在开始前,确保已经安装了所需的Python库。可以通过pip命令轻松安装它们: ```bash pip install requests beautifulsoup4 pandas wordcloud matplotlib jieba numpy pillow scrapy ``` 上述指令会安装一系列用于网络请求、HTML解析、数据分析、中文分词、绘图等功能的工具[^5]。 #### 获取微博数据 对于微博这样的社交平台来说,直接通过网页版进行自动化操作可能违反服务条款,且容易被反爬机制阻止。因此推荐使用官方API接口或者第三方提供的合法途径访问公开发布的微博内容。如果选择自行构建爬虫,则需注意遵循网站robots.txt文件规定及合理设置请求频率以免给服务器造成过大负担[^4]。 一旦获得了有效的JSON格式响应体之后就可以从中提取感兴趣的信息字段比如用户名(user_name)、发布时间(publish_time)、正文(text_body),将它们保存到本地CSV或数据库中以便后续分析[^1]。 #### 数据预处理清洗 由于原始文本可能存在噪声字符(如表情符号)、特殊标记(@某人、#话题标签#),所以在进一步加工之前应当先清理掉不必要的部分只保留纯文字描述。此外考虑到汉语不同于英语的特点,在建立词汇表时还需要借助`jieba`库来进行精准切分[^3]。 #### 构建词频统计模型 基于准备好的语料库,可以调用`Counter()`函数快速计算出各个词语出现次数形成字典结构;当然也可以考虑引入TF-IDF算法衡量词条的重要性程度从而突出显示核心概念[^2]。 #### 绘制可视化图表 最后一步就是把前面得到的结果转换成直观易懂的形式展现出来了——即所谓的“词云”。这里要提到的是`wordcloud.WordCloud()`类提供了丰富的参数选项让用户自定义样式风格,例如指定背景颜色(white/black)、字体路径(simhei.ttf或其他支持CJK扩展集成员)、最大字号大小(max_font_size=80)等属性值以满足个性化需求。 ```python from collections import Counter import jieba from wordcloud import WordCloud import matplotlib.pyplot as plt def create_word_cloud(frequencies, img_path='output.png'): wc = WordCloud( background_color="white", max_words=2000, font_path='/path/to/simhei.ttf', # 需替换为实际存在的黑体字体位置 width=900, height=600) wc.generate_from_frequencies(frequencies) plt.figure(figsize=(15, 10)) plt.imshow(wc.recolor(color_func=None), interpolation="bilinear") plt.axis('off') plt.savefig(img_path, dpi=300) plt.show() text = " ".join([" ".join(jieba.cut(line)) for line in open('weibo_texts.txt').readlines()]) words_freqs = dict(Counter(text.split()).most_common()) create_word_cloud(words_freqs) ``` 此段脚本展示了如何读入经过初步净化后的微博帖子集合(`weibo_texts.txt`),对其进行结巴分词后累积各单词计数值作为输入传递给`WordCloud`对象实例化过程中的generate_from_frequencies()方法最终渲染输出至屏幕的同时也另存一份高清副本于磁盘上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值