- Introduction
- Features
- Technologies Used
- Setup and Installation
- Usage
- How to Contribute
- License
- Contributors
- Acknowledgements
EssayInsight is a web application that provides feedback on essays. It uses a machine learning model to predict the score of an essay and provides feedback on the essay based on the predicted score. The model was trained on a dataset of 1000 essays that were scored by IELTS examiners. The model was trained using TensorFlow and was deployed using Flask. The web application was built using Next.js.
Our web application provides the following features:
- Predicts the score of an essay
- Provides a user-friendly interface for users to submit their essays
The prediction algorithm was inspired by the fact that there was no reliable Open Source model to predict the score writing quality of an essay.
IELTS examiners use a rubric to score essays. The rubric consists of 4 categories: Task Achievement, Coherence and Cohesion, Lexical Resource, and Grammatical Range and Accuracy. Each category is scored on a scale of 0-9. 3/4 of the score is based on the text by itself and that was the reasoning why dataset is suitable for training the model for general use.
The optimal length of an essay if 250 words with a minimum of 150 words and a maximum of 300 words. For the best results, the essay should be between 250-300 words.
Since we created our release using Docker, it is very easy to set up the project locally. You can use the following commands to set up the project locally.
After cloning the repository and changing the working directory, run the following commands:
docker-compose up
Note: to stop the containers, use docker-compose down
or Ctrl+C in the terminal, while the containers are running.
After setting up the project locally, you can access the web application at localhost:3000.
The API can be accessed at localhost:5001/predict. The API can be used to make predictions on essays. The API accepts a POST request with the following JSON body:
{
"essay": "This is a sample essay."
}
The API will return a JSON response with the following format:
{
"prediction": 6.0,
}
Use the following command to make a request to the API:
curl -X POST -H "Content-Type: application/json" -d '{"essay": "This is a sample essay."}' http://localhost:5001/predict
To contribute to this project, follow the steps below:
- Fork this repository.
- Create a branch:
git checkout -b <branch_name>
. - Make your changes and commit them:
git commit -m '<commit_message>'
- Push to the original branch:
git push origin <project_name>/<location>
- Create the pull request.
This project is licensed under the 3-Clause BSD license.
Dataset used for training the model was obtained from Kaggle.