import language_tool_python import sys from pathlib import Path script_location = Path(__file__).absolute().parent def checkGrammar(data): tool = language_tool_python.LanguageTool('en-US') matches = tool.check(data) corrected = language_tool_python.utils.correct(data, matches) tool.close() formatAndDisplay(data, matches, corrected) def formatAndDisplay(data='', matches=[], corrected=''): print('***'*30) print('Original Text') print('***'*30) print(data) print('***'*30) print('Grammar mistakes & Improvements') print('***'*30) for match in matches: incorrect_text = match.sentence.replace(match.matchedText, '\033[44;33m{}\033[m'.format(match.matchedText)) rule_text = '\033[3;31;40m{}\033[m'.format(match.message) suggestion = '\033[4;32;40m{}\033[m'.format(match.replacements[0]) print(f"{rule_text} => {incorrect_text}") print(f"Suggestion : {suggestion}") # Corrected ---------- print('***'*30) print('CORRECTED TEXT') print('***'*30) print('\033[3;33;40m{}\033[m'.format(corrected)) print('---'*30) try: file_location = script_location / 'demoFile.txt' f = open(file_location, "r") fileText = f.read() checkGrammar(fileText) except Exception as e: exception_type, exception_object, exception_traceback = sys.exc_info() line_number = exception_traceback.tb_lineno print(f'line {line_number}: {exception_type} - {e}')