import re def grammatical_cleaning(generated: str) -> str: generated = re.sub("\.[^\s]",". ", generated) generated = re.sub("\,[^\s]",", ", generated) generated = re.sub("\;[^\s]","; ", generated) generated = re.sub("\:[^\s]",": ", generated) generated = re.sub("\![^\s]","! ", generated) generated = list(generated) for n in range(len(generated)-2): if generated[n]=="." or generated[n]=="?": if generated[n+1].islower() and generated[n+1].isalpha(): generated[n+1] = generated[n+1].upper() elif generated[n+2].islower() and generated[n+2].isalpha(): generated[n+2] = generated[n+2].upper() return ''.join(generated)