Bazedgul commited on
Commit
45ac614
·
1 Parent(s): 8ddad8e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +54 -17
app.py CHANGED
@@ -1,31 +1,68 @@
1
  import streamlit as st
2
  from nltk import ngrams
3
- from nltk.tokenize import word_tokenize
4
 
 
 
5
 
6
- def generate_ngrams(text, n):
7
- tokens = word_tokenize(text)
 
8
  n_grams = list(ngrams(tokens, n))
9
- return [' '.join(gram) for gram in n_grams]
10
 
 
11
  def main():
12
- st.title("N-gram Input Text")
 
 
 
 
 
13
 
14
-
15
- text_input = st.text_area("Enter text:", "Type your text here.")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
 
17
-
18
- n_value = st.slider("Choose N for N-grams:", min_value=2, max_value=5, value=2)
19
 
20
-
21
- if st.button("Generate N-grams"):
22
- if text_input:
23
- ngrams_result = generate_ngrams(text_input, n_value)
24
- st.write(f"{n_value}-grams:")
25
- for ngram in ngrams_result:
26
- st.write(ngram)
 
 
 
27
  else:
28
- st.warning("Please Write some text.")
 
 
 
29
 
30
  if __name__ == "__main__":
31
  main()
 
1
  import streamlit as st
2
  from nltk import ngrams
3
+ import nltk
4
 
5
+ # Download NLTK data
6
+ nltk.download('punkt')
7
 
8
+ # Function to extract n-grams from the input text
9
+ def extract_ngrams(text, n):
10
+ tokens = nltk.word_tokenize(text)
11
  n_grams = list(ngrams(tokens, n))
12
+ return n_grams
13
 
14
+ # Main function for Streamlit app
15
  def main():
16
+ # Set page title and favicon
17
+ st.set_page_config(
18
+ page_title="N-gram Extractor",
19
+ page_icon=":memo:",
20
+ layout="wide"
21
+ )
22
 
23
+ # Set overall page style
24
+ st.markdown(
25
+ """
26
+ <style>
27
+ body {
28
+ color: #333;
29
+ background-color: #f8f9fa;
30
+ }
31
+ .main {
32
+ border: 2px solid #28a745;
33
+ border-radius: 10px;
34
+ padding: 20px;
35
+ margin: 20px;
36
+ }
37
+ h1 {
38
+ color: #007bff;
39
+ }
40
+ p, label, .stMarkdown, .stTextInput, .stSlider, .stButton {
41
+ font-weight: bold;
42
+ }
43
+ </style>
44
+ """,
45
+ unsafe_allow_html=True
46
+ )
47
 
48
+ # Page layout
49
+ st.title("N-gram Extractor")
50
 
51
+ # User input for text passage
52
+ text_input = st.text_area("Enter a text passage:", "")
53
+
54
+ # Slider to choose the value of n for n-grams
55
+ n = st.slider("Select the value of n for n-grams:", min_value=1, max_value=5, value=2)
56
+
57
+ # Button to trigger n-gram extraction
58
+ if st.button("Extract N-grams"):
59
+ if not text_input:
60
+ st.warning("Please enter a text passage.")
61
  else:
62
+ # Extract and display n-grams
63
+ n_grams_result = extract_ngrams(text_input, n)
64
+ st.subheader(f"{n}-grams:")
65
+ st.write(n_grams_result)
66
 
67
  if __name__ == "__main__":
68
  main()