We have a heavily customized discussion board on our site. We have created different groups based on different topics of discussion and we now want to add user tagging. Our users are not necessarily technical and we are looking at making some improvements to the user experience for tagging.

I've used JSOM from the SP.Taxonomy.js library to get all the tags from the termset and their associated descriptions, synonyms, etc. That is working well.

I did find this tutorial on using the OOB Taxonomy Picker which works well, but we want to customize the input experience to make it easier for users. For example, the build in tag explorer has a horrible user interface with the paging up and down and how cramped it is. Maybe there are ways to customize the OOB control, but I couldn't find much documentation on that.

To recreate the "type in tags and select from a dropdown" part of the exprience, I've used the typeaheadjs library to create our own custom input so that we have a bit more freedom with the design and events. That is working well.

Now I need to recreate the tag picker explorer part of the experience. Since I've retrieved the entire termset (about 170 terms) with JSOM I can create either a tree view or flat alpha list. Haven't worked out all the details, but that shouldn't be too hard.

One thing I would like to do is also take what the user has typed into the Title and body of the discussion post and analyze it to suggest tags that might be a good match. Sort of similar to the "Similar Questions" panel to the right of this input form -- except more like "similar questions are tagged with these tags, maybe you would like to use one of them?" Maybe suggest the top 5 hits and then let the user also scroll through the rest.

I think I could do some kind of Bag of words or Naive Bayes classifier. But I wanted to see if anybody had already implemented this kind of feature?

TL;DR (here is the actual question)

Given a set of a couple hundred terms does anybody know a way to analyze a short bit of discussion text and suggest terms that might be good matches? Has anybody done this before.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.