機械学習によるトピック自動タグ付け?

私は機械学習の専門家ですが、Discourse については専門家ではありません。ただし、Discourse は頻繁に利用しており、非常に気に入っています。

非常に強力なツールになるだろうと考えているのは、API と対話しながら実行するスクリプトです。具体的には以下のような機能を実現します:

  1. タグの使用状況を確認し、データに基づいてトピックを自動タグ付けする。例えば、「recipe」というタグが使われており、いくつかのトピックが「recipe」とタグ付けされている場合、機械学習アルゴリズムが「recipe」タグを付与すべき他の投稿を特定する。

  2. トピックを分析して新しいタグを提案し、関連するトピックを自動タグ付けする。

この機能を実装する適切な方法は、Python で開発し、Discourse の実装から独立させることです。優れたソフトウェア設計により、NLP と機械学習の部分は、Discourse と対話するコードから分離されます。Discourse と API を介して対話することで、任意の機械学習コードを開発可能になり、機械学習コミュニティからの貢献を受けながら、Discourse の配布版とはほぼ独立してオープンソースの Python パッケージを構築できます。また、堅牢なインターフェースがあれば、Discourse フォーラムの管理に対して機械学習を他の方法でも適用できるようになるでしょう。

そこで、自動タグ付けを実装するための ML/NLP の初期段階の開発と、それをオープンソースライブラリとして公開することに興味があります。

このプロジェクト/ライブラリの Discourse 通信部分の協力に興味のある Discourse 開発者はいらっしゃいますか?これはチームに欠けている重要な要素です。着手する前に、この部分を担当できる人が必要です。

また、ML/NLP の開発に参加したいと考えている他の学者や専門家はいらっしゃいますか?

@samamorgan さんまたは @black さんは何かご提案がありますか、あるいは参加されますか?

https://github.com/samamorgan/discourse

ここでは Webhook を活用することをお勧めします。Python アプリで Webhook を受信し、当社の API を使ってそれに応答します。

うまくいくか楽しみですね。

もう一つ興味深い分野として、word2vec や文をベクトル化する手法を用いて、Support チャンネルでのトピックの類似性を把握する方法があります。同じ質問が様々な言い回しで何度も寄せられることが多く、情報を統合することで非常に有益な成果が得られるでしょう。

現時点では、Neo4j が最適な選択肢かもしれないと考えています…

また、Webhook についても調査します…

@swamidass 興味深いプロジェクトのようですね!もしオープンソースであれば、喜んで参加してお手伝いいたします。

@samamorgan、Discourse の情報を API を使って Neo4j にインポートするインターフェースコードを作成してもらえますか?実は、Python コードは不要で、Neo4j 側でこの処理を行うインターフェースが用意されています。Twitter と StackExchange の例をご覧ください:

これも関連します:

プロジェクトをご検討中なら、まず git を開始し、手順を概要化してください。ここにリンクを貼っていただければ、時間の許す限り参加して貢献することも喜んで行います。

ありがとうございます。Git リポジトリはこちらです。

https://github.com/swamidass/discourse-machine-learning