Spaces:
Sleeping
Sleeping
import streamlit as st | |
import spacy | |
from spacy import displacy | |
from collections import Counter | |
# Load the English language model | |
nlp = spacy.load("en_core_web_sm") | |
def process_text(text): | |
# Process the text using the spaCy pipeline | |
doc = nlp(text) | |
# Extract the named entities | |
entities = [(ent.text, ent.label_) for ent in doc.ents] | |
# Count the occurrences of each entity type | |
entity_counts = Counter([ent[1] for ent in entities]) | |
# Visualize the named entities using displacy | |
ent_html = displacy.render(doc, style="ent") | |
return ent_html, dict(entity_counts) | |
def main(): | |
st.set_page_config(page_title="Named Entity Extraction") | |
st.title("Named Entity Extraction") | |
st.write("This app uses spaCy to extract named entities from the given text and visualize them.") | |
text = st.text_area("Text to Process", height=200, placeholder="Enter the text you want to analyze") | |
if st.button("Process Text"): | |
ent_html, entity_counts = process_text(text) | |
st.markdown(ent_html, unsafe_allow_html=True) | |
st.subheader("Entity Type Counts") | |
st.dataframe(entity_counts, use_container_width=True) | |
if __name__ == "__main__": | |
main() |