将所有对话转储到文件和结构化数据中

这个问题与以下问题类似:Does Discourse support export conversations as an organized bulk of data?

但我们需要一种方法,对我们 Discourse 站点的所有对话进行自然语言处理(NLP)。我们团队中有人提出,是否可以通过在后台底层进行操作来实现,例如导出数据库但不包含表结构,使用类似 pg_dump --schema-only 的命令。我并没有完全理解同事的意思,但我想也许您能明白。

如果您是自托管的,那么他们可以执行他们认为有帮助的 pg_dump 命令。

您还可以通过 Data Explorer 插件 以多种格式导出数据。

这个插件似乎提供了我们所需的大部分功能!谢谢!

所以我安装了该插件,并查看了 (Superseded) What cool data explorer queries have you come up with? 上执行的所有查询,但似乎没有任何查询能够导出实际的对话内容。例如,我查询了活跃度最高的前 100 个主题。我得到了包含主题 ID 的数据库条目(见截图),但没有对话内容。这是因为该插件仅用于从数据库中提取数据,而无法获取对话本身吗?如果是这样,有没有办法利用从数据库中提取的信息,将这些主题 ID 对应的对话以 JSON 文件的形式导出?这些主题 ID 正是由该插件从数据库中获取的。

SELECT * FROM posts WHERE topic_id=425

这将返回你查询中的第一个主题的帖子(假设我能在手机上输入)。

但如果你想要的是 JSON 格式,可以这样做:

  https://meta.discourse.org/t/dump-all-conversations-in-a-file-and-structured-data/202351.json

我不太理解您的第一个选项,是不是文本中有笔误?您的意思是我只会获取该主题的第一条帖子吗?

关于第二个带有 .json 扩展名的选项,是否有使用 topic_id 或其他参数的替代 URL?这样可以用更程序化的方式获取对话的 JSON 数据,而无需知道主题标题。

你试过那个 SQL 查询了吗?有报错吗?编辑:我检查了一下。该查询会返回主题中的所有帖子。

你只需提供主题 ID 即可获取任意主题。

https://meta.discourse.org/t/-/202351.json

查询本身没问题,我只是误解了你对它实际功能的解释。感谢再次确认。这些解决方案非常棒。