
主题是你在计数之前命名的那一个客户想法。评论是帖子下的一条公开回复。账号是一行上的公开名称。账号不是已证实的个人、买家或私人群体。帖子是一条来源帖。社区是该帖所属的 Reddit 群组。你根据已知的帖子地址补上社区。采集程序不会返回它。
一条很长的帖子可以让一个主题看起来很常见。少数账号可能写下大部分“是”评论。这四项计数能显示这种差别。去掉最大的帖子,可以看出第二条帖子里是否仍有该主题。
人们会在公开场合询问客户研究做法。一篇产品营销帖询问做法。一篇SaaS 帖表明,在 Reddit 上做研究很难。这些帖子显示一种需求。它们没有命名这个计数单位。它们没有证明这项检查。它们没有测量一个市场。
计数之前先读各行
Actor 是托管的数据采集程序。本方法使用 Reddit Comments Actor,公开构建 1.0.7。Task 是已保存的输入预设。客户语言研究 Task 只是一个起点。它不能证明这些计数会自行发生。Actor 保存来源行。本方法中的每一次计数都由你完成。
Actor 接受 `postUrls`,用于已知的公开帖子。你可以发送 1 到 50 个帖子 URL。`maxCommentsPerPost` 是单个帖子的上限。上限是你要求 Actor 从该帖保存的评论数量的最大值。上限可以是 1 到 500。默认上限是 100。已保存的 Task 使用 250。第一次检查时,使用一个帖子,并选择上限 3。只在以后再增加帖子。让每个上限都处于同样的限制之内。
已保存的 Task 指向一条示例帖。用你自己的已知公开 URL 替换该示例。
{
"postUrls": [
"https://www.reddit.com/r/LocalLLaMA/comments/1ui241x/the_number_1_public_enemy_of_opensource/"
],
"maxCommentsPerPost": 250
}一条已保存的行,是来源帖下的一条公开评论。你需要 `postId`、`canonicalPostUrl`、`commentId`、`authorName`、`body`、`status` 和 `observedAt`。`canonicalPostUrl` 是来源帖的标准公开地址。正文是评论文本。`observedAt` 是看到该行的时间。数据集中的评论状态只有 ok、deleted 或 removed。运行结果 partial 或 failed 不是评论状态。
正文和 `authorName` 可以为空,也可以是占位。文本 [deleted] 是占位。它不是每一个缺失名称所共用的一个账号。仅当 `authorName` 不为空且不是 [deleted] 时,才把它用作账号键。
当前对一条已知的 AskMarketing 帖做了一次对照检查,范围只有这一条已知帖。这次检查返回了 3 个与来源帖匹配的不同评论 ID。这 3 条的正文中都有文本。另一次单独读取发现 3 个不同的、非空公开作者名。这些名称不保留在这里。全部 3 行上的 `parentId` 和 depth 都是 null。`hiddenBranchesRemaining` 为 null。本方法不需要回复树。null 父项不是回复链接。不要编造一个。缺失的父项也不能告诉你一个人是谁。
OUTPUT 块可以包含 `commentsSaved`、`duplicatesSkipped`、`hiddenBranchesRemaining`、`completionReason`、`status`、`isComplete` 和 `inputResults`。每个输入也可以显示 `commentsFound`、`commentsSaved`、`status` 和 `reason`。在这次 3 行运行中,`isComplete` 为 true,但 status 为 partial。`isComplete` 表示已保存的工作已经完成。partial 表示 Actor 没有保存完整的帖子。一次已完成的运行并不是该帖上的每一条评论。这次运行受到上限限制。它没有测量许多帖子。它没有测量一个主题。输出没有不同作者计数器。你要自己计数账号。
这个 Actor 不返回 `requestedSubreddit` 或 `matchedSubreddit`。另一个 Actor 会返回这些字段。如果你添加社区列,请从已知的 `canonicalPostUrl`,或从你核对过的来源字段复制。写明它来自哪里。该列是你的备注。Actor 不添加主题标签。它不对产品排名。它不会替你建立均衡样本。
执行这八项操作
- 命名一个主题,以及你将使用的帖子。写下哪些文本在该主题之内。写下哪些文本在该主题之外。在计数之前做这些。每条已保存的行是一条已记录评论。同一账号可以写许多评论。许多评论可以位于同一帖子中。
回复很多的帖子可以看起来像一个很大的客户群体。它可能是一次很长的谈话。你的纳入规则和排除规则,用来阻止你在看到最大的帖子之后,再改这个主题包含哪些文本、排除哪些文本。
- 先采集一条已知帖子。阅读每个评论 ID、正文、状态、作者字段和 OUTPUT 块。可编码评论带有你可以阅读并判断的正文文本。把 deleted、removed 和缺失文本排除在主题计数之外。仍要报告你看到了多少这样的行。缺失正文并不表示主题不存在。它表示你不能给该行编码。选择一个固定上限。保留来源中的每一个停止原因。上限是你选择的限制。它不是完整谈话。
先在一个 URL 上把 `maxCommentsPerPost` 设为 3。如果 OUTPUT 的 status 是 partial,就照实说明。不要把一次已完成的运行称为完整总体。这里的总体是该帖上的每一条评论。如果以后添加帖子,把 `postUrls` 保持在 50 或以下。把每个上限保持在 1 到 500。
- 把每个评论 ID 与其来源帖及其 `observedAt` 时间一起保留。如果两行用词相同但 ID 不同,不要合并它们。如果同一个 ID 在不同行之间冲突,就复查这两行。不要只凭用词挑选其中一行。把你无法解决的缺失 ID 单独作为一组来计数。已知账号键必须是不为空、且不是 [deleted] 的 `authorName`。把未知名称和占位留在已知账号集合之外。不要给所有这些行一个共用账号。
- 对可编码文本手工为主题编码。保存该编码、编码者姓名、一个版本和一条简短上下文备注。对每条可编码评论使用“是”或“否”。“是”表示主题存在。“否”表示文本可读且主题不存在。在本方法中,肯定表示“是”。它不表示作者高兴。否定表示“否”。它不表示作者愤怒。不要使用自动情感工具。这里的情感是指工具对感受的猜测。Actor 不会为主题编码。如果你需要回复上下文,就打开公开帖子并阅读它。null 的 `parentId` 不是上下文。
- 从“是”行建立四个集合。评论集合把每个肯定评论 ID 各收录一次。账号集合收录每个至少有一条“是”评论的已知账号。帖子集合收录每个至少有一条“是”评论的帖子。社区集合收录每个至少有一条“是”帖子的社区。在各自的集合内,每个值只计一次。来自一个账号的三条评论是一个账号。在本方法中,一个帖子属于一个社区。这四个集合回答四个问题。它们不估计买家。它们不计沉默读者。
- 为每个集合写下分子和分母。分子是具有该主题的单位数量。分母是你用来做除数的那一组。评论分母是你所选样本中的可编码评论。账号分母是按你的规则至少有一条可编码评论的已知账号。它不是每一个注册用户。在该分数旁边报告未知账号行。报告你使用的上限。帖子分母是你选定的已知帖子。社区分母是你选定的已知社区。这两个分母都不是整个 Reddit。把每一项计划来源计数与每一项可用已观察计数分开保留。计划计数是你选择阅读的帖子数或社区数。可用已观察计数是其中你已取回并且能够编码的数量。如果你不把这些计数分开,就把每个选定分母标为已观察肯定覆盖,并显示每一项未知。已观察肯定覆盖只计数你能够阅读并编码的单位。失败的帖子是未解决覆盖。不可用的帖子是未解决覆盖。完全不可编码的帖子是未解决覆盖。失败的社区是未解决覆盖。不可用的社区是未解决覆盖。完全不可编码的社区是未解决覆盖。未解决覆盖不是真阴性。真阴性表示你看到了该单位,并且主题不存在。一条未完整采集的帖子,可能会漏掉一部分文本。如果取回的文本中没有该主题,则在取回的样本中没有观察到该主题。该结果并不表明该主题不存在。
很高的评论比例可能来自一个发帖许多次的账号。账号比例可以看起来更小,因为该名称只计一次。很高的帖子比例仍可能位于一个社区之内。把四个比例放在一起阅读。
- 按选定帖子所持有的“是”评论数量为它们排序。只去掉排在最前的帖子,然后再次计数全部四个单位。这是留一帖检查。它显示你的结论是否依赖那一个帖子。它不是显著性检验。显著性检验要问的是,是否仅凭随机变动就能造成这个差距。这项检查不做显著性检验。这并不表示被去掉的帖子是不良数据。比较之后,把该帖放回最终采集到的记录集合。加上一条简短的影响备注,说明改变了什么。
分别比较每个单位。当一个帖子持有大部分“是”行时,评论占比可以大幅下降。账号占比的变动可以不同,因为重复发帖已经算作一个账号。帖子占比会在分子和分母中都失去该帖。当该社区中另一条选定帖子仍有该主题时,社区占比可以保持不变。
- 公布一张证据分布表和一条简短结论。证据分布是并排的四个比例。说明有多少评论、账号、帖子和社区带有该主题。说明去掉最前的帖子之后还剩下什么。只存在于一个帖子中的主题,仍可以从用词中让你学到东西。那是定性证据。它的广度弱。广度是有多少彼此分开的来源相一致。用该结果来计划更多研究。不要声称市场规模。不要声称客户中的多数。不要用这些比例给功能排名。
一份虚构的九条评论底账
下面各表是原创虚构。它们用来讲授这套算术。它们不是 Actor 结果。它们不是那份 3 行样本。该样本没有主题编码。这些评论 ID 是虚构标签。这份底账不显示 Actor 上限。在真实运行中,报告你的上限以及任何 partial 停止。
这份虚构有九条可编码评论。它们来自三个已知帖子:T1、T2 和 T3。T1 和 T2 位于社区 Q1。T3 位于社区 Q2。肯定表示主题存在。否定表示在你能阅读的文本上,主题不存在。
| 行 | 评论 ID | 帖子 | 社区 | 账号 | 正文状态 | 主题 |
|---|---|---|---|---|---|---|
| 1 | C1 | T1 | Q1 | A | 可编码 | 肯定 |
| 2 | C2 | T1 | Q1 | A | 可编码 | 肯定 |
| 3 | C3 | T1 | Q1 | A | 可编码 | 肯定 |
| 4 | C4 | T1 | Q1 | B | 可编码 | 肯定 |
| 5 | C5 | T1 | Q1 | C | 可编码 | 肯定 |
| 6 | C6 | T2 | Q1 | A | 可编码 | 肯定 |
| 7 | C7 | T2 | Q1 | D | 可编码 | 否定 |
| 8 | C8 | T3 | Q2 | E | 可编码 | 否定 |
| 9 | C9 | T3 | Q2 | F | 可编码 | 否定 |
还有一行只用于可用性。它在这九条可编码评论之外。
| 行 | 评论 ID | 帖子 | 社区 | 账号 | 正文状态 | 主题 |
|---|---|---|---|---|---|---|
| 10 | R1 | 不在各集合中 | 不在各集合中 | 未知 | removed | 未编码 |
R1 不是第十条可编码评论。它不是一条否定。未知作者不是第七个已知账号。不要把 [deleted] 当作共用键。这份虚构没有把 R1 放在 T1、T2 或 T3 上。缺失正文并不表示主题不存在。报告一行正文为 removed、账号未知的记录。只把它保留在可用性计数中。
已知账号名称空间只有 A、B、C、D、E 和 F。这里的名称空间,是允许进入账号计数的名称集合。A 的重复仍是一个名称。R1 不增加任何名称。
完整评论集合:C1、C2、C3、C4、C5、C6。评论分母是从 C1 到 C9。
可编码评论中,9 条里有 6 条为肯定,即 66.7%。
完整账号集合:A、B、C。A 写了四条可编码评论。三条在 T1 上。一条在 T2 上。A 仍是一个账号。账号分母是 A、B、C、D、E 和 F。
已知可编码账号中,6 个里有 3 个为肯定,即 50%。
R1 留在这个分母之外。
完整帖子集合:T1、T2。帖子分母是 T1、T2 和 T3。
选定帖子中,3 个里有 2 个为肯定,即 66.7%。
完整社区集合:Q1。T3 在 Q2 中,而且 Q2 的两条评论都是否定。社区分母是 Q1 和 Q2。
选定社区中,2 个里有 1 个为肯定,即 50%。
这四个比例只描述选定样本。它们不是该主题在全体客户中的占比。全体中的占比,是指该主题在所有客户中的份额。你并未选定全体客户。
T1 持有六条肯定评论中的五条。这五条是 C1、C2、C3、C4 和 C5。
6 条中有 5 条 = 83.3%。
T1 是主导帖。主导表示它持有最多的“是”评论。
现在去掉 T1,再计数一次。剩余的可编码评论是 C6、C7、C8 和 C9。唯一剩余的肯定评论是 C6。账号 A 在 T2 上写下了它。
剩余评论集合:C6。分母是 C6、C7、C8 和 C9。
剩余可编码评论中,4 条里有 1 条为肯定,即 25%。
剩余的已知账号是 A、D、E 和 F。B 和 C 离开这个分母。他们仅有的可编码评论都在 T1 上。不要在这项检查中保留 B 或 C。不要加入来自 R1 的未知作者。A 是唯一剩余的肯定账号。A 仍然只计一次。
剩余账号集合:A。分母是 A、D、E 和 F。
剩余已知账号中,4 个里有 1 个为肯定,即 25%。
剩余帖子是 T2 和 T3。T2 仍为肯定。T3 不是。
剩余帖子集合:T2。分母是 T2 和 T3。
剩余帖子中,2 个里有 1 个为肯定,即 50%。
剩余社区仍然是 Q1 和 Q2。Q1 保持肯定,因为 T2 在 Q1 中。Q2 保持否定。
剩余社区集合:Q1。分母是 Q1 和 Q2。
剩余社区中,2 个里有 1 个为肯定,即 50%。
| 单位 | 完整样本 | 去掉 T1 |
|---|---|---|
| 肯定评论 | 9 中有 6 = 66.7% | 4 中有 1 = 25% |
| 肯定的已知账号 | 6 中有 3 = 50% | 4 中有 1 = 25% |
| 肯定帖子 | 3 中有 2 = 66.7% | 2 中有 1 = 50% |
| 肯定社区 | 2 中有 1 = 50% | 2 中有 1 = 50% |
每个单位因不同的原因而变动。评论比例从 66.7% 降到 25%。T1 持有五条“是”评论。T2 上还剩一条“是”评论。账号比例从 50% 降到 25%。B 和 C 随 T1 离开。A 仍然留下,且只计一次。A 在 T1 上的三条发言不是三个账号。帖子比例从 66.7% 降到 50%。你从分子和分母两边都去掉 T1。T2 仍然符合条件。社区比例保持在 50%。Q1 仍有 T2。去掉 T1 并不会去掉 Q1。
该主题仍出现在第二个帖子中。它的评论频次由 T1 主导。比较时暂时去掉 T1,但把 T1 保留在最终采集到的记录集合中。影响备注应当说出两个事实。T1 提供了 6 条肯定评论中的 5 条。该主题在 T2 上仍出现一次。
R1 在两次计数中都仍是一条可用性备注。它从不变成一张“否”票。它从不变成一个账号。
这份虚构的有界结论范围很窄。在这些选定帖子中,评论率看起来高,主要是因为 T1。该主题存在于 6 个已知账号中的 3 个。它存在于 3 个帖子中的 2 个。它存在于 2 个社区中的 1 个。去掉 T1 之后,它仍存在于 1 个账号、1 个帖子和 1 个社区。这是继续研究的一条线索。它不是客户中的多数。它不是功能排名。
来源和延伸阅读
作者 Chronometrica · 更新日期
返回顶部 ↑

