核心要点
本教程将指导您如何使用Python和OpenAI API对数据进行数据挖掘和分析。
手动分析数据集以提取有用数据,甚至使用简单的程序执行相同的操作,通常会变得复杂且耗时。幸运的是,借助OpenAI API和Python,可以系统地分析数据集以获取有趣的信息,而无需过度设计代码和浪费时间。这可以用作数据分析的通用解决方案,无需使用不同的方法、库和API来分析不同类型的数据和数据集中的数据点。
让我们逐步了解如何使用OpenAI API和Python分析您的数据,首先是如何进行设置。
设置
要通过Python使用OpenAI API挖掘和分析数据,请安装openai和pandas库:
pip3 install openai pandas
完成此操作后,创建一个新文件夹,并在新文件夹中创建一个空的Python文件。
分析文本文件
在本教程中,我认为让Python分析英伟达最新的财报电话会议会很有趣。
下载我从The Motley Fool获得的最新英伟达财报电话会议记录,并将其移动到您的项目文件夹中。
然后打开您的空Python文件并添加此代码。
该代码读取您下载的英伟达财报记录,并将其作为transcript变量传递给extract_info函数。
extract_info函数将提示和记录作为用户输入传递,以及temperature=0.3和model="gpt-3.5-turbo-16k"。它使用“gpt-3.5-turbo-16k”模型的原因是它可以处理此记录等大型文本。该代码使用openai.ChatCompletion.create端点获取响应,并将prompt和transcript变量作为用户输入传递:
completions = openai.ChatCompletion.create( model="gpt-3.5-turbo-16k", messages=[ {"role": "user", "content": prompt+"\n\n"+text} ], temperature=0.3, )
完整的输入将如下所示:
<code>从文本中提取以下信息: 英伟达的收入 英伟达本季度做了什么 关于人工智能的评论 英伟达财报记录在此处</code>
现在,如果我们将输入传递给openai.ChatCompletion.create端点,完整的输出将如下所示:
pip3 install openai pandas
如您所见,它返回文本响应以及请求的令牌使用情况,如果您正在跟踪支出和优化成本,这将非常有用。但由于我们只对响应文本感兴趣,因此我们通过指定completions.choices[0].message.content响应路径来获取它。
如果您运行代码,您应该会得到与下面引用的内容类似的输出:
从文本中,我们可以提取以下信息:
- 英伟达的收入:在2024财年第二季度,英伟达报告创纪录的第二季度收入为135.1亿美元,环比增长88%,同比增长101%。
- 英伟达本季度做了什么:英伟达在各个领域都取得了显着增长。他们在数据中心部门的收入创下纪录,环比增长141%,同比增长171%。他们的游戏部门也实现了增长,收入环比增长11%,同比增长22%。此外,他们的专业可视化部门的收入环比增长了28%。他们还宣布与Snowflake、ServiceNow、埃森哲、Hugging Face、VMware和软银等公司建立合作伙伴关系和合作关系。
- 关于人工智能的评论:英伟达强调了对其人工智能平台和加速计算解决方案的强劲需求。他们提到了主要云服务提供商和消费互联网公司部署其HGX系统的情况。他们还讨论了生成式人工智能在各个行业的应用,例如营销、媒体和娱乐。英伟达强调了生成式人工智能创造新的市场机遇和提高不同部门生产力的潜力。
如您所见,代码提取了提示中指定的信息(英伟达的收入、英伟达本季度做了什么以及关于人工智能的评论)并打印出来。
分析CSV文件
分析财报电话会议记录和文本文件很酷,但是要系统地分析大量数据,您需要使用CSV文件。
作为一个工作示例,下载此Medium文章CSV数据集并将其粘贴到您的项目文件中。
如果您查看CSV文件,您会看到它具有“作者”、“点赞数”、“阅读时间”、“链接”、“标题”和“文本”列。为了使用OpenAI分析媒体文章,您只需要“标题”和“文本”列。
在您的项目文件夹中创建一个新的Python文件,然后粘贴此代码。
此代码与我们用于分析文本文件的代码略有不同。它逐行读取CSV,提取指定的信息片段,并将它们添加到新列中。
在本教程中,我选择了一个Medium文章的CSV数据集,我从Kaggle上的HSANKESARA那里获得。此CSV分析代码将使用CSV文件的“标题”和“文章”列查找每篇文章的整体基调和主要教训/要点。由于我总是在Medium上遇到点击诱饵文章,所以我认为让它通过为每篇文章提供0到3的“点击诱饵评分”(0表示无点击诱饵,3表示极度点击诱饵)来判断每篇文章的“点击诱饵”程度也很有趣。
在我解释代码之前,分析整个CSV文件将花费太长时间并消耗过多的API积分,因此在本教程中,我使代码仅使用df = df[:5]分析前五篇文章。
您可能对代码的以下部分感到困惑,因此让我解释一下:
pip3 install openai pandas
此代码迭代CSV文件中的所有文章(行),并在每次迭代时获取每篇文章的标题和正文,并将其传递给我们之前看到的extract_info函数。然后,它使用以下代码将extract_info函数的响应转换为列表以使用此代码分离不同的信息片段:
completions = openai.ChatCompletion.create( model="gpt-3.5-turbo-16k", messages=[ {"role": "user", "content": prompt+"\n\n"+text} ], temperature=0.3, )
接下来,它将每个信息片段添加到列表中,如果出现错误(如果没有值),则将“无结果”添加到列表中:
<code>从文本中提取以下信息: 英伟达的收入 英伟达本季度做了什么 关于人工智能的评论 英伟达财报记录在此处</code>
最后,在for循环结束后,包含提取信息的列表将插入到CSV文件中的新列中:
{ "choices": [ { "finish_reason": "stop", "index": 0, "message": { "content": "实际响应", "role": "assistant" } } ], "created": 1693336390, "id": "request-id", "model": "gpt-3.5-turbo-16k-0613", "object": "chat.completion", "usage": { "completion_tokens": 579, "prompt_tokens": 3615, "total_tokens": 4194 } }
如您所见,它将列表添加到名为“Tone”、“Main_lesson_or_point”和“Clickbait_score”的新CSV列中。
然后使用index=False将它们附加到CSV文件中:
for di in range(len(df)): title = titles[di] abstract = articles[di] additional_params = extract_info('Title: '+str(title) + '\n\n' + 'Text: ' + str(abstract)) try: result = additional_params.split("\n\n") except: result = {}
必须指定index=False的原因是避免每次将新列附加到CSV文件时都创建新的索引列。
现在,如果您运行Python文件,等待它完成并在CSV文件查看器中检查我们的CSV文件,您将看到新列,如下图所示。
如果您多次运行代码,您会注意到生成的答案略有不同。这是因为代码使用temperature=0.3为其答案添加一些创造性,这对于点击诱饵等主观主题非常有用。
处理多个文件
如果您想自动分析多个文件,则需要首先将它们放在一个文件夹中,并确保该文件夹仅包含您感兴趣的文件,以防止您的Python代码读取不相关的文件。然后,使用pip3 install glob安装glob库,并使用import glob在您的Python文件中导入它。
在您的Python文件中,使用此代码获取数据文件夹中所有文件的列表:
try: result = additional_params.split("\n\n") except: result = {}
然后将执行分析的代码放在for循环中:
try: apa1.append(result[0]) except Exception as e: apa1.append('No result') try: apa2.append(result[1]) except Exception as e: apa2.append('No result') try: apa3.append(result[2]) except Exception as e: apa3.append('No result')
在for循环中,像这样读取文本文件的每个文件的内容:
df = df.assign(Tone=apa1) df = df.assign(Main_lesson_or_point=apa2) df = df.assign(Clickbait_score=apa3)
对于CSV文件,也像这样:
df.to_csv("data.csv", index=False)
此外,请确保使用类似以下内容将每个文件分析的输出保存到单独的文件中:
data_files = glob.glob("data_folder/*")
结论
请记住试验您的temperature参数并根据您的用例进行调整。如果您希望AI生成更具创造性的答案,请提高temperature值;如果您希望它生成更具事实性的答案,请确保降低它。
OpenAI和Python数据分析的结合除了文章和财报电话会议记录分析之外还有许多应用。例如包括新闻分析、书籍分析、客户评论分析等等!也就是说,当在大型数据集上测试您的Python代码时,请确保仅在完整数据集的一小部分上测试它,以节省API积分和时间。
关于用于Python数据分析的OpenAI API的常见问题 (FAQs)
OpenAI API是一个强大的工具,允许开发人员访问和利用OpenAI模型的功能。它的工作原理是向API端点发送请求,然后API端点处理请求并返回输出。API可用于各种任务,包括文本生成、翻译、摘要等等。它的设计易于使用,具有简单的界面和清晰的文档。
OpenAI API可通过利用其机器学习功能来进行数据分析。例如,您可以使用它来分析文本数据、提取见解和进行预测。您可以使用您的数据向API发送请求,它将返回分析结果。这可以使用Python完成,因为API支持Python集成。
使用OpenAI API进行数据分析具有多种好处。首先,它允许您利用机器学习的强大功能,而无需构建和训练您自己的模型,从而节省您的时间和资源。其次,它可以处理大量数据并提供可能难以手动获得的见解。最后,它灵活且可用于各种数据分析任务。
将OpenAI API与Python集成非常简单。您需要安装OpenAI Python客户端,这可以使用pip完成。安装完成后,您可以在Python脚本中导入OpenAI库并使用它向API发送请求。您还需要设置您的API密钥,您可以从OpenAI网站获取。
OpenAI API可用于各种任务。例如,它可用于文本生成,它可以根据提示生成类似人类的文本。它还可用于翻译、摘要和情感分析。在数据分析的背景下,它可用于分析文本数据、提取见解和进行预测。
虽然OpenAI API功能强大,但它确实有一些限制。例如,对您每分钟可以向API发送的请求数量有限制。此外,API不是免费的,如果您正在处理大量数据,成本可能会增加。最后,虽然API通常是准确的,但它并非完美无缺,结果应作为更广泛的分析策略的一部分使用。
如果您在使用OpenAI API时遇到问题,您可以采取以下几个步骤。首先,检查错误消息,因为它通常会提供有关问题原因的线索。您还可以参考API文档,其中提供了有关如何使用API和排除常见问题的详细信息。如果您仍然遇到问题,您可以联系OpenAI社区寻求帮助。
OpenAI API的设计考虑了安全性。发送到API的所有数据都在传输过程中进行加密,并且OpenAI制定了严格的策略来保护您的数据。但是,与任何在线服务一样,务必负责任地使用API并遵循数据安全最佳实践。
是的,您可以将OpenAI API用于商业用途。但是,您应该知道使用API会产生成本,并且您应该查看API的服务条款以确保您预期的用途符合规定。
OpenAI API的未来是光明的。OpenAI正在不断改进其模型并扩展API的功能。随着机器学习和人工智能的不断发展,我们可以预期API将变得更加强大和多功能。
以上是如何使用OpenAI API在Python中进行数据分析的详细内容。更多信息请关注PHP中文网其他相关文章!