59 lines
2.4 KiB
Python
59 lines
2.4 KiB
Python
"""Text analysis tools using textstat."""
|
|
|
|
import streamlit as st
|
|
from textstat import textstat
|
|
|
|
def analyze_text(text):
|
|
"""Analyze text using textstat metrics."""
|
|
if not text:
|
|
st.warning("Please enter some text to analyze.")
|
|
return
|
|
|
|
# Calculate various metrics
|
|
metrics = {
|
|
"Flesch Reading Ease": textstat.flesch_reading_ease(text),
|
|
"Flesch-Kincaid Grade Level": textstat.flesch_kincaid_grade(text),
|
|
"Gunning Fog Index": textstat.gunning_fog(text),
|
|
"SMOG Index": textstat.smog_index(text),
|
|
"Automated Readability Index": textstat.automated_readability_index(text),
|
|
"Coleman-Liau Index": textstat.coleman_liau_index(text),
|
|
"Linsear Write Formula": textstat.linsear_write_formula(text),
|
|
"Dale-Chall Readability Score": textstat.dale_chall_readability_score(text),
|
|
"Readability Consensus": textstat.readability_consensus(text)
|
|
}
|
|
|
|
# Display metrics in a clean format
|
|
st.subheader("Text Analysis Results")
|
|
for metric, value in metrics.items():
|
|
st.metric(metric, f"{value:.2f}")
|
|
|
|
# Add visualizations
|
|
st.subheader("Visualization")
|
|
st.bar_chart(metrics)
|
|
|
|
st.title("📖 Text Readability Analyzer: Making Your Content Easy to Read")
|
|
|
|
st.write("""
|
|
This tool is your guide to writing content that's easy for your audience to understand.
|
|
Just paste in a sample of your text, and we'll break down the readability scores and offer actionable tips!
|
|
""")
|
|
|
|
text_input = st.text_area("Paste your text here:", height=200)
|
|
|
|
if st.button("Analyze!"):
|
|
with st.spinner("Analyzing your text..."):
|
|
test_data = text_input
|
|
if not test_data.strip():
|
|
st.error("Please enter text to analyze.")
|
|
else:
|
|
analyze_text(test_data)
|
|
|
|
st.subheader("Key Takeaways:")
|
|
st.write("---")
|
|
st.markdown("""
|
|
* **Don't Be Afraid to Simplify!** Often, simpler language makes content more impactful and easier to digest.
|
|
* **Aim for a Reading Level Appropriate for Your Audience:** Consider the education level, background, and familiarity of your readers.
|
|
* **Use Short Sentences:** This makes your content more scannable and easier to read.
|
|
* **Write for Everyone:** Accessibility should always be a priority. When in doubt, aim for clear, concise language!
|
|
""")
|