miesnerjacob commited on
Commit
2644c54
β€’
1 Parent(s): b4401d7

removed extra annotation files

Browse files
Files changed (3) hide show
  1. app.py +6 -6
  2. text_annotation.py +0 -51
  3. text_annotation_utils.py +0 -127
app.py CHANGED
@@ -1,6 +1,6 @@
1
  import pandas as pd
2
  import streamlit as st
3
- from text_annotation import annotated_text
4
  from streamlit_option_menu import option_menu
5
  from sentiment_analysis import SentimentAnalysis
6
  from keyword_extraction import KeywordExtractor
@@ -134,7 +134,7 @@ elif page == "Sentiment Analysis":
134
 
135
  text = st.text_area("Paste text here", value="")
136
 
137
- if st.button('Start!'):
138
  with st.spinner("Loading..."):
139
  preds, html = sentiment_analyzer.run(text)
140
  st.success('All done!')
@@ -160,7 +160,7 @@ elif page == "Keyword Extraction":
160
 
161
  max_keywords = st.slider('# of Keywords Max Limit', min_value=1, max_value=10, value=5, step=1)
162
 
163
- if st.button('Start!'):
164
  with st.spinner("Loading..."):
165
  annotation, keywords = keyword_extractor.generate(text, max_keywords)
166
  st.success('All done!')
@@ -191,7 +191,7 @@ elif page == "Part of Speech Tagging":
191
 
192
  text = st.text_area("Paste text here", value="")
193
 
194
- if st.button('Start!'):
195
  with st.spinner("Loading..."):
196
  preds = pos_tagger.classify(text)
197
  st.success('All done!')
@@ -213,7 +213,7 @@ elif page == "Emotion Detection":
213
 
214
  text = st.text_area("Paste text here", value="")
215
 
216
- if st.button('Start!'):
217
  with st.spinner("Loading..."):
218
  preds, html = emotion_detector.run(text)
219
  st.success('All done!')
@@ -237,7 +237,7 @@ elif page == "Named Entity Recognition":
237
 
238
  text = st.text_area("Paste text here", value="")
239
 
240
- if st.button('Start!'):
241
  with st.spinner("Loading..."):
242
  preds, ner_annotation = ner.classify(text)
243
  st.success('All done!')
 
1
  import pandas as pd
2
  import streamlit as st
3
+ from annotated_text import annotated_text
4
  from streamlit_option_menu import option_menu
5
  from sentiment_analysis import SentimentAnalysis
6
  from keyword_extraction import KeywordExtractor
 
134
 
135
  text = st.text_area("Paste text here", value="")
136
 
137
+ if st.button('πŸ”₯ Run!'):
138
  with st.spinner("Loading..."):
139
  preds, html = sentiment_analyzer.run(text)
140
  st.success('All done!')
 
160
 
161
  max_keywords = st.slider('# of Keywords Max Limit', min_value=1, max_value=10, value=5, step=1)
162
 
163
+ if st.button('πŸ”₯ Run!'):
164
  with st.spinner("Loading..."):
165
  annotation, keywords = keyword_extractor.generate(text, max_keywords)
166
  st.success('All done!')
 
191
 
192
  text = st.text_area("Paste text here", value="")
193
 
194
+ if st.button('πŸ”₯ Run!'):
195
  with st.spinner("Loading..."):
196
  preds = pos_tagger.classify(text)
197
  st.success('All done!')
 
213
 
214
  text = st.text_area("Paste text here", value="")
215
 
216
+ if st.button('πŸ”₯ Run!'):
217
  with st.spinner("Loading..."):
218
  preds, html = emotion_detector.run(text)
219
  st.success('All done!')
 
237
 
238
  text = st.text_area("Paste text here", value="")
239
 
240
+ if st.button('πŸ”₯ Run!'):
241
  with st.spinner("Loading..."):
242
  preds, ner_annotation = ner.classify(text)
243
  st.success('All done!')
text_annotation.py DELETED
@@ -1,51 +0,0 @@
1
- import streamlit as st
2
- from text_annotation_utils import *
3
-
4
- def annotated_text(*args, type=None):
5
- """Writes text with annotations into your Streamlit app.
6
- Parameters
7
- ----------
8
- *args : str, tuple or htbuilder.HtmlElement
9
- Arguments can be:
10
- - strings, to draw the string as-is on the screen.
11
- - tuples of the form (main_text, annotation_text, background, color) where
12
- background and foreground colors are optional and should be an CSS-valid string such as
13
- "#aabbcc" or "rgb(10, 20, 30)"
14
- - HtmlElement objects in case you want to customize the annotations further. In particular,
15
- you can import the `annotation()` function from this module to easily produce annotations
16
- whose CSS you can customize via keyword arguments.
17
- Examples
18
- --------
19
- # >>> annotated_text(
20
- # ... "This ",
21
- # ... ("is", "verb", "#8ef"),
22
- # ... " some ",
23
- # ... ("annotated", "adj", "#faa"),
24
- # ... ("text", "noun", "#afa"),
25
- # ... " for those of ",
26
- # ... ("you", "pronoun", "#fea"),
27
- # ... " who ",
28
- # ... ("like", "verb", "#8ef"),
29
- # ... " this sort of ",
30
- # ... ("thing", "noun", "#afa"),
31
- # ... )
32
- # >>> annotated_text(
33
- # ... "Hello ",
34
- # ... annotation("world!", "noun", color="#8ef", border="1px dashed red"),
35
- # ... )
36
- """
37
- if type == 'title':
38
- st.markdown(
39
- '<p class="big-font">' + get_annotated_html(*args)+ '</p>',
40
- unsafe_allow_html=True,
41
- )
42
- if type == 'description':
43
- st.markdown(
44
- '<p class="medium-font">' + get_annotated_html(*args) + '</p>',
45
- unsafe_allow_html=True,
46
- )
47
- else:
48
- st.markdown(
49
- get_annotated_html(*args),
50
- unsafe_allow_html=True,
51
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
text_annotation_utils.py DELETED
@@ -1,127 +0,0 @@
1
- import html
2
- from htbuilder import H, HtmlElement, styles
3
- from htbuilder.units import unit
4
-
5
- # Only works in 3.7+: from htbuilder import div, span
6
- div = H.div
7
- span = H.span
8
-
9
- # Only works in 3.7+: from htbuilder.units import px, rem, em
10
- px = unit.px
11
- rem = unit.rem
12
- em = unit.em
13
-
14
- # Colors from the Streamlit palette.
15
- # These are red-70, orange-70, ..., violet-70, gray-70.
16
- PALETTE = [
17
- "#ff4b4b",
18
- "#ffa421",
19
- "#ffe312",
20
- "#21c354",
21
- "#00d4b1",
22
- "#00c0f2",
23
- "#1c83e1",
24
- "#803df5",
25
- "#808495",
26
- ]
27
-
28
- OPACITIES = [
29
- "33", "66",
30
- ]
31
-
32
- def annotation(body, label="", background=None, color=None, **style):
33
- """Build an HtmlElement span object with the given body and annotation label.
34
- The end result will look something like this:
35
- [body | label]
36
- Parameters
37
- ----------
38
- body : string
39
- The string to put in the "body" part of the annotation.
40
- label : string
41
- The string to put in the "label" part of the annotation.
42
- background : string or None
43
- The color to use for the background "chip" containing this annotation.
44
- If None, will use a random color based on the label.
45
- color : string or None
46
- The color to use for the body and label text.
47
- If None, will use the document's default text color.
48
- style : dict
49
- Any CSS you want to apply to the containing "chip". This is useful for things like
50
- Examples
51
- --------
52
- Produce a simple annotation with default colors:
53
- # >>> annotation("apple", "fruit")
54
- Produce an annotation with custom colors:
55
- # >>> annotation("apple", "fruit", background="#FF0", color="black")
56
- Produce an annotation with crazy CSS:
57
- # >>> annotation("apple", "fruit", background="#FF0", border="1px dashed red")
58
- """
59
-
60
- color_style = {}
61
-
62
- if color:
63
- color_style['color'] = color
64
-
65
- if not background:
66
- label_sum = sum(ord(c) for c in label)
67
- background_color = PALETTE[label_sum % len(PALETTE)]
68
- background_opacity = OPACITIES[label_sum % len(OPACITIES)]
69
- background = background_color + background_opacity
70
-
71
- return (
72
- span(
73
- style=styles(
74
- background=background,
75
- border_radius=rem(0.33),
76
- padding=(rem(0.125), rem(0.5)),
77
- overflow="hidden",
78
- **color_style,
79
- **style,
80
- ))(
81
-
82
- html.escape(body),
83
-
84
- span(
85
- style=styles(
86
- padding_left=rem(0.5),
87
- text_transform="uppercase",
88
- ))(
89
- span(
90
- style=styles(
91
- font_size=em(0.67),
92
- opacity=0.5,
93
- ))(
94
- html.escape(label),
95
- ),
96
- ),
97
- )
98
- )
99
-
100
-
101
- def get_annotated_html(*args):
102
- """Writes text with annotations into an HTML string.
103
- Parameters
104
- ----------
105
- *args : see annotated_text()
106
- Returns
107
- -------
108
- str
109
- An HTML string.
110
- """
111
-
112
- out = div()
113
-
114
- for arg in args:
115
- if isinstance(arg, str):
116
- out(html.escape(arg))
117
-
118
- elif isinstance(arg, HtmlElement):
119
- out(arg)
120
-
121
- elif isinstance(arg, tuple):
122
- out(annotation(*arg))
123
-
124
- else:
125
- raise Exception("Bad input")
126
-
127
- return str(out)