readme: ---
  languages:
  - en
  license: 
  - cc-by-nc-sa-4.0
  - apache-2.0
  tags:
  - grammar
  - spelling
  - punctuation
  - error-correction
  - grammar synthesis
  - FLAN
  
  datasets:
  - jfleg
  widget:
  
  - text: "There car broke down so their hitching a ride to they're class."
    example_title: "compound-1"
  - text: "i can has cheezburger"
    example_title: "cheezburger"
  - text: "so em if we have an now so with fito ringina know how to estimate the tren given the ereafte mylite trend we can also em an estimate is nod s
  i again tort watfettering an we have estimated the trend an
  called wot to be called sthat of exty right now we can and look at
  wy this should not hare a trend i becan we just remove the trend an and we can we now estimate
  tesees ona effect of them exty"
    example_title: "Transcribed Audio Example 2"
  - text: "My coworker said he used a financial planner to help choose his stocks so he wouldn't loose money."
    example_title: "incorrect word choice (context)"
  - text: "good so hve on an tadley i'm not able to make it to the exla session on monday this week e which is why i am e recording pre recording
  an this excelleision and so to day i want e to talk about two things and first of all em i wont em wene give a summary er about
  ta ohow to remove trents in these nalitives from time series"
    example_title: "lowercased audio transcription output"
  - text: "Frustrated, the chairs took me forever to set up."
    example_title: "dangling modifier"
  - text: "I would like a peice of pie."
    example_title: "miss-spelling"
  - text: "Which part of Zurich was you going to go hiking in when we were there for the first time together? ! ?"
    example_title: "chatbot on Zurich"
  - text: "Most of the course is about semantic or  content of language but there are also interesting topics to be learned from the servicefeatures except statistics in characters in documents. At this point, Elvthos introduces himself as his native English speaker and goes on to say that if you continue to work on social scnce,"
    example_title: "social science ASR summary output"
  - text: "they are somewhat nearby right yes please i'm not sure how the innish is tepen thut mayyouselect one that istatte lo variants in their property e ere interested and anyone basical e may be applyind reaching the browing approach were"
  - "medical course audio transcription"
  
  parameters:
    max_length: 128
    min_length: 4
    num_beams: 8
    repetition_penalty: 1.21
    length_penalty: 1
    early_stopping: True
  ---
  
  
  # grammar-synthesis-large: FLAN-t5
  
   <a href="https://colab.research.google.com/gist/pszemraj/5dc89199a631a9c6cfd7e386011452a0/demo-flan-t5-large-grammar-synthesis.ipynb">
    <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/>
  </a>
  
  A fine-tuned version of [google/flan-t5-large](https://huggingface.co/google/flan-t5-large) for grammar correction on an expanded version of the [JFLEG](https://paperswithcode.com/dataset/jfleg) dataset. [Demo](https://huggingface.co/spaces/pszemraj/FLAN-grammar-correction) on HF spaces.
  
  ## Example
  
  ![example](https://i.imgur.com/PIhrc7E.png)
  
  Compare vs. the original [grammar-synthesis-large](https://huggingface.co/pszemraj/grammar-synthesis-large).
  
  ---
  
  ## usage in Python 
  
  > There's a colab notebook that already has this basic version implemented (_click on the Open in Colab button_)
  
  After `pip install transformers` run the following code:
  
  ```python
  from transformers import pipeline
  
  corrector = pipeline(
                'text2text-generation',
                'pszemraj/flan-t5-large-grammar-synthesis',
                )
  raw_text = 'i can has cheezburger'
  results = corrector(raw_text)
  print(results)
  ```
  
  **For Batch Inference:** see [this discussion thread](https://huggingface.co/pszemraj/flan-t5-large-grammar-synthesis/discussions/1) for details, but essentially the dataset consists of several sentences at a time, and so I'd recommend running inference **in the same fashion:** batches of 64-96 tokens ish (or, 2-3 sentences split with regex) 
  
  - it is also helpful to **first** check whether or not a given sentence needs grammar correction before using the text2text model. You can do this with BERT-type models fine-tuned on CoLA like `textattack/roberta-base-CoLA`
  - I made a notebook demonstrating batch inference [here](https://colab.research.google.com/gist/pszemraj/6e961b08970f98479511bb1e17cdb4f0/batch-grammar-check-correct-demo.ipynb)
  
  
  
  ---
  
  
  ## Model description
  
  The intent is to create a text2text language model that successfully completes "single-shot grammar correction" on a potentially grammatically incorrect text **that could have a lot of mistakes** with the important qualifier of **it does not semantically change text/information that IS grammatically correct.**
  
  Compare some of the heavier-error examples on [other grammar correction models](https://huggingface.co/models?dataset=dataset:jfleg) to see the difference :)
  
  ### ONNX Checkpoint
  
  This model has been converted to ONNX and can be loaded/used with hugg