搜索
首页后端开发Python教程探索性数据分析:挖掘待办事项

六三八的鼓舞人心的故事中,他们的任务的第一步是评估和整理大量积压的未投递邮件。这些高耸入云的堆栈必须先进行分类和理解,然后才能取得任何进展。在现代机器学习的世界中,这个初始阶段类似于探索性数据分析 (EDA)。

对于本系列,我们将使用 CSV 数据集复制此过程,其中每一行包含一个类别(例如“技术”、“商业”)以及与其关联的文本。类别充当标签,指示每段文本所属的位置。用于数据操作的 Pandas、用于可视化的 Matplotlib、用于文本洞察的 WordCloud、用于标记分析的 Tiktoken 以及用于文本处理的 NLTK 等工具将帮助我们理解我们的数据集。

在这一步中,我们将:

  1. 加载数据并检查其结构。

  2. 识别可能影响模型性能的缺失或不一致的值。

  3. 探索类别分布以了解标签之间的平衡。

  4. 可视化文本数据中的词频以发现模式。

  5. 使用 Tiktoken 分析代币计数来衡量复杂性。

这个 EDA 阶段反映了六三八细致的排序工作,他们必须先理清混乱,然后才能带来秩序。通过详细了解我们的数据集,我们为构建能够精确分类和解释文本的微调法学硕士奠定了基础。

介绍

探索性数据分析 (EDA) 类似于处理令人畏惧的积压数据——堆积如山、无组织且充满未开发的潜力。就像二战期间六三八单位处理大量积压的未投递邮件一样,EDA 是我们在混乱中筛选以发现见解、识别趋势并为下一阶段的数据分析做好准备的方式。

在这次探索中,我们将深入研究 BBC 新闻文章的数据集,阐明其结构,解决不一致问题,并揭示隐藏在数据中的故事。”

评估待办事项:数据集概述

首先,我们必须首先了解数据集的规模和结构。 BBC 新闻文章数据集包含 2,234 个条目,分布在五个类别:商业、体育、政治、科技和娱乐。每个条目都有两个主要特点:

  • 类别:文章的主题或部分。
  • text:文章的完整内容。

为了更清楚地了解我们正在处理的内容,我们将数据加载到 Pandas DataFrame 中,进行快速检查,并发现:

清理积压订单

随着六三八处理未分类的邮件堆,我们也需要组织我们的数据集。清洁过程涉及几个关键步骤:

  • 删除重复项
    重复的文章使数据集变得混乱。识别并删除这些冗余后。

  • 处理缺失值
    尽管我们的数据集相对干净,但我们确保解决了任何潜在的空值,从而在最终数据中不留下任何空条目。”

细分类别

积压的订单被清除后,我们分析了文章在类别之间的分布,以确定主导主题。这是我们的发现:

  • 热门类别:商业和体育并列占比最大,每个类别包含 512 篇文章。

  • 较小的类别:娱乐、政治和科技,文章较少,但提供了独特的见解。

分布确认数据集是平衡的,使我们能够专注于更深入的分析,而不必担心严重的类别不平衡。”

放大:显微镜下的体育文章

就像按目的地对邮件进行分类一样,我们选择专注于体育类别以进行更深入的研究。目标是分析文本内容并提取有意义的模式。”

  • 标记化和停用词删除
    使用 NLTK 库,我们将文本标记为单个单词并删除了常见的停用词(例如“and”、“the”、“is”)。这使我们能够专注于对该类别更重要的单词。”

  • 词频分析
    创建频率分布是为了识别体育文章中最常见的术语。不出所料,“比赛”、“团队”和“游戏”等词语占据主导地位,反映了内容的竞争性质。”

可视化结果:词云
为了捕捉体育文章的精髓,我们生成了词云。最常用的术语显得更大,生动地描绘了该类别的核心主题。”

Exploratory Data Analysis: Digging Through the Backlog

要点

正如六三八精心分类和交付积压的邮件一样,我们的 EDA 流程揭示了 BBC 新闻数据集的结构化且富有洞察力的视图。

代码

!pip install tiktoken
!pip install matplotlib
!pip install wordcloud
!pip install nltk
!pip install pandas

import pandas as pd

df = pd.read_csv('/content/bbc.csv', on_bad_lines='skip')  


df.head()

df.info()

df.describe()

label_count = df['category'].value_counts()


len(df['text'])


df.drop_duplicates(inplace=True)

null_values = df.isnull().sum()

df.dropna(inplace=True)

import nltk
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
from wordcloud import WordCloud
from collections import Counter
import matplotlib.pyplot as plt


nltk.download('punkt')
nltk.download('stopwords')
nltk.download('punkt_tab') 


target_label ="sport"
target_df = df[df['category'] == target_label]



target_word = [ word.lower()  for text in target_df['text']
                 for word in word_tokenize(text)
                 if word.isalnum() and word not in stopwords.words('english')
                   ]

target_word_count = Counter(target_word)


word_cloud = WordCloud().generate_from_frequencies(target_word_count)


plt.figure(figsize=(10, 5))
plt.imshow(word_cloud, interpolation='bilinear')
plt.axis('off')
plt.show()

以上是探索性数据分析:挖掘待办事项的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Python中有可能理解吗?如果是,为什么以及如果不是为什么?Python中有可能理解吗?如果是,为什么以及如果不是为什么?Apr 28, 2025 pm 04:34 PM

文章讨论了由于语法歧义而导致的Python中元组理解的不可能。建议使用tuple()与发电机表达式使用tuple()有效地创建元组。(159个字符)

Python中的模块和包装是什么?Python中的模块和包装是什么?Apr 28, 2025 pm 04:33 PM

本文解释了Python中的模块和包装,它们的差异和用法。模块是单个文件,而软件包是带有__init__.py文件的目录,在层次上组织相关模块。

Python中的Docstring是什么?Python中的Docstring是什么?Apr 28, 2025 pm 04:30 PM

文章讨论了Python中的Docstrings,其用法和收益。主要问题:Docstrings对于代码文档和可访问性的重要性。

什么是lambda功能?什么是lambda功能?Apr 28, 2025 pm 04:28 PM

文章讨论了Lambda功能,与常规功能的差异以及它们在编程方案中的效用。并非所有语言都支持他们。

什么是休息时间,继续并通过python?什么是休息时间,继续并通过python?Apr 28, 2025 pm 04:26 PM

文章讨论了休息,继续并传递Python,并解释了它们在控制循环执行和程序流中的作用。

Python的通行证是什么?Python的通行证是什么?Apr 28, 2025 pm 04:25 PM

本文讨论了Python中的“ Pass”语句,该语句是函数和类等代码结构中用作占位符的空操作,允许在没有语法错误的情况下实现将来实现。

我们可以在Python中传递作为参数的函数吗?我们可以在Python中传递作为参数的函数吗?Apr 28, 2025 pm 04:23 PM

文章讨论了将功能作为Python中的参数,突出了模块化和用例(例如分类和装饰器)等好处。

Python中的 /和//有什么区别?Python中的 /和//有什么区别?Apr 28, 2025 pm 04:21 PM

文章在Python中讨论 /和//运营商: / for for True Division,//用于地板部门。主要问题是了解它们的差异和用例。Character数量:158

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。