Spaces:
Sleeping
Sleeping
| import requests | |
| def correct_sentence(text): | |
| """ | |
| Corrects the given text using the Ginger grammar correction API. | |
| Parameters: | |
| text (str): The text to be corrected. | |
| Returns: | |
| str: The corrected text with grammar suggestions applied. | |
| """ | |
| # Ginger grammar correction API URL | |
| ginger_api_url = 'https://services.gingersoftware.com/Ginger/correct/jsonSecured/GingerTheTextFull' | |
| # Ginger API parameters | |
| params = { | |
| 'lang': 'US', # Language set to English (US) | |
| 'clientVersion': '2.0', # Version of the Ginger API | |
| 'apiKey': '6ae0c3a0-afdc-4532-830c-53f0f02e2f0c', # Public API key | |
| 'text': text # Text that needs grammar correction | |
| } | |
| try: | |
| # Send a GET request to the Ginger API | |
| response = requests.get(ginger_api_url, params=params) | |
| # Check if the request was successful | |
| if response.status_code == 200: | |
| # Parse the JSON response | |
| data = response.json() | |
| # If no corrections are found, return the original text | |
| if not data['LightGingerTheTextResult']: | |
| return text | |
| # Correct the text based on the suggestions | |
| corrected_text = apply_corrections(text, data['LightGingerTheTextResult']) | |
| return corrected_text | |
| else: | |
| # If the request failed, return the original text | |
| return text | |
| except requests.exceptions.RequestException as e: | |
| # Handle any exceptions (like network errors) | |
| print(f"An error occurred: {e}") | |
| return text | |
| def apply_corrections(text, corrections): | |
| """ | |
| Applies the corrections suggested by the Ginger API. | |
| Parameters: | |
| text (str): The original text. | |
| corrections (list): A list of correction suggestions from Ginger. | |
| Returns: | |
| str: The corrected text with suggestions applied. | |
| """ | |
| corrected_text = list(text) | |
| # Offset helps adjust the position as we modify the string | |
| offset = 0 | |
| for correction in corrections: | |
| start = correction['From'] + offset | |
| end = correction['To'] + 1 + offset | |
| # Replace the incorrect part with the suggestion | |
| suggestion = correction['Suggestions'][0]['Text'] | |
| # Replace the text within the correct range | |
| corrected_text[start:end] = suggestion | |
| # Adjust offset based on length difference between suggestion and original | |
| offset += len(suggestion) - (end - start) | |
| return ''.join(corrected_text) | |
| def main(): | |
| """ | |
| Main function for grammar correction. | |
| Prompts the user to enter a sentence and corrects the grammar. | |
| """ | |
| # Input sentence from the user | |
| sentence = input("Enter a sentence to correct: ") | |
| # Correct the sentence using Ginger | |
| corrected_sentence = correct_sentence(sentence) | |
| # Display the corrected sentence | |
| print("Corrected Sentence: ", corrected_sentence) | |
| if __name__ == "__main__": | |
| main() | |