Using AI in Discourse - let's brainstorm


(Anton) #1

Hi there!

The recent double-win in a GO game by a deep learning AI, as well as the fact that deep learning AIs have replaced hand-coded tools in Google - all this let me think about using AI for discussion platforms.

The data in Discourse database is well structured, making it possible to extract about any combination of data from database.

Using PostgreSQL makes it easy to extract words (TSVector) to feed to AI.

User behaviour statistics are all there in database: how many likes and who likes who, how many words, how often users write, to whom they respond, which language they use…

Now, what AI applications do you see for Discourse?
All ideas are welcome, including funny and crazy ones.

Yet I’d like to focus on applications that would improve on:

  • engagement
  • retention
  • scoring (top posts by week, month etc)
  • badge attractiveness
  • detection of potential posts that need boost
  • leaders detection
  • automatic tagging
  • media uploaded, especially images

Let’s this brainstorm begin!


(Jay Pfaffman) #3

My ideas in this category are fairly simple. I’m using Discourse in teaching. I would like to have Discourse “grade” their work.

“Good” participation in a discussion

Right now, I just check (by doing a user:name in the current topic) that they have posted a reply by Thursday and two replies after that. Sometimes I’ll bother to look that what they posted was, you know, about the thing that they are supposed to be talking about, and/or whether their replies are meaningful at all.

What I’d like (and what I’m working on now) is something like wrote X words by thursday, and two replies on a different day and then kick in something for how much they wrote (avg_time) and how many times they were quoted and/or liked. The most AI-y thing about it might be to normalize by how many likes there were overall.

“Good” participation

Most weeks, in addition to discussion of some reading, students complete some technical challenge. I have a series of badges to “grade” those, but I also need some kind of weekly measure of participation. I want them to look at each other’s work, point out things that are good or bad and provide suggestions for how to solve problems. A coarse measure that I have tried a couple times by hand (spreadsheet) is taking all of the measures on the user page, selecting them for a given group (aka class, easy when there is just one class), normalizing those measures by the group, aggregating those to a single number and then saying that “Good” participation is something lower than the mean of that number. Again, this isn’t very AI-y beyond doing some kind of group normalization.