/peep-talk

A Situational Conversation-Based English Education Platform

Primary LanguagePythonMIT LicenseMIT


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