Code Monkey home page Code Monkey logo

peep-talk's Introduction


PEEP-Talk Logo

PEEP-Talk: A Situational Dialogue-Based English Education Platform

Latest release Hits GitHub

PEEP-Talk is an educational platform with a deep learning-based persona conversation system and a feedback function for correcting English grammar. In addition, unlike the existing persona conversation system, a Context Detector (CD) module that can automatically determine the flow of conversation and change the conversation topic in real time can be applied to give the user a feeling of talking to a real person.


Dataset

  • Download testset of SITUATION-CHAT from this link

Project interests

Conversational Agent

By considering persona as a situation, English conversation learning for each situation becomes possible. To make conversational agent model mainly, we use Hugging Face's TransferTransfo code.

Context Detector

This module can detect whether user speak properly in suggested situation or not. This module contains two BERT based models. Evaluate the conversation using the following two functions. Based on that score, we decide whether to change the conversation.

  • Situation Similarity(상황 유사도): fine-tuinig the MRPC(Microsoft Research Paraphrase Corpus) dataset to detect user's context similarity in suggested situation.
  • Linguistic Acceptability(문장 허용도): fine-tuning the CoLA(The Corpus of Linguistic Acceptability) dataset to detect user's input is acceptable in human conversation.

Grammar Error Correction

To give grammar feedback to english learner, We use GEC(Grammar Error Correction) as REST API.

Folder Structure

.
├── train.py                # train model
├── app.py                  # REST API code
├── run.py                  # running PEEP-Talk
├── situation_example.py    # example of Situation annotation
├── example_entry.py        # example of SITUATION-CHAT
├── requirements.txt
├── LICENSE
└── README.md

Run

to interact with PEEP-talk :

python interact.py

to REST API server:

python app.py

to use Streamlit

streamlit run web.py

to train conversation module

python ./train.py \
--dataset_path "data/situationchat_original.json" \
--model_checkpoint "microsoft/DialoGPT-medium" \
--gradient_accumulation_steps=4 \
--max_history=3 \
--n_epochs=2 \
--num_candidates=4 \
--personality_permutations=4 \
--train_batch_size=8 \
--valid_batch_size=8

Demo

License

The MIT License

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.