使用Python和ChatGPT构建您的关键字工具:Subreddit见解指南

使用Python和ChatGPT构建您的关键字工具:Subreddit见解指南
2023年11月27日 14:29 SEO_SEM营销顾问大师

Reddit 拥有大量用户生成的内容,是 SEO 见解的潜在金矿。然而,手动分析如此大量的数据以提取有价值的信息可能既耗时又低效。

本指南介绍如何使用 ChatGPT 和 Notable 插件自动化该过程。我们将进行必要的工具设置、数据提取和分析,以从 Reddit 中获取可行的见解,从而增强您的 SEO 策略。

通过继续学习,您将学会克服 Reddit 的手动分析障碍,使数据为您服务。此外,您将更好地了解市场趋势和消费者兴趣,从而做出更明智的数字营销决策。

导航 Reddit API 访问:密钥、身份验证和速率限制

我遇到的许多 SEO 专业人士不具备技术倾向,并且可能不熟悉应用程序编程接口 (API)。如果您熟悉 API,请跳至“获取 Reddit API 密钥的分步指南”部分。否则,让我们深入研究一下。

什么是 API 密钥?

API 密钥类似于识别谁请求 API 的唯一密码。它帮助 API 服务管理访问、跟踪使用情况并确保安全。

速率限制和 API 配额

API 速率限制是一种控制机制,定义用户或应用程序在指定时间范围内可以向 API 发出多少请求。这可以防止用户或应用程序过载,从而确保服务保持稳定并可供所有用户使用。

Reddit 提到客户端每分钟最多可以发出 60 个请求。但是,由于我们将在本文中使用 Python Reddit API 包装器 ( PRAW) ,因此了解此 Python 包的速率限制非常重要。

根据PRAW 的文档,速率限制遵循 Reddit 关于您可以发出请求的频率的规则。如果您达到限制,图书馆会在进行第二次尝试之前等待一段时间。但是,如果 Reddit 指示等待时间超过设置的最大等待时间,PRAW 将停止并显示错误。

获取 Reddit API 密钥的分步指南

如果您尚未创建 Reddit 帐户,请先创建。注册后,登录并继续执行以下步骤以导航至应用程序首选项页面。

访问应用程序首选项:

单击位于 Reddit 主页右上角的个人资料图标。

从下拉菜单中选择“用户设置”。

单击用户设置页面上的“安全和隐私”选项卡。

向下滚动,直到看到“应用程序权限”部分。点击“管理第三方应用程序授权”。

下面的屏幕截图提供了这些步骤的视觉指南。

创建一个新应用程序:

在“应用程序首选项”页面上,找到并单击标有“您是开发人员吗?创建应用程序...”的按钮。

2. 您将看到“创建应用程序”表单。

对于“名称”,输入您的应用程序的名称。

在“应用程序类型”下拉列表中,选择“脚本”。

为您的应用程序提供简短的“描述”。(这是可选的,但可以根据需要填写。)

在“重定向 uri”字段中,输入“http://localhost:8080”。

  1. 填写必要的字段后,单击表单底部的“创建应用程序”按钮。
  2. 在下一个屏幕上,查找您的“客户端 ID”和“密钥”。

配置您的 Noteable 工作区

获得必要的 API 密钥后,我们现在将继续设置您的 Noteable 工作区,以促进通过 ChatGPT 与 Reddit 的顺利交互。您可以使用此链接查看生成本文中介绍的结果的主聊天。

在 ChatGPT 中安装 Noteable 插件

使用三点按钮打开屏幕左下角的菜单。导航到“设置和测试版”部分,选择“测试版功能”,然后打开插件的切换按钮。

现在,进入ChatGPT的插件模式,打开插件商店,然后在下拉菜单中搜索Noteable插件。单击“安装”按钮导航至Noteable 网站上的登录页面,您可以在其中注册新帐户或登录现有帐户。

创建帐户并登录后,您将被重定向到 ChatGPT 的页面。通过选中下拉菜单中旁边的框来激活 Noteable 插件。

在 Noteable 上安全存储和共享凭证的最佳实践

将 API 密钥保留在 Noteable 上至关重要。我强烈建议使用此方法,而不是通过 ChatGPT 直接共享您的 API 密钥。通过将它们存储为环境变量,您可以以编程方式访问密钥,而无需暴露代码中的实际值,从而使过程更加安全。

此步骤涉及创建 PRAW 包所需的两个秘密值,我们将其命名为 REDDIT_CLIENT_ID 和 REDDIT_SECRET_KEY。首先转到Noteable 应用程序的仪表板。您可以在左侧菜单中看到“资源”部分。在此部分下,单击“秘密”。然后,单击“创建秘密”按钮。

在“名称”字段中,输入名称,例如 REDDIT_CLIENT_ID,然后在“值”字段中粘贴您的客户端 ID。将可见性设置为私有,并对您的密钥执行相同的过程,将其命名为 REDDIT_SECRET_KEY 并输入我们之前获得的密钥。现在,我们准备好继续工作的主要部分,我们将制作一个从 Reddit 提取数据的提示。

为 Subreddit 查询制作有效的提示

现在,有趣的部分开始了。在本节中,我将向您展示如何构造单个提示,以简化的方式产生所需的输出。您的目标是生成一个 Excel 文件,其中包含 Reddit 子版块中的 200 个问题标题和问题正文。

但首先,你必须了解提示背后的逻辑

对于此任务,ChatGPT 需要检索我们与 Noteable 共享的密钥(REDDIT_CLIENT_ID 和 REDDIT_SECRET_KEY),您可以通过Python 中的“os”模块获取这些密钥。

我们将使用 PRAW 包(Reddit API 的 Python 包装器)与 Reddit 交互并提取所需的数据。PRAW 通过遵循 Reddit 的 API 规则处理连接和检索,简化了对 Reddit 数据的访问。为了创建、操作提取的数据并将其保存到 DataFrame 中,然后保存到 Excel 文件中,我们要求 ChatGPT 使用Pandas 库及其依赖项。

此外,提示还包括管理活动内核的指南。在这种情况下,“内核”是指运行代码的笔记本引擎的实例。管理内核对于确保有效利用 Noteable 工作区中的资源非常重要。这与可能同时运行多个计算或任务的 Noteable 工作区相关。当达到活动内核的限制时,有必要关闭内核以释放资源并确保任务的顺利执行。

您还需要指定您是否想要 Subreddit 的最新或表现最好的帖子。然后,定义如何构造电子表格、列和提取的数据。

为了简单起见,我建议使用以下列:

问题标题

问题体

短链接

点赞分数

评论数

数据提取提示示例

下面是包含上述要点的提示示例。您可以复制此提示,用所需信息替换占位符,然后将其粘贴到 ChatGPT 界面中以启动数据提取过程:

“请使用 PRAW 软件包从{subreddit name}subreddit检索{输入数量}{最新或最热门}帖子(确保安装了 PRAW)。对于每篇帖子,提取问题标题(将列命名为“问题标题” )、问题正文(将列命名为“问题正文”)、短链接、点赞分数和评论数。收集完这些数据后,将其存储在 Pandas DataFrame 中,并将索引重置为从 1 开始(而不是默认 0). 将数据保存到名为“{file-name}.xlsx”的 Excel 文件中。确保 Excel 文件不包含索引列。存储数据后,提供前三行的预览。

导入“os”模块以访问环境变量并从我与 Noteable 共享的机密中检索以下值:

REDDIT_CLIENT_ID

REDDIT_SECRET_KEY

当达到活动内核的限制时,您可以关闭任何内核。”

这结束了我们项目的数据提取部分。输入提示后,ChatGPT 将需要几分钟时间来完成任务。尽管您可以从 Noteable 应用程序的仪表板下载 Excel 文件,但这对于进度来说是可选的。

从 Reddit 中提取常用单词和短语

在这里,您将学习如何指示 ChatGPT 从 Excel 文件中提取最重复的 1 字、2 字和 3 字查询。此分析可深入了解所分析的 Reddit 子版块中最常用的单词,有助于发现流行主题。结果将是一个包含三个选项卡的 Excel 工作表,每个选项卡对应一种查询类型。

构建提示:解释图书馆和资源

在此提示中,我们将指示 ChatGPT 读取 Excel 文件,操作其数据,并使用 Pandas 库将结果保存在另一个 Excel 文件中。为了进行更全面、更准确的分析,请结合“问题标题”和“问题文本”列。这种合并提供了更丰富的数据集用于分析。

下一步是将大块文本分解为单个单词或单词集,这个过程称为标记化。NLTK 库可以有效地处理这个问题。

此外,为了确保标记化仅捕获有意义的单词并排除常见单词或标点符号,提示将包括使用 NLTK 工具(如 RegexpTokenizer 和 stopwords)的说明。

为了增强过滤过程,我们的提示指示 ChatGPT 创建 50 个补充停用词的列表,过滤掉可能在 Reddit 子版讨论中流行但不包含在 NLTK 停用词中的口语短语或常见表达方式。此外,如果您希望排除特定单词,您可以手动创建一个列表并将其包含在提示中。

清理数据后,使用集合模块中的 Counter 类来识别最常出现的单词或短语。将结果保存在名为“combined-queries.xlsx”的新 Excel 文件中。该文件将包含三个不同的工作表:“一个词查询”、“两个词查询”和“三个词查询”,每个表都显示查询及其提及频率。

构建提示可确保高效的数据提取、处理和分析,利用每个阶段最合适的 Python 库。

测试数据提取示例提示以及改进建议

下面是一个捕获上述要点的提示示例。要使用此提示,只需将其复制并粘贴到 ChatGPT 中即可。需要注意的是,您无需严格遵守此提示;请随意根据您的具体需求进行修改。

“让我们从名为“ {file-name}.xlsx”的 Excel 文件中提取最重复的 1 字、2 字和 3 字查询。使用 Pandas 等 Python 库进行数据操作。

首先阅读 Excel 文件并合并“问题标题”和“问题文本”列。安装并使用 NLTK 库及其必要的资源(如 Punkt)进行标记化,确保标点符号和其他非字母数字字符在此过程中被过滤掉。对组合文本进行分词以生成单字、双字和三字查询。

在分析频率之前,使用 NLTK 库过滤掉常见的停用词。除了 NLTK 停用词之外,还包含 50 个常见助动词、缩写和口语短语的额外停用词列表。此附加列表应重点关注“我愿意”、“我应该”、“我不”等短语,并与 NLTK 停用词一起使用。

清理数据后,使用集合模块中的 Counter 类来确定最频繁的单字、双字和三字查询。

将结果保存在名为“combined-queries.xlsx”的新 Excel 文件中的三个单独的工作表中。这些工作表应命名为“单字查询”、“双字查询”和“三字查询”。每张表都应列出查询以及它们在 Reddit 上被提及的次数。

显示 3 个表中前 5 个查询的列表及其每组的计数。”

优化关键字数量以加快输出速度

从许多问题中提取数据时,请考虑请求更少的关键字作为输出,以加快该过程。例如,如果您已从 400 个问题中提取数据,您可能会要求 ChatGPT 仅显示前 3 个关键字。如果您想查看更多关键字,只需下载该文件即可。这种方法将减少 ChatGPT 的处理时间。

精简直接输出的提示

如果您继续遇到中断,但对了解工作流程不感兴趣,请考虑在提示末尾添加以下行:“无需任何解释;只需提供输出”。该指令指示 ChatGPT 专注于提供所需的输出。

通过 ChatGPT 获得数据驱动的 SEO 见解

现在,您已经准备了两个数据集;第一个是问题列表及其 URL、评论数量和点赞数。同时,第二个是单字、双字和三字查询的列表。

要使用 ChatGPT 分析或可视化此数据,请使用 Noteable 插件或从 Noteable 应用程序下载 Excel 文件并将其上传到 ChatGPT 数据分析工具。对于本指南,请继续使用 Noteable 插件以保持同一聊天中的一致性。

ChatGPT 的关键字洞察和可视化机会

快速关键词分析和构思

要求 ChatGPT 无需编码即可审查数据,以从数据中提取见解。示例提示可能是:

“使用 Noteable 插件,检索最热门的{number}个两个词查询。然后,作为使用 ChatGPT-4 的 SEO 专家,分析这些关键字,并为管理专注于最新 {topic} 趋势的网站的 SEO 专业人员提供见解。 ”

下面的屏幕截图显示了结果可能是什么样子:

有多种方法可以查询 ChatGPT 以获得见解。您还可以执行以下两项任务:

缺口分析

将此列表中的关键字与您当前在网站或内容上定位的关键字进行比较。这种比较可以帮助您识别当前 SEO 策略中的差距或机会。您可以使用类似于以下内容的提示来完成此任务:

“下面是我为网站定位的关键字列表。将它们与文件{file-name}每张表上排名前 30 的关键字进行比较,并找出我的关键字研究中的差距或机会。”

下面的屏幕截图显示了提示的外观:

ChatGPT 将审查您的关键字,将其与提取的数据进行比较,并提供见解。以下屏幕截图显示了此差距分析任务的示例输出。

关键词数据的可视化探索

除了直接分析之外,数据集的可视化分析还可以增强对关键词分布的理解。以下是三种值得探索的创造性方法:

创建词云

词云提供了一种快速查看数据集中最突出的关键字的方法。这种形式的可视化对于搜索引擎优化或数字营销人员很有帮助,因为它可以快速洞察主导对话的术语。

以下是您可以在 ChatGPT 中通过 Noteable 插件使用的示例提示:

“根据“问题标题”和“问题文本”列的组合内容,使用 matplotlib 和尺寸为 800 x 600 的词云生成词云。如果需要,可以通过访问{输入第一个 excel 的名称来重新定义必要的变量在此提交}。”

结果可能如下所示:

生成树状图

另一种引人入胜的数据可视化方式是通过树形图。树状图提供了关键字频率的直观表示,一目了然。树状图中每个块的大小对应于它所代表的关键字的频率。因此,较大的块表示更常出现的关键字。

该见解可帮助 SEO 和数字营销专业人士确定哪些关键词在 Reddit 上获得更多关注。以下是您可以在 ChatGPT 中通过 Noteable 插件使用的示例提示:

“创建一个数据集,以可视化三个关键字组中每组中的前 5 个关键字(不包括关键字“{1}”和“{2}”),总共 15 个单词。可视化应该是一个树形图,其中大小每个块的 代表关键字的频率。在聊天界面中显示该图。虽然建议使用 Squarify 库,但如果其他合适的可视化库提供更好的结果,请考虑其他合适的可视化库。”

以下是此练习的结果示例:

关键词共现分析

关键词共现分析是另一种富有洞察力的探索方法。此分析有助于了解特定关键字一起出现的频率,显示常见的主题分组或关键字之间的关联。

以下是在 ChatGPT 上使用 Noteable 插件的示例提示:

“使用‘{输入第一个文件的名称}.xlsx’数据集,将‘问题标题’和‘问题正文’列组合起来形成文本语料库。使用 NLTK 库对文本进行标记,过滤掉常见的停用词、非字母数字字符和关键字{1}、{2}、{3}。计算窗口大小为 5 个单词的前 20 个关键字的关键字共现矩阵。使用 seaborn 库的热图可视化该矩阵。

下面是结果的示例:

结论:从 Reddit 获取关键字见解比以往任何时候都更容易。

从 Reddit 等庞大数据池中提取关键词洞察时,传统工具往往存在不足。本指南为您提供了一种使用 ChatGPT 和 Noteable 构建自己的工具的简单方法,无需任何编码技能。现在,您可以发现与受众产生共鸣的有价值的关键字,从而增强您的搜索引擎优化和内容策略以获得竞争优势。

0条评论|0人参与网友评论
最热评论

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部