Spaces:
Runtime error
Runtime error
new: Add sidebar and explanation
Browse files
app.py
CHANGED
@@ -18,31 +18,55 @@ HTML_WRAPPER = """<div style="overflow-x: auto; border: 1px solid #e6e9ef; borde
|
|
18 |
|
19 |
def render_entities(doc, colors: dict, options: dict) -> str:
|
20 |
"""
|
21 |
-
Takes a SpaCy doc
|
22 |
"""
|
23 |
|
24 |
-
#if isinstance(doc, spacy.tokens.doc.Doc):
|
25 |
-
# doc = doc.to_json()
|
26 |
-
|
27 |
html = spacy.displacy.render(doc, style="ent", options=options)
|
28 |
html = html.replace("\n", " ")
|
29 |
|
30 |
return html
|
31 |
|
32 |
|
33 |
-
st.header("Location
|
|
|
|
|
|
|
|
|
|
|
34 |
|
35 |
-
|
|
|
|
|
|
|
36 |
|
37 |
-
|
38 |
-
|
39 |
-
doc = nlp(sample["text"])
|
40 |
html = render_entities(doc, colors, options)
|
41 |
-
text = st.text_area("Text input", value=sample["text"], height=200)
|
42 |
st.write(HTML_WRAPPER.format(html), unsafe_allow_html=True)
|
43 |
-
|
|
|
|
|
|
|
|
|
44 |
sample = random.choice(grants)
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
|
19 |
def render_entities(doc, colors: dict, options: dict) -> str:
|
20 |
"""
|
21 |
+
Takes a SpaCy doc and renders the entities with the given colors.
|
22 |
"""
|
23 |
|
|
|
|
|
|
|
24 |
html = spacy.displacy.render(doc, style="ent", options=options)
|
25 |
html = html.replace("\n", " ")
|
26 |
|
27 |
return html
|
28 |
|
29 |
|
30 |
+
st.sidebar.header("Location Recognition Demo πππ")
|
31 |
+
st.sidebar.markdown(
|
32 |
+
"""
|
33 |
+
This example application accompanies the blog post: [Extracting useful information from documents with Named Entity Recognition]().
|
34 |
+
It uses a pre-trained Named Entity Recognition (NER) model from the [spaCy](https://spacy.io/) library to extract locations from your own examples, or a sample of grant applications from The Wellcome Trust.
|
35 |
+
The application will extract the following types of location entity:
|
36 |
|
37 |
+
* __GPE__: Geopolitical entities (countries, cities, states)
|
38 |
+
* __LOC__: Locations (mountains, rivers, lakes)
|
39 |
+
"""
|
40 |
+
)
|
41 |
|
42 |
+
|
43 |
+
def show_example(text):
|
|
|
44 |
html = render_entities(doc, colors, options)
|
|
|
45 |
st.write(HTML_WRAPPER.format(html), unsafe_allow_html=True)
|
46 |
+
|
47 |
+
return text
|
48 |
+
|
49 |
+
|
50 |
+
if st.button("Show Wellcome example", key="text"):
|
51 |
sample = random.choice(grants)
|
52 |
+
text = st.text_area(
|
53 |
+
"Add your own text or click the button to see a Wellcome example",
|
54 |
+
value=sample["text"],
|
55 |
+
height=200,
|
56 |
+
help="Enter your own text and press CTRL + ENTER to search for entities",
|
57 |
+
)
|
58 |
+
doc = nlp(text)
|
59 |
+
show_example(doc.text)
|
60 |
+
else:
|
61 |
+
text = st.text_area(
|
62 |
+
"Add your own text or click the button to see a Wellcome example",
|
63 |
+
value="Enter your text here",
|
64 |
+
height=200,
|
65 |
+
help="Enter your own text and press CTRL + ENTER to search for entities",
|
66 |
+
)
|
67 |
+
doc = nlp(text)
|
68 |
+
show_example(doc.text)
|
69 |
+
|
70 |
+
st.markdown(
|
71 |
+
"Examples from The Wellcome Trust are taken from data that are publishes openly at [360 Giving](https://data.threesixtygiving.org/). They are published under a [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) license."
|
72 |
+
)
|