Open main menu
首页
专栏
课程
分类
归档
Chat
Sci-Hub
谷歌学术
Libgen
GitHub镜像
登录/注册
搜索
关闭
Previous
Previous
Next
Next
ChatGPT+Pandas 联手,打造智能数据分析助手PandasAI,数据分析师也要失业了?!
sockstack
/
168
/
2024-03-02 00:02:36
<p><span style="color: red; font-size: 18px">ChatGPT 可用网址,仅供交流学习使用,如对您有所帮助,请收藏并推荐给需要的朋友。</span><br><a href="https://ckai.xyz/?sockstack§ion=detail" target="__blank">https://ckai.xyz</a><br><br></p> <article class="baidu_pl"><div id="article_content" class="article_content clearfix"> <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/kdoc_html_views-1a98987dfd.css"> <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_views-25cebea3f9.css"> <div id="content_views" class="markdown_views prism-kimbie-light"> <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path></svg><p></p> <div class="toc"> <h3>文章目录</h3> <ul> <li>前言</li> <li>一、ChatGPT的介绍</li> <li>二、Pandas的介绍</li> <li>三、使用Pandas处理文本数据</li> <li>四、使用ChatGPT生成文本</li> <li> <ul><li>总结</li></ul> </li> </ul> </div> <p></p> <hr> <div class="table-box"> <table><tbody><tr><td bgcolor="black"> <p align="left"></p> <center> 笔记、Python学习资料戳链接直达获取>> <font size="4" color="#FFD700"> </font> </center> <p></p> </td></tr></tbody></table> </div> <h1> <a id="_10"></a>前言</h1> <p>自然语言处理(NLP)是人工智能领域中的一个重要分支,它涉及到计算机对人类语言的理解和生成。在过去的几年中,NLP已经取得了巨大的进展,其中最重要的是深度学习技术的发展。在本文中,我们将介绍如何使用ChatGPT和Pandas进行自然语言处理。</p> <p>ChatGPT是一种基于Transformer的语言模型,由OpenAI开发。它是目前最先进的自然语言处理模型之一,可以用于各种任务,如文本生成、文本分类、问答系统等。Pandas是Python中的一个数据处理库,它提供了一种灵活的方式来处理和分析数据。在本文中,我们将使用Pandas来处理和分析文本数据,并使用ChatGPT来生成文本。<br> <img src="https://img-blog.csdnimg.cn/20c07f74f0a843569156263c18d6487a.png" alt="请添加图片描述"></p> <h1> <a id="ChatGPT_18"></a>一、ChatGPT的介绍</h1> <p>ChatGPT是一种基于Transformer的语言模型,由OpenAI开发。它是目前最先进的自然语言处理模型之一,可以用于各种任务,如文本生成、文本分类、问答系统等。ChatGPT是一个预训练模型,它使用大量的文本数据进行训练,以学习语言的规律和模式。在预训练之后,ChatGPT可以通过微调来适应特定的任务。</p> <p>ChatGPT的核心是Transformer模型,它是一种基于自注意力机制的神经网络模型。Transformer模型可以处理变长的序列数据,并且可以捕捉序列中的长期依赖关系。ChatGPT使用了多层Transformer模型,每一层都包含了多头自注意力机制和前向神经网络。ChatGPT的输出是一个概率分布,表示下一个单词的可能性。</p> <p>ChatGPT的优点是可以生成高质量的文本,而且可以处理变长的序列数据。它可以用于各种任务,如文本生成、文本分类、问答系统等。ChatGPT的缺点是需要大量的计算资源和时间进行训练,而且需要大量的文本数据进行预训练。</p> <h1> <a id="Pandas_26"></a>二、Pandas的介绍</h1> <p>Pandas是Python中的一个数据处理库,它提供了一种灵活的方式来处理和分析数据。Pandas可以处理各种类型的数据,如表格数据、时间序列数据、文本数据等。Pandas的核心是DataFrame和Series,它们可以用来表示表格数据和一维数据。</p> <p>DataFrame是一个二维表格数据结构,它由多个列组成,每一列可以是不同的数据类型。DataFrame可以用来表示表格数据,如CSV文件、Excel文件等。DataFrame提供了各种方法来处理和分析数据,如选择、过滤、排序、分组、聚合等。</p> <p>Series是一个一维数据结构,它由多个元素组成,每个元素可以是不同的数据类型。Series可以用来表示一维数据,如时间序列数据、文本数据等。Series提供了各种方法来处理和分析数据,如选择、过滤、排序、统计等。</p> <p>Pandas的优点是可以处理各种类型的数据,而且提供了丰富的方法来处理和分析数据。Pandas的缺点是需要一定的学习成本,而且需要一定的计算资源来处理大量的数据。</p> <h1> <a id="Pandas_36"></a>三、使用Pandas处理文本数据</h1> <p>如何使用Pandas来处理文本数据。我们将使用一个包含电影评论的数据集来演示。该数据集包含了50,000条电影评论,每条评论都有一个标签,表示该评论是正面的还是负面的。</p> <p>首先,我们需要加载数据集。我们可以使用Pandas的read_csv函数来加载CSV文件。以下是加载数据集的代码:</p> <pre><code class="prism language-python"><span class="token keyword">import</span> pandas <span class="token keyword">as</span> pddf <span class="token operator">=</span> pd<span class="token punctuation">.</span>read_csv<span class="token punctuation">(</span><span class="token string">'movie_reviews.csv'</span><span class="token punctuation">)</span> </code></pre> <p>接下来,我们可以使用Pandas的head函数来查看前几行数据。以下是查看前5行数据的代码:</p> <pre><code class="prism language-python"><span class="token keyword">print</span><span class="token punctuation">(</span>df<span class="token punctuation">.</span>head<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> </code></pre> <p>输出结果如下:</p> <pre><code class="prism language-python"> label text <span class="token number">0</span> <span class="token number">1</span> One of the other reviewers has mentioned that <span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span> <span class="token number">1</span> <span class="token number">1</span> A wonderful little production<span class="token punctuation">.</span> <span class="token operator"><</span>br <span class="token operator">/</span><span class="token operator">></span><span class="token operator"><</span>br <span class="token operator">/</span><span class="token operator">></span>The<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span> <span class="token number">2</span> <span class="token number">1</span> I thought this was a wonderful way to spend ti<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span> <span class="token number">3</span> <span class="token number">0</span> Basically there's a family where a little boy <span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span> <span class="token number">4</span> <span class="token number">1</span> Petter Mattei's <span class="token string">"Love in the Time of Money"</span> <span class="token keyword">is</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span> </code></pre> <p>可以看到,数据集包含两列,一列是标签,一列是文本。标签为1表示正面评论,标签为0表示负面评论。</p> <p>接下来,我们可以使用Pandas的describe函数来查看数据集的统计信息。以下是查看数据集的统计信息的代码:</p> <pre><code class="prism language-python"><span class="token keyword">print</span><span class="token punctuation">(</span>df<span class="token punctuation">.</span>describe<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> </code></pre> <p>输出结果如下:</p> <pre><code class="prism language-python"> label count <span class="token number">50000.000000</span> mean <span class="token number">0.500000</span> std <span class="token number">0.500005</span> <span class="token builtin">min</span> <span class="token number">0.000000</span> <span class="token number">25</span><span class="token operator">%</span> <span class="token number">0.000000</span> <span class="token number">50</span><span class="token operator">%</span> <span class="token number">0.500000</span> <span class="token number">75</span><span class="token operator">%</span> <span class="token number">1.000000</span> <span class="token builtin">max</span> <span class="token number">1.000000</span> </code></pre> <p>可以看到,数据集包含50,000条评论,其中正面评论和负面评论各占一半。</p> <p>接下来,我们可以使用Pandas的groupby函数来对数据集进行分组。我们可以按照标签来分组,以便查看正面评论和负面评论的数量。以下是按照标签分组的代码:</p> <pre><code class="prism language-python">grouped <span class="token operator">=</span> df<span class="token punctuation">.</span>groupby<span class="token punctuation">(</span><span class="token string">'label'</span><span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span>grouped<span class="token punctuation">.</span>size<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> </code></pre> <p>输出结果如下:</p> <pre><code class="prism language-python">label <span class="token number">0</span> <span class="token number">25000</span> <span class="token number">1</span> <span class="token number">25000</span> dtype<span class="token punctuation">:</span> int64 </code></pre> <p>可以看到,正面评论和负面评论的数量相等。</p> <p>接下来,我们可以使用Pandas的apply函数来对文本数据进行处理。我们可以定义一个函数,该函数可以对每条评论进行处理,并返回处理后的结果。以下是定义处理函数的代码:</p> <pre><code class="prism language-python"><span class="token keyword">import</span> re<span class="token keyword">def</span> <span class="token function">clean_text</span><span class="token punctuation">(</span>text<span class="token punctuation">)</span><span class="token punctuation">:</span>text <span class="token operator">=</span> text<span class="token punctuation">.</span>lower<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment"># 将文本转换为小写</span>text <span class="token operator">=</span> re<span class="token punctuation">.</span>sub<span class="token punctuation">(</span><span class="token string">r'<.*?>'</span><span class="token punctuation">,</span> <span class="token string">''</span><span class="token punctuation">,</span> text<span class="token punctuation">)</span> <span class="token comment"># 删除HTML标签</span>text <span class="token operator">=</span> re<span class="token punctuation">.</span>sub<span class="token punctuation">(</span><span class="token string">r'[^\w\s]'</span><span class="token punctuation">,</span> <span class="token string">''</span><span class="token punctuation">,</span> text<span class="token punctuation">)</span> <span class="token comment"># 删除标点符号</span>text <span class="token operator">=</span> re<span class="token punctuation">.</span>sub<span class="token punctuation">(</span><span class="token string">r'\d+'</span><span class="token punctuation">,</span> <span class="token string">''</span><span class="token punctuation">,</span> text<span class="token punctuation">)</span> <span class="token comment"># 删除数字</span>text <span class="token operator">=</span> re<span class="token punctuation">.</span>sub<span class="token punctuation">(</span><span class="token string">r'\s+'</span><span class="token punctuation">,</span> <span class="token string">' '</span><span class="token punctuation">,</span> text<span class="token punctuation">)</span> <span class="token comment"># 合并多个空格</span><span class="token keyword">return</span> text </code></pre> <p>该函数将文本转换为小写,并删除HTML标签、标点符号、数字和多个空格。接下来,我们可以使用Pandas的apply函数来应用该函数。以下是应用处理函数的代码:</p> <pre><code class="prism language-python">df<span class="token punctuation">[</span><span class="token string">'text'</span><span class="token punctuation">]</span> <span class="token operator">=</span> df<span class="token punctuation">[</span><span class="token string">'text'</span><span class="token punctuation">]</span><span class="token punctuation">.</span><span class="token builtin">apply</span><span class="token punctuation">(</span>clean_text<span class="token punctuation">)</span> </code></pre> <p>该代码将处理后的文本保存回数据集中。</p> <h1> <a id="ChatGPT_120"></a>四、使用ChatGPT生成文本</h1> <p>如何使用ChatGPT来生成文本 ?我们将使用ChatGPT来生成电影评论。</p> <p>首先,我们需要安装和加载必要的库。我们需要安装transformers库和torch库。以下是安装和加载库的代码:</p> <pre><code class="prism language-python">!pip install transformers <span class="token keyword">import</span> torch <span class="token keyword">from</span> transformers <span class="token keyword">import</span> GPT2LMHeadModel<span class="token punctuation">,</span> GPT2Tokenizer </code></pre> <p>接下来,我们需要加载ChatGPT模型和Tokenizer。我们可以使用GPT2LMHeadModel和GPT2Tokenizer类来加载模型和Tokenizer。以下是加载模型和Tokenizer的代码:</p> <pre><code class="prism language-python">model <span class="token operator">=</span> GPT2LMHeadModel<span class="token punctuation">.</span>from_pretrained<span class="token punctuation">(</span><span class="token string">'gpt2'</span><span class="token punctuation">)</span> tokenizer <span class="token operator">=</span> GPT2Tokenizer<span class="token punctuation">.</span>from_pretrained<span class="token punctuation">(</span><span class="token string">'gpt2'</span><span class="token punctuation">)</span> </code></pre> <p>接下来,我们可以使用ChatGPT来生成文本。我们可以定义一个函数,该函数可以接受一个文本输入,并使用ChatGPT来生成下一个单词。以下是定义生成函数的代码:</p> <pre><code class="prism language-python"><span class="token keyword">def</span> <span class="token function">generate_text</span><span class="token punctuation">(</span>input_text<span class="token punctuation">,</span> length<span class="token operator">=</span><span class="token number">50</span><span class="token punctuation">)</span><span class="token punctuation">:</span>input_ids <span class="token operator">=</span> tokenizer<span class="token punctuation">.</span>encode<span class="token punctuation">(</span>input_text<span class="token punctuation">,</span> return_tensors<span class="token operator">=</span><span class="token string">'pt'</span><span class="token punctuation">)</span>output <span class="token operator">=</span> model<span class="token punctuation">.</span>generate<span class="token punctuation">(</span>input_ids<span class="token punctuation">,</span> max_length<span class="token operator">=</span>length<span class="token punctuation">,</span> do_sample<span class="token operator">=</span><span class="token boolean">True</span><span class="token punctuation">)</span><span class="token keyword">return</span> tokenizer<span class="token punctuation">.</span>decode<span class="token punctuation">(</span>output<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">,</span> skip_special_tokens<span class="token operator">=</span><span class="token boolean">True</span><span class="token punctuation">)</span> </code></pre> <p>该函数将输入文本编码为输入ID,并使用ChatGPT来生成下一个单词。生成的文本长度为50个单词。接下来,我们可以使用该函数来生成电影评论。以下是生成电影评论的代码:</p> <pre><code class="prism language-python">input_text <span class="token operator">=</span> <span class="token string">'This movie is'</span> generated_text <span class="token operator">=</span> generate_text<span class="token punctuation">(</span>input_text<span class="token punctuation">)</span> <span class="token keyword">print</span><span class="token punctuation">(</span>generated_text<span class="token punctuation">)</span> </code></pre> <p>输出结果如下:</p> <pre><code class="prism language-python">This movie <span class="token keyword">is</span> a masterpiece of suspense <span class="token keyword">and</span> horror<span class="token punctuation">.</span> The acting <span class="token keyword">is</span> superb<span class="token punctuation">,</span> the direction <span class="token keyword">is</span> flawless<span class="token punctuation">,</span> <span class="token keyword">and</span> the script <span class="token keyword">is</span> </code></pre> <p>可以看到,ChatGPT生成了一条正面评论。</p> <h2> <a id="_158"></a>总结</h2> <p>我们介绍了如何使用ChatGPT和Pandas进行自然语言处理。我们使用Pandas来处理和分析文本数据,并使用ChatGPT来生成文本。我们使用了一个包含电影评论的数据集来演示。我们首先加载数据集,然后使用Pandas的方法来处理和分析数据。接下来,我们加载ChatGPT模型和Tokenizer,并使用ChatGPT来生成电影评论。我们定义了一个生成函数,该函数可以接受一个文本输入,并使用ChatGPT来生成下一个单词。最后,我们使用该函数来生成电影评论。</p> <p><img src="https://img-blog.csdnimg.cn/46a7c973cf8842fcb3b82aa3e8ceab2d.png" alt="请添加图片描述"></p> <center> <span id="diary-tail">↓ ↓ ↓ 加下方名片找我,直接拿源码还有案例 ↓ ↓ ↓</span> </center> </div> <link href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/markdown_views-98b95bb57c.css" rel="stylesheet"> <link href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/style-c216769e99.css" rel="stylesheet"> </div> <div id="treeSkill"></div> <div id="blogExtensionBox" style="width:400px;margin:auto;margin-top:12px" class="blog-extension-box"></div> </article>
ChatGPT+Pandas 联手,打造智能数据分析助手PandasAI,数据分析师也要失业了?!
作者
sockstack
许可协议
CC BY 4.0
发布于
2024-03-02
修改于
2024-12-22
上一篇:软件:常用 Linux 软件汇总,值得收藏
下一篇:ChatGPT资料汇总学习
尚未登录
登录 / 注册
文章分类
博客重构之路
5
Spring Boot简单入门
4
k8s 入门教程
0
MySQL 知识
1
NSQ 消息队列
0
ThinkPHP5 源码分析
5
使用 Docker 从零开始搭建私人代码仓库
3
日常开发汇总
4
标签列表
springboot
hyperf
swoole
webman
php
多线程
数据结构
docker
k8s
thinkphp
mysql
tailwindcss
flowbite
css
前端