すべての会話をファイルと構造化データにダンプする

この質問は、こちらの質問と似ています:Does Discourse support export conversations as an organized bulk of data?

ただし、当社の Discourse サイトのすべての会話に対して NLP を実行する方法を探しています。チームの誰かが、バックエンドの低レベルで、例えばテーブルを含まないデータベースを pg_dump --schema-only のような方法でエクスポートすることで実現できるかどうかを尋ねました。同僚の意図を完全に理解したわけではありませんが、もしかしたらあなたならご存じかもしれません。

セルフホスト環境の場合、必要な pg_dump コマンドを実行していただけます。

また、Data Explorer Plugin を使用して、さまざまな形式でデータをダンプすることも可能です。

このプラグインは、私たちが求めているもののほとんどを提供してくれているようです!ありがとうございます!

そこでプラグインをインストールし、(Superseded) What cool data explorer queries have you come up with? で実行されたすべてのクエリを確認しましたが、実際の会話をエクスポートできるものは見つかりませんでした。例えば、アクティブなトピック上位100件を要求しました。データベースエントリにトピックIDが表示されます(スクリーンショット参照)が、会話そのものは取得できません。これは、プラグインがデータベースからのデータ抽出のみを目的としており、会話そのものを取得するものではないためでしょうか?もしそうであれば、プラグインで取得したデータベースの情報(トピックID)を使って、JSON ファイル形式で会話を取得する方法はありますか?

SELECT * FROM posts WHERE topic_id=425

これで、クエリ内の最初のトピックの投稿が取得できます(スマホで入力しているため、正確な構文かどうかは保証できません)。

ただし、JSON が欲しい場合は、以下のような方法も考えられます。

最初の選択肢が理解できませんでした。もしかしてテキストにタイプミスがありますか?トピックの最初の投稿のみが取得できるという意味でしょうか?

.json 拡張子を用いた 2 番目の選択肢について、トピック ID や他のエントリを利用した代替 URL はありますか?トピックタイトルを知る必要なく、よりプログラム的に会話の JSON を取得できる方法があれば教えてください。

SQLクエリを試しましたか?エラーはありましたか?編集:確認しました。そのクエリはトピック内のすべての投稿を返します。

トピックIDのみで任意のトピックを取得できます。

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

クエリ自体は問題ありませんでした。実際には何を提供するかというご説明を私が誤解していただけです。ご確認いただきありがとうございます。これらの解決策は非常に優れています。