sashtech commited on
Commit
e6cd790
·
verified ·
1 Parent(s): a256e24

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -16
app.py CHANGED
@@ -69,19 +69,27 @@ def correct_tense_errors(text):
69
  def correct_singular_plural_errors(text):
70
  doc = nlp(text)
71
  corrected_text = []
 
72
  for token in doc:
73
- if token.pos_ == "NOUN" and token.tag_ == "NN":
74
- if token.dep_ == "nsubj" and any(t.dep_ == "nummod" for t in token.head.children):
75
- corrected_text.append(token.text + "s")
76
- else:
77
- corrected_text.append(token.text)
78
- elif token.pos_ == "NOUN" and token.tag_ == "NNS":
79
- if token.dep_ == "nsubj" and not any(t.dep_ == "nummod" for t in token.head.children):
80
- corrected_text.append(token.lemma_)
 
 
 
 
 
 
81
  else:
82
  corrected_text.append(token.text)
83
  else:
84
  corrected_text.append(token.text)
 
85
  return ' '.join(corrected_text)
86
 
87
  # Function to check and correct article errors
@@ -129,23 +137,22 @@ def paraphrase_with_spacy_nltk(text):
129
  # Join the words back into a sentence
130
  paraphrased_sentence = ' '.join(paraphrased_words)
131
 
132
- # Capitalize sentences and proper nouns
133
- corrected_text = capitalize_sentences_and_nouns(paraphrased_sentence)
134
-
135
- return corrected_text
136
 
137
- # Combined function: Paraphrase -> Capitalization -> Grammar Correction (Humanifier)
138
  def paraphrase_and_correct(text):
139
- # Step 1: Paraphrase the text
140
  paraphrased_text = paraphrase_with_spacy_nltk(text)
141
 
142
  # Step 2: Apply grammatical corrections on the paraphrased text
143
  corrected_text = correct_article_errors(paraphrased_text)
144
- corrected_text = correct_tense_errors(corrected_text)
 
 
145
  corrected_text = correct_singular_plural_errors(corrected_text)
146
 
147
  # Step 3: Capitalize sentences and proper nouns (final correction step)
148
- final_text = capitalize_sentences_and_nouns(corrected_text)
149
 
150
  return final_text
151
 
 
69
  def correct_singular_plural_errors(text):
70
  doc = nlp(text)
71
  corrected_text = []
72
+
73
  for token in doc:
74
+ if token.pos_ == "NOUN":
75
+ # Check if the noun is singular or plural
76
+ if token.tag_ == "NN": # Singular noun
77
+ # Look for determiners like "many" to correct to plural
78
+ if any(child.text.lower() in ['many', 'several', 'few'] for child in token.head.children):
79
+ corrected_text.append(token.lemma_ + 's')
80
+ else:
81
+ corrected_text.append(token.text)
82
+ elif token.tag_ == "NNS": # Plural noun
83
+ # Look for determiners like "a", "one" to correct to singular
84
+ if any(child.text.lower() in ['a', 'one'] for child in token.head.children):
85
+ corrected_text.append(token.lemma_)
86
+ else:
87
+ corrected_text.append(token.text)
88
  else:
89
  corrected_text.append(token.text)
90
  else:
91
  corrected_text.append(token.text)
92
+
93
  return ' '.join(corrected_text)
94
 
95
  # Function to check and correct article errors
 
137
  # Join the words back into a sentence
138
  paraphrased_sentence = ' '.join(paraphrased_words)
139
 
140
+ return paraphrased_sentence
 
 
 
141
 
142
+ # Combined function: Paraphrase -> Grammar Correction -> Capitalization (Humanifier)
143
  def paraphrase_and_correct(text):
144
+ # Step 1: Paraphrase the text
145
  paraphrased_text = paraphrase_with_spacy_nltk(text)
146
 
147
  # Step 2: Apply grammatical corrections on the paraphrased text
148
  corrected_text = correct_article_errors(paraphrased_text)
149
+
150
+ corrected_text = capitalize_sentences_and_nouns(corrected_text)
151
+
152
  corrected_text = correct_singular_plural_errors(corrected_text)
153
 
154
  # Step 3: Capitalize sentences and proper nouns (final correction step)
155
+ final_text = correct_tense_errors(corrected_text)
156
 
157
  return final_text
158