How to implement Sentiment analysis solution for Discourse


We have a client who would like to implement Sentiment analysis solutions into their Discourse community.

They have basically a community where the emotions are pretty much mixed about their product. From positive fans to very negative haters, since its a competitive market where every brand has their own fanbase. They expect a solution where each user can be tagged from 0-10 depending on their mood/behavior. If someone has the potential to become a negative influencer later this needs to be detected in the very beginning.

Are there any 3rd party software you would recommend to use as foundation of the plugin?

Their budget for this solution would be up to 10.000 USD.


I think @angus experimented with this in the past, perhaps he can expand on it when he is back from his break in a week.


I started a Machine Learning plugin last year, but I haven’t worked on it for almost a year.

The basic idea is to let you train any dockerized model (e.g. a CNN text sentiment classification model, or Parsey McParseface), on any internal (i.e. Discourse) or external data, and provide a Discourse ML api to use your trained models in any context in Discourse.

I got a basic version of this working. It looks like this:

I just spent a chunk of time today seeing if I could bring it up to speed, but it is going to need more work.

It could be used in your case, but it’s substantially broader that what you have in mind.

You may want to consider just using an NLP API at this stage.


I’m not sure I know of third party software that could be used for this, but maybe some of the NLP pieces that @angus mentioned would be helpful. If you’re looking for help building the plugin itself, I could very likely help:

Otherwise, I would try to nail down the data criteria (based on parsed language numbers) that determines whether or not the user is for or against the product. And from there, you’ll likely want to act on the result by rate limiting their posts, auto-flagging for approval, requiring moderation of posts, etc…


I wanted to do this for a project I was working on. My idea was to connect the Azure Text Analytics API as a background job in Discourse, it should be pretty straightforward to do it.

Maybe we can talk @awkmarketing to work together on this.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.