sashtech commited on
Commit
79ca043
·
verified ·
1 Parent(s): cf3f184

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -30
app.py CHANGED
@@ -22,12 +22,8 @@ inflect_engine = inflect.engine()
22
  nltk.download('wordnet')
23
  nltk.download('omw-1.4')
24
 
25
- # Ensure the SpaCy model is installed
26
- try:
27
- nlp = spacy.load("en_core_web_sm")
28
- except OSError:
29
- subprocess.run(["python", "-m", "spacy", "download", "en_core_web_sm"])
30
- nlp = spacy.load("en_core_web_sm")
31
 
32
  # Function to predict the label and score for English text (AI Detection)
33
  def predict_en(text):
@@ -173,18 +169,18 @@ def correct_spelling(text):
173
  corrected_words = []
174
  for word in words:
175
  corrected_word = spell.correction(word)
176
- corrected_words.append(corrected_word if corrected_word else word) # Keep original if correction is None
177
  return ' '.join(corrected_words)
178
 
179
  # Function to correct punctuation issues
180
  def correct_punctuation(text):
181
- text = re.sub(r'\s+([?.!,";:])', r'\1', text) # Remove space before punctuation
182
- text = re.sub(r'([?.!,";:])\s+', r'\1 ', text) # Ensure a single space after punctuation
183
  return text
184
 
185
  # Function to ensure correct handling of possessive forms
186
  def handle_possessives(text):
187
- text = re.sub(r"\b(\w+)'s\b", r"\1's", text) # Preserve possessive forms
188
  return text
189
 
190
  # Function to rephrase text and replace words with their synonyms while maintaining form
@@ -231,37 +227,37 @@ def paraphrase_and_correct(text):
231
  # Remove meaningless or redundant words first
232
  cleaned_text = remove_redundant_words(text)
233
 
234
- # Capitalize sentences and nouns
235
- paraphrased_text = capitalize_sentences_and_nouns(cleaned_text)
236
-
237
  # Correct tense errors
238
- paraphrased_text = correct_tense_errors(paraphrased_text)
239
-
240
  # Correct singular/plural errors
241
- paraphrased_text = correct_singular_plural_errors(paraphrased_text)
242
-
243
  # Correct article errors
244
- paraphrased_text = correct_article_errors(paraphrased_text)
245
-
246
  # Correct spelling
247
- paraphrased_text = correct_spelling(paraphrased_text)
248
-
249
  # Correct punctuation issues
250
- paraphrased_text = correct_punctuation(paraphrased_text)
251
-
252
  # Handle possessives
253
- paraphrased_text = handle_possessives(paraphrased_text)
254
-
255
  # Replace words with synonyms
256
- paraphrased_text = rephrase_with_synonyms(paraphrased_text)
257
 
258
  # Correct double negatives
259
- paraphrased_text = correct_double_negatives(paraphrased_text)
260
 
261
  # Ensure subject-verb agreement
262
- paraphrased_text = ensure_subject_verb_agreement(paraphrased_text)
263
 
264
- return paraphrased_text
265
 
266
  # Function to detect AI-generated content
267
  def detect_ai(text):
@@ -277,7 +273,7 @@ def gradio_interface(text):
277
  # Create Gradio interface
278
  iface = gr.Interface(fn=gradio_interface,
279
  inputs=gr.Textbox(lines=5, placeholder="Enter text here..."),
280
- outputs=[gr.outputs.Label(num_top_classes=2), gr.outputs.Textbox()],
281
  title="AI Detection and Grammar Correction",
282
  description="Detect AI-generated content and correct grammar issues.")
283
 
 
22
  nltk.download('wordnet')
23
  nltk.download('omw-1.4')
24
 
25
+ # Load the SpaCy model
26
+ nlp = spacy.load("en_core_web_sm")
 
 
 
 
27
 
28
  # Function to predict the label and score for English text (AI Detection)
29
  def predict_en(text):
 
169
  corrected_words = []
170
  for word in words:
171
  corrected_word = spell.correction(word)
172
+ corrected_words.append(corrected_word if corrected_word else word)
173
  return ' '.join(corrected_words)
174
 
175
  # Function to correct punctuation issues
176
  def correct_punctuation(text):
177
+ text = re.sub(r'\s+([?.!,";:])', r'\1', text)
178
+ text = re.sub(r'([?.!,";:])\s+', r'\1 ', text)
179
  return text
180
 
181
  # Function to ensure correct handling of possessive forms
182
  def handle_possessives(text):
183
+ text = re.sub(r"\b(\w+)'s\b", r"\1's", text)
184
  return text
185
 
186
  # Function to rephrase text and replace words with their synonyms while maintaining form
 
227
  # Remove meaningless or redundant words first
228
  cleaned_text = remove_redundant_words(text)
229
 
230
+ # Capitalize sentences and proper nouns
231
+ cleaned_text = capitalize_sentences_and_nouns(cleaned_text)
232
+
233
  # Correct tense errors
234
+ cleaned_text = correct_tense_errors(cleaned_text)
235
+
236
  # Correct singular/plural errors
237
+ cleaned_text = correct_singular_plural_errors(cleaned_text)
238
+
239
  # Correct article errors
240
+ cleaned_text = correct_article_errors(cleaned_text)
241
+
242
  # Correct spelling
243
+ cleaned_text = correct_spelling(cleaned_text)
244
+
245
  # Correct punctuation issues
246
+ cleaned_text = correct_punctuation(cleaned_text)
247
+
248
  # Handle possessives
249
+ cleaned_text = handle_possessives(cleaned_text)
250
+
251
  # Replace words with synonyms
252
+ cleaned_text = rephrase_with_synonyms(cleaned_text)
253
 
254
  # Correct double negatives
255
+ cleaned_text = correct_double_negatives(cleaned_text)
256
 
257
  # Ensure subject-verb agreement
258
+ cleaned_text = ensure_subject_verb_agreement(cleaned_text)
259
 
260
+ return cleaned_text
261
 
262
  # Function to detect AI-generated content
263
  def detect_ai(text):
 
273
  # Create Gradio interface
274
  iface = gr.Interface(fn=gradio_interface,
275
  inputs=gr.Textbox(lines=5, placeholder="Enter text here..."),
276
+ outputs=[gr.Label(num_top_classes=2), gr.Textbox()],
277
  title="AI Detection and Grammar Correction",
278
  description="Detect AI-generated content and correct grammar issues.")
279