sparknlp-correct-grammar / pages /Workflow & Model Overview.py
abdullahmubeen10's picture
Upload 5 files
1c03780 verified
raw
history blame
8.04 kB
import streamlit as st
# Custom CSS for better styling
st.markdown("""
<style>
.main-title {
font-size: 36px;
color: #4A90E2;
font-weight: bold;
text-align: center;
}
.sub-title {
font-size: 24px;
color: #4A90E2;
margin-top: 20px;
}
.section {
background-color: #f9f9f9;
padding: 15px;
border-radius: 10px;
margin-top: 20px;
}
.section h2 {
font-size: 22px;
color: #4A90E2;
}
.section p, .section ul {
color: #666666;
}
.link {
color: #4A90E2;
text-decoration: none;
}
</style>
""", unsafe_allow_html=True)
# Title
st.markdown('<div class="main-title">Correct Sentences Grammar</div>', unsafe_allow_html=True)
# Introduction Section
st.markdown("""
<div class="section">
<p>Ensuring correct grammar in sentences is essential for clear and effective communication. Whether writing an email, an academic paper, or a casual message, proper grammar ensures that your message is understood as intended.</p>
<p>This page demonstrates how to implement a grammar correction pipeline using advanced NLP models. We utilize the T5 Transformer model, fine-tuned for grammar error correction, to automatically correct sentences and enhance their grammatical accuracy.</p>
</div>
""", unsafe_allow_html=True)
# T5 Transformer Overview
st.markdown('<div class="sub-title">Understanding the T5 Transformer for Grammar Correction</div>', unsafe_allow_html=True)
st.markdown("""
<div class="section">
<p>The T5 (Text-To-Text Transfer Transformer) model, developed by Google, is a versatile tool for various NLP tasks, including grammar correction. By processing input sentences and applying the appropriate grammar corrections, T5 generates outputs that maintain the original meaning while correcting errors.</p>
<p>This is particularly useful for applications in writing assistance, automated editing, and educational tools, where grammatical accuracy is crucial.</p>
</div>
""", unsafe_allow_html=True)
# Performance Section
st.markdown('<div class="sub-title">Performance and Use Cases</div>', unsafe_allow_html=True)
st.markdown("""
<div class="section">
<p>The T5 model has shown strong performance in grammar correction tasks. It consistently produces accurate and contextually appropriate corrections, making it a valuable tool for improving written communication across various settings.</p>
<p>This capability is beneficial for students, professionals, and anyone who needs to ensure their writing is grammatically correct. The T5 model’s efficiency in correcting errors makes it a powerful asset for enhancing the quality of written content.</p>
</div>
""", unsafe_allow_html=True)
# Implementation Section
st.markdown('<div class="sub-title">Implementing Grammar Correction</div>', unsafe_allow_html=True)
st.markdown("""
<div class="section">
<p>The following example demonstrates how to implement a grammar correction pipeline using Spark NLP. The pipeline includes a document assembler and the T5 model for performing grammar corrections.</p>
</div>
""", unsafe_allow_html=True)
st.code('''
import sparknlp
from sparknlp.base import *
from sparknlp.annotator import *
from pyspark.ml import Pipeline
# Initialize Spark NLP
spark = sparknlp.start()
# Define the pipeline stages
documentAssembler = DocumentAssembler()\\
.setInputCol("text")\\
.setOutputCol("documents")
t5 = T5Transformer.pretrained("t5_grammar_error_corrector")\\
.setTask("gec:")\\
.setInputCols(["documents"])\\
.setMaxOutputLength(200)\\
.setOutputCol("corrections")
pipeline = Pipeline().setStages([documentAssembler, t5])
# Input data example
data = spark.createDataFrame([["She don't knows nothing about what's happening in the office."]]).toDF("text")
# Apply the pipeline for grammar correction
result = pipeline.fit(data).transform(data)
result.select("corrections.result").show(truncate=False)
''', language='python')
# Example Output
st.text("""
+---------------------------------------------------------------+
|corrections.result |
+---------------------------------------------------------------+
|[She doesn't know anything about what's happening in the office.]|
+---------------------------------------------------------------+
""")
# Model Info Section
st.markdown('<div class="sub-title">Choosing the Right T5 Model for Grammar Correction</div>', unsafe_allow_html=True)
st.markdown("""
<div class="section">
<p>For correcting grammar errors, we use the model: "t5_grammar_error_corrector". This model is fine-tuned to detect and correct various types of grammatical errors in English sentences.</p>
<p>Explore other T5 models tailored for different NLP tasks on the <a class="link" href="https://sparknlp.org/models?annotator=T5Transformer" target="_blank">Spark NLP Models Hub</a> to find the best fit for your specific needs.</p>
</div>
""", unsafe_allow_html=True)
# References Section
st.markdown('<div class="sub-title">References</div>', unsafe_allow_html=True)
st.markdown("""
<div class="section">
<ul>
<li><a class="link" href="https://ai.googleblog.com/2020/02/exploring-transfer-learning-with-t5.html" target="_blank">Google AI Blog</a>: Exploring Transfer Learning with T5</li>
<li><a class="link" href="https://sparknlp.org/models?annotator=T5Transformer" target="_blank">Spark NLP Model Hub</a>: Explore T5 models</li>
<li>Model used for Grammar Correction: <a class="link" href="https://sparknlp.org/2022/11/28/t5_grammar_error_corrector_en.html" target="_blank">t5_grammar_error_corrector</a></li>
<li><a class="link" href="https://github.com/google-research/text-to-text-transfer-transformer" target="_blank">GitHub</a>: T5 Transformer repository</li>
<li><a class="link" href="https://arxiv.org/abs/1910.10683" target="_blank">T5 Paper</a>: Detailed insights from the developers</li>
</ul>
</div>
""", unsafe_allow_html=True)
# Community & Support Section
st.markdown('<div class="sub-title">Community & Support</div>', unsafe_allow_html=True)
st.markdown("""
<div class="section">
<ul>
<li><a class="link" href="https://sparknlp.org/" target="_blank">Official Website</a>: Documentation and examples</li>
<li><a class="link" href="https://join.slack.com/t/spark-nlp/shared_invite/zt-198dipu77-L3UWNe_AJ8xqDk0ivmih5Q" target="_blank">Slack</a>: Live discussion with the community and team</li>
<li><a class="link" href="https://github.com/JohnSnowLabs/spark-nlp" target="_blank">GitHub</a>: Bug reports, feature requests, and contributions</li>
<li><a class="link" href="https://medium.com/spark-nlp" target="_blank">Medium</a>: Spark NLP articles</li>
<li><a class="link" href="https://www.youtube.com/channel/UCmFOjlpYEhxf_wJUDuz6xxQ/videos" target="_blank">YouTube</a>: Video tutorials</li>
</ul>
</div>
""", unsafe_allow_html=True)
# Quick Links Section
st.markdown('<div class="sub-title">Quick Links</div>', unsafe_allow_html=True)
st.markdown("""
<div class="section">
<ul>
<li><a class="link" href="https://sparknlp.org/docs/en/quickstart" target="_blank">Getting Started</a></li>
<li><a class="link" href="https://nlp.johnsnowlabs.com/models" target="_blank">Pretrained Models</a></li>
<li><a class="link" href="https://github.com/JohnSnowLabs/spark-nlp/tree/master/examples/python/annotation/text/english" target="_blank">Example Notebooks</a></li>
<li><a class="link" href="https://sparknlp.org/docs/en/install" target="_blank">Installation Guide</a></li>
</ul>
</div>
""", unsafe_allow_html=True)