Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -49,6 +49,29 @@ def get_synonyms_nltk(word, pos):
|
|
| 49 |
return [lemma.name() for lemma in lemmas]
|
| 50 |
return []
|
| 51 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 52 |
# Function to capitalize the first letter of sentences and proper nouns
|
| 53 |
def capitalize_sentences_and_nouns(text):
|
| 54 |
doc = nlp(text)
|
|
@@ -105,15 +128,18 @@ def correct_grammar(text):
|
|
| 105 |
result = parser.parse(text)
|
| 106 |
return result['result']
|
| 107 |
|
| 108 |
-
# Combined function: Paraphrase -> Capitalization -> Grammar Correction
|
| 109 |
def paraphrase_and_correct(text):
|
| 110 |
# Step 1: Paraphrase the text
|
| 111 |
paraphrased_text = paraphrase_with_spacy_nltk(text)
|
| 112 |
|
| 113 |
-
# Step 2:
|
| 114 |
-
|
|
|
|
|
|
|
|
|
|
| 115 |
|
| 116 |
-
# Step
|
| 117 |
final_text = correct_grammar(capitalized_text)
|
| 118 |
|
| 119 |
return final_text
|
|
|
|
| 49 |
return [lemma.name() for lemma in lemmas]
|
| 50 |
return []
|
| 51 |
|
| 52 |
+
# Function to check and correct tenses and verbs using spaCy
|
| 53 |
+
def check_tense_and_correct(text):
|
| 54 |
+
doc = nlp(text)
|
| 55 |
+
corrected_text = []
|
| 56 |
+
|
| 57 |
+
for token in doc:
|
| 58 |
+
# Checking for verbs and their tense
|
| 59 |
+
if token.pos_ == 'VERB':
|
| 60 |
+
tense = token.tag_ # Get the specific tense tag (e.g., VBZ, VBD, VBG, etc.)
|
| 61 |
+
|
| 62 |
+
if tense == 'VBZ': # 3rd person singular present
|
| 63 |
+
corrected_text.append(token.lemma_) # Replace with base form (example: goes -> go)
|
| 64 |
+
elif tense == 'VBD': # Past tense
|
| 65 |
+
corrected_text.append(token.text) # Keep past tense as is
|
| 66 |
+
elif tense == 'VBG': # Gerund/Present participle
|
| 67 |
+
corrected_text.append(token.text) # Keep it unchanged for now
|
| 68 |
+
else:
|
| 69 |
+
corrected_text.append(token.text) # For other cases, append the word as is
|
| 70 |
+
else:
|
| 71 |
+
corrected_text.append(token.text)
|
| 72 |
+
|
| 73 |
+
return ' '.join(corrected_text)
|
| 74 |
+
|
| 75 |
# Function to capitalize the first letter of sentences and proper nouns
|
| 76 |
def capitalize_sentences_and_nouns(text):
|
| 77 |
doc = nlp(text)
|
|
|
|
| 128 |
result = parser.parse(text)
|
| 129 |
return result['result']
|
| 130 |
|
| 131 |
+
# Combined function: Paraphrase -> Tense Check -> Capitalization -> Grammar Correction
|
| 132 |
def paraphrase_and_correct(text):
|
| 133 |
# Step 1: Paraphrase the text
|
| 134 |
paraphrased_text = paraphrase_with_spacy_nltk(text)
|
| 135 |
|
| 136 |
+
# Step 2: Check tense and verbs, and attempt correction
|
| 137 |
+
tense_checked_text = check_tense_and_correct(paraphrased_text)
|
| 138 |
+
|
| 139 |
+
# Step 3: Capitalize sentences and proper nouns
|
| 140 |
+
capitalized_text = capitalize_sentences_and_nouns(tense_checked_text)
|
| 141 |
|
| 142 |
+
# Step 4: Correct grammar
|
| 143 |
final_text = correct_grammar(capitalized_text)
|
| 144 |
|
| 145 |
return final_text
|