Download text_analysis/ui_text_analysis.py from kimadams/ai-kit: direct link, hf CLI and curl.
- Browser
- Download file 2.59 kB
-
https://huggingface.co/spaces/kimadams/ai-kit/resolve/main/text_analysis/ui_text_analysis.py
- Command line
-
hf download hf://spaces/kimadams/ai-kit/text_analysis/ui_text_analysis.py
-
curl -L -o ui_text_analysis.py https://huggingface.co/spaces/kimadams/ai-kit/resolve/main/text_analysis/ui_text_analysis.py
2.59 kB
| import gradio as gr | |
| import os | |
| import base64 | |
| import spacy | |
| from utilities import constants | |
| from spacy import displacy | |
| os.system('python -m spacy download en_core_web_sm') | |
| nlp = spacy.load("en_core_web_sm") | |
| input_examples=[ | |
| "Every day may not be good, but there's something good in every day.", | |
| "The best preparation for tomorrow is doing your best today.", | |
| "Believe you can, and you're halfway there."] | |
| def AnalyzeText(text): | |
| doc = nlp(text) | |
| svg = displacy.render(doc, style='dep') | |
| svg_base64_encoded = base64.b64encode(svg.encode('utf-8')).decode('utf-8') | |
| nlp_html = f""" | |
| <div style='display: flex; justify-content: center; align-items: center; width: 100%; overflow-x: auto;'> | |
| <img src="data:image/svg+xml;base64,{svg_base64_encoded}" | |
| style='display: block; max-width: 100%; height: auto; margin: auto;'/> | |
| </div> | |
| """ | |
| pos_count = { | |
| "char_count": len(text), | |
| "token_count": len(doc) | |
| } | |
| pos_tokens = [] | |
| for token in doc: | |
| pos_tokens.extend([(token.text, token.pos_), (" ", None)]) | |
| return pos_tokens, pos_count, nlp_html | |
| def Clear(clearBtn): | |
| return(constants.NLP_PROMPT, [], {}, []) | |
| with gr.Blocks() as ui: | |
| label = gr.Label(show_label=False, value=constants.TEXT_ANALYSIS, container=False) | |
| with gr.Column(): | |
| with gr.Row(): | |
| with gr.Column(): | |
| gr.Markdown(constants.PURPOSE_MD) | |
| gr.Markdown(constants.NLP_ANALYSIS_PURPOSE) | |
| with gr.Column(): | |
| gr.Markdown(constants.DIRECTIONS_MD) | |
| gr.Markdown(value=constants.NLP_ANALYSIS_DIRECTIONS) | |
| with gr.Row(): | |
| with gr.Column(): | |
| inputString=gr.Textbox(placeholder=constants.NLP_PROMPT, | |
| label="Input Text", lines=3,interactive=True) | |
| with gr.Row(): | |
| clearBtn=gr.Button(constants.CLEAR, variant="secondary") | |
| submitBtn=gr.Button(constants.SUBMIT, variant="primary") | |
| with gr.Column(): | |
| posTags=gr.HighlightedText(label=constants.TOKENS) | |
| gr.Markdown(constants.NLP_ANALYSIS_MD) | |
| posCount=gr.JSON() | |
| inputExampleSelect = gr.Examples(input_examples,inputs=[inputString],label="Or select an example." ) | |
| gr.Markdown(constants.NLP_POS_MAP_MD) | |
| posTokens=gr.HTML() | |
| submitBtn.click(AnalyzeText, inputs=[inputString], outputs=[posTags,posCount,posTokens]) | |
| clearBtn.click(Clear, inputs=[clearBtn], outputs=[inputString,posTags,posCount,posTokens]) |