Dialectic

System to rapidly generate interfaces that automate feedback for user-generated writing

Dialectic is an end-to-end pipeline that makes it easy to create interfaces that give feedback to user-generated writing. Dialectic takes as input a corpus of documents (i.e Yelp reviews, Reddit comments) and provides both targeted and document-level feedback on how to improve perceived writing quality. Dialectic applies state-of-the-art NLP techniques in quality prediction and text segmentation, as well as novel research in perturbation-based explanation generation.

It's as easy as 1, 2, 3!

Train Dialectic on a provided corpus of review documents, labeled by helpfulness
dialectic train AmazonReviewCorpus.txt
Add features to the model or use built-in library
model.addFeature(LDA_Distribution(text))
model.addFeature(LDA_Entropy(text))

Map explanation function to features to provide suggestions, when features explain a low-quality document
def SuggestTopics:
  def features(self): return['LDAFeatures']
  def __call__(self,feats,text,segs,seg_id):
   return "Consider discussing:" +
     otherTopics(text,LDA(text))