Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/justdvnsh/v-plag-checker

A Plagiarism Checker to check for plagiarism of a document against internet and also the AI
https://github.com/justdvnsh/v-plag-checker

Last synced: 22 days ago
JSON representation

A Plagiarism Checker to check for plagiarism of a document against internet and also the AI

Awesome Lists containing this project

README

        

# V-PlagChecker

The free online plagiarism checker , which not just checks for plagiarism online , but also checks for the Ai - generated plagiarism which is a new type of plagiarism . It automatically grades the assignments , essays or the thesis papers , along with a report of how you did . It also generates a small summary of the project .

## Overview

It's the code for V-PlagChecker, a tool for teacher/students that automatically grades and validates essays/thesis papers. In order to validate essays, it uses the n-gram modekl to check for plagiarism. It also uses a modified version of GPT-2 to detect the likelihood that the text was real or fake ( The AI generated plagiarism ). Then it outputs a validation score using these 2 scores. In order to grade the essay, it uses a neural network model trained on the automatic essay grading dataset on Kaggle found here https://www.kaggle.com/c/asap-aes/data .

## Credits

Credits for the base repository go to [this](https://github.com/HendrikStrobelt/detecting-fake-text/) academic team. Credits for the other tools go to Google, OpenAI and NLTK. I will also take ths opportunity to give thanks to all humans who perform selfless acts for others, in big ways and small. Thank you, please keep doing that.

## Call for Pull Requests

This is an ongoing, open source project. Please contribute, it will help all those that use the app. Make a PR for any of these bugs

- ~Finish implementing check for plagiarism using the grams as features~
- ~Use the google api to check for plag against internet~
- ~Make the GPT-2 api available to calculate scores~
- ~Create a more accurate version of a validation score that uses the N-Gram score + the GPT-2 real/fake score. Display it to the screen when computed.~
- Host the website online, for the app to use the API ( Google Compute Platform ) -> Needs a billing account ... I Dont have a credit or debit card :p
- Design and Make the app
- Connect it to the api
- ~Host the frotend of the website on firebase~
- Fix the Tensorflow.js integration, such that its using a pretrained model on the Kaggle automatic essay scoring data, instead ot the default model its using right now. Display the score to the screen accordingly.

## Quickstart

Install dependencies for Python >3.6 :

```bash
pip install -r requirements.txt
```

run server for `gpt-2-small`:

```bash
python server.py

```

the demo instance runs now at [http://localhost:5001/client/index.html](http://localhost:5001/client/index.html)

## Run the BERT server

start the server for `BERT`:
```bash
python server.py --model BERT
```

the instance runs now at [http://localhost:5001/client/index.html?nodemo](http://localhost:5001/client/index.html?nodemo). HINT: we only provide demo texts for `gpt2-small`.

## server.py options

```
usage: server.py [-h] [--model MODEL] [--nodebug NODEBUG] [--address ADDRESS]
[--port PORT] [--nocache NOCACHE] [--dir DIR] [--no_cors]

optional arguments:
-h, --help show this help message and exit
--model MODEL choose either 'gpt-2-small' (default) or 'BERT' or your own
--nodebug NODEBUG server in non-debugging mode
--port PORT port to launch UI and API (default:5001)
--no_cors launch API without CORS support (default: False)

```

## Extend backend

The backend defines a number of model api's that can be invoked by the server by starting it with the parameter `--model NAME`. To add a custom model, you need to write your own api in `backend/api.py` and add the decorator `@register_api(name=NAME)`.

Each api needs to be a class that inherits from `AbstractLanguageChecker`, which defines two functions `check_probabilities` and `postprocess`. Please follow the documentation within `api.py` when implementing the class and the functions.

## Extend frontend
the source code for the front-end is in `client/src`.

To modify, installing of node dependencies is necessary:

```bash
cd client/src; npm install; cd ../..
```
re-compilation of front-end:

```bash
> rm -rf client/dist;cd client/src/; npm run build; cd ../..
```