| import streamlit as st |
| import subprocess |
|
|
| |
| subprocess.run(["pip", "install", "nltk"]) |
|
|
| import nltk |
| nltk.download('punkt') |
|
|
| from nltk import ngrams |
| from nltk.tokenize import word_tokenize |
|
|
| |
| def generate_ngrams(text, n): |
| tokens = word_tokenize(text) |
| n_grams = ngrams(tokens, n) |
| return [' '.join(gram) for gram in n_grams] |
|
|
| |
| def main(): |
| st.title("N-gram Generator") |
|
|
| |
| text_input = st.text_area("Enter text passage:") |
|
|
| |
| n_gram_type = st.selectbox("Select n-gram type:", ["Bigram", "Trigram", "Custom N-gram"]) |
|
|
| |
| if n_gram_type == "Bigram": |
| n_value = 2 |
| elif n_gram_type == "Trigram": |
| n_value = 3 |
| else: |
| n_value = st.number_input("Enter the value of N:", min_value=1, value=2, step=1) |
|
|
| |
| if st.button("Generate N-grams"): |
| if text_input: |
| ngrams_result = generate_ngrams(text_input, n_value) |
| st.write(f"{n_gram_type}s:") |
| for gram in ngrams_result: |
| st.write(gram) |
| else: |
| st.warning("Please enter a text passage.") |
|
|
| if __name__ == "__main__": |
| main() |