sashtech commited on
Commit
96ac1ff
·
verified ·
1 Parent(s): 0bb2454

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -2
app.py CHANGED
@@ -5,6 +5,7 @@ import spacy
5
  import subprocess
6
  import nltk
7
  from nltk.corpus import wordnet
 
8
 
9
  # Initialize the English text classification pipeline for AI detection
10
  pipeline_en = pipeline(task="text-classification", model="Hello-SimpleAI/chatgpt-detector-roberta")
@@ -25,6 +26,20 @@ except OSError:
25
  subprocess.run(["python", "-m", "spacy", "download", "en_core_web_sm"])
26
  nlp = spacy.load("en_core_web_sm")
27
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  # Function to get synonyms using NLTK WordNet (Humanifier)
29
  def get_synonyms_nltk(word, pos):
30
  synsets = wordnet.synsets(word, pos=pos)
@@ -94,7 +109,7 @@ def paraphrase_and_correct(text):
94
 
95
  return final_text
96
 
97
- # Gradio app setup with two tabs
98
  with gr.Blocks() as demo:
99
  with gr.Tab("AI Detection"):
100
  t1 = gr.Textbox(lines=5, label='Text')
@@ -112,6 +127,14 @@ with gr.Blocks() as demo:
112
 
113
  # Connect the paraphrasing function to the button
114
  paraphrase_button.click(paraphrase_and_correct, inputs=text_input, outputs=output_text)
 
 
 
 
 
 
 
 
115
 
116
- # Launch the app with both functionalities
117
  demo.launch()
 
5
  import subprocess
6
  import nltk
7
  from nltk.corpus import wordnet
8
+ from gector.gec_model import GecBERTModel
9
 
10
  # Initialize the English text classification pipeline for AI detection
11
  pipeline_en = pipeline(task="text-classification", model="Hello-SimpleAI/chatgpt-detector-roberta")
 
26
  subprocess.run(["python", "-m", "spacy", "download", "en_core_web_sm"])
27
  nlp = spacy.load("en_core_web_sm")
28
 
29
+ # Initialize GECToR model for grammar correction
30
+ gector_model = GecBERTModel(vocab_path='data/output_vocabulary',
31
+ model_paths=['https://grammarly-nlp-data.s3.amazonaws.com/gector/roberta_1_gector.th'],
32
+ is_ensemble=False)
33
+
34
+ # Function to correct grammar using GECToR
35
+ def correct_grammar_with_gector(text):
36
+ corrected_sentences = []
37
+ sentences = [text] # If you want to split into sentences, you can implement that here
38
+ for sentence in sentences:
39
+ preds = gector_model.handle_batch([sentence])
40
+ corrected_sentences.append(preds[0])
41
+ return ' '.join(corrected_sentences)
42
+
43
  # Function to get synonyms using NLTK WordNet (Humanifier)
44
  def get_synonyms_nltk(word, pos):
45
  synsets = wordnet.synsets(word, pos=pos)
 
109
 
110
  return final_text
111
 
112
+ # Gradio app setup with three tabs
113
  with gr.Blocks() as demo:
114
  with gr.Tab("AI Detection"):
115
  t1 = gr.Textbox(lines=5, label='Text')
 
127
 
128
  # Connect the paraphrasing function to the button
129
  paraphrase_button.click(paraphrase_and_correct, inputs=text_input, outputs=output_text)
130
+
131
+ with gr.Tab("Grammar Correction"):
132
+ grammar_input = gr.Textbox(lines=5, label="Input Text")
133
+ grammar_button = gr.Button("Correct Grammar")
134
+ grammar_output = gr.Textbox(label="Corrected Text")
135
+
136
+ # Connect the GECToR grammar correction function to the button
137
+ grammar_button.click(correct_grammar_with_gector, inputs=grammar_input, outputs=grammar_output)
138
 
139
+ # Launch the app with all functionalities
140
  demo.launch()