Ce package contient des services publics pour visualiser les modèles Spacy et créer des applications interactives alimentées par Spacy avec rationalisation. Il comprend divers blocs de construction que vous pouvez utiliser dans votre propre application rationalisée, comme les visualiseurs pour les dépendances syntaxiques , les entités nommées , la classification du texte , la similitude sémantique via des vecteurs de mots, des attributs de jetons, etc.

Vous pouvez installer spacy-streamlit à partir de PIP:
pip install spacy-streamlit Le package comprend des blocs de construction qui appellent le rationalisation et configurent tous les éléments requis pour vous. Vous pouvez soit utiliser directement les composants individuels et les combiner avec d'autres éléments de votre application, soit appeler la fonction visualize pour intégrer l'ensemble du visualiseur.
Téléchargez le modèle anglais depuis Spacy pour commencer.
python -m spacy download en_core_web_smMettez ensuite l'exemple de code suivant dans un fichier.
# streamlit_app.py
import spacy_streamlit
models = [ "en_core_web_sm" , "en_core_web_md" ]
default_text = "Sundar Pichai is the CEO of Google."
spacy_streamlit . visualize ( models , default_text ) Vous pouvez ensuite exécuter votre application avec streamlit run streamlit_app.py . L'application doit apparaître dans votre navigateur Web. ?
01_out-of-the-box.pyUtilisez le visualiseur intégré avec des paramètres personnalisés prêts à l'emploi.
streamlit run https://raw.githubusercontent.com/explosion/spacy-streamlit/master/examples/01_out-of-the-box.py02_custom.pyUtilisez des composants individuels dans votre application existante.
streamlit run https://raw.githubusercontent.com/explosion/spacy-streamlit/master/examples/02_custom.py Ces fonctions peuvent être utilisées dans votre application Streamlit. Ils appellent dans streamlit sous le capot et installent les éléments requis.
visualizeEntrez le visualiseur complet avec des composants sélectionnés.
import spacy_streamlit
models = [ "en_core_web_sm" , "/path/to/model" ]
default_text = "Sundar Pichai is the CEO of Google."
visualizers = [ "ner" , "textcat" ]
spacy_streamlit . visualize ( models , default_text , visualizers )| Argument | Taper | Description |
|---|---|---|
models | Liste [Str] / Dict [Str, Str] | Noms des modèles de spacy chargés (chemins ou noms de packages). Les modèles deviennent sélectionnables via une liste déroulante. Peut être une liste de noms ou les noms mappés aux descriptions à afficher dans la liste déroulante. |
default_text | Str | Le texte par défaut analyse sur la charge. Par défaut "" . |
default_model | Facultatif [Str] | Nom facultatif du modèle par défaut. Si ce n'est pas défini, le premier modèle de la liste des models est utilisé. |
visualizers | Liste [Str] | Noms des visualiseurs à montrer. Par défaut est ["parser", "ner", "textcat", "similarity", "tokens"] . |
ner_labels | Facultatif [liste [Str]] | Étiquettes NER à inclure. S'il n'est pas défini, toutes les étiquettes présentes dans le composant du pipeline "ner" seront utilisées. |
ner_attrs | Liste [Str] | Attributs Span indiqués dans le tableau des entités nommées. Voir visualizer.py pour les valeurs par défaut. |
token_attrs | Liste [Str] | Attributs de jetons à afficher dans le visualiseur de jetons. Voir visualizer.py pour les valeurs par défaut. |
similarity_texts | Tuple [str, str] | Les textes par défaut à comparer dans le visualiseur de similitude. Par défaut ("apple", "orange") . |
show_json_doc | bool | Afficher le bouton pour basculer la représentation JSON du Doc . Par défaut est True . |
show_meta | bool | Afficher le bouton pour basculer meta.json du pipeline actuel. Par défaut est True . |
show_config | bool | Afficher le bouton pour basculer config.cfg du pipeline actuel. Par défaut est True . |
show_visualizer_select | bool | Afficher la liste déroulante de la barre latérale pour sélectionner les visualiseurs à afficher (en fonction des visualiseurs activés). Par défaut est False . |
sidebar_title | Facultatif [Str] | Titre montré dans la barre latérale. Par défaut à None . |
sidebar_description | Facultatif [Str] | Description montrée dans la barre latérale. Accepte le texte de la marque de marque. |
show_logo | bool | Montrez le logo Spacy dans la barre latérale. Par défaut est True . |
color | Facultatif [Str] | Expérimental: couleur primaire à utiliser pour certains des principaux éléments de l'interface utilisateur ( None pour désactiver le piratage). Par défaut "#09A3D5" . |
get_default_text | Callable [[Langue], Str] | Calable facultatif qui prend l'objet nlp actuellement chargé et renvoie le texte par défaut. Peut être utilisé pour fournir des textes par défaut spécifiques à la langue. Si la fonction ne renvoie None , la valeur de default_text est utilisée, si disponible. Par défaut à None . |
visualize_parser Visualisez l'analyse de dépendance et les balises d'une partie du discours à l'aide du visualiseur displacy de Spacy.
import spacy
from spacy_streamlit import visualize_parser
nlp = spacy . load ( "en_core_web_sm" )
doc = nlp ( "This is a text" )
visualize_parser ( doc )| Argument | Taper | Description |
|---|---|---|
doc | Doc | L'objet Spacy Doc à visualiser. |
| mot-clé uniquement | ||
title | Facultatif [Str] | Titre du bloc Visualizer. |
key | Facultatif [Str] | Clé utilisé pour le composant STAILLIT pour sélectionner des étiquettes. |
manual | bool | Flag signifiant si l'argument DOC est un objet DOC ou une liste de dicts contenant des informations d'analyse. |
displacy_options | Facultatif [dict] | Dictionnaire des options à transmettre à la méthode de rendu de déshumation pour générer le HTML à rendre. Voir: https://spacy.io/api/top-level#options-dep |
visualize_ner Visualisez les entités nommées dans un Doc en utilisant le visualiseur displacy de Spacy.
import spacy
from spacy_streamlit import visualize_ner
nlp = spacy . load ( "en_core_web_sm" )
doc = nlp ( "Sundar Pichai is the CEO of Google." )
visualize_ner ( doc , labels = nlp . get_pipe ( "ner" ). labels )| Argument | Taper | Description |
|---|---|---|
doc | Doc | L'objet Spacy Doc à visualiser. |
| mot-clé uniquement | ||
labels | Séquence [str] | Les étiquettes à afficher dans les étiquettes déroulantes. |
attrs | Liste [Str] | Les attributs de Span à afficher dans la table des entités. |
show_table | bool | S'il faut montrer un tableau d'entités et leurs attributs. Par défaut est True . |
title | Facultatif [Str] | Titre du bloc Visualizer. |
colors | Dict [str, str] | Dictionnaire des couleurs pour que l'entité s'étend à visualiser, avec des clés comme étiquettes et des couleurs correspondantes que les valeurs. Cet argument sera bientôt obsolète. À l'avenir, les couleurs arg doivent être transmises dans les displacy_options arg avec la clé "couleurs".) |
key | Facultatif [Str] | Clé utilisé pour le composant STAILLIT pour sélectionner des étiquettes. |
manual | bool | Flag signifiant si l'argument DOC est un objet DOC ou une liste de dicts contenant une entité |
| information. | ||
displacy_options | Facultatif [dict] | Dictionnaire des options à transmettre à la méthode de rendu de déshumation pour générer le HTML à rendre. Voir https://spacy.io/api/top-level#displacy_options-ent. |
visualize_spans Visualisez des étendues dans un Doc en utilisant le visualiseur de displacy de Spacy.
import spacy
from spacy_streamlit import visualize_spans
nlp = spacy . load ( "en_core_web_sm" )
doc = nlp ( "Sundar Pichai is the CEO of Google." )
span = doc [ 4 : 7 ] # CEO of Google
span . label_ = "CEO"
doc . spans [ "job_role" ] = [ span ]
visualize_spans ( doc , spans_key = "job_role" , displacy_options = { "colors" : { "CEO" : "#09a3d5" }})| Argument | Taper | Description |
|---|---|---|
doc | Doc | L'objet Spacy Doc à visualiser. |
| mot-clé uniquement | ||
spans_key | Séquence [str] | Qui s'étend sur la clé pour faire des étendues. La valeur par défaut est "SC". |
attrs | Liste [Str] | Les attributs de la duprès de l'entité à étiqueter. Les attributs ne sont affichés que lorsque l'argument show_table est vrai. |
show_table | bool | S'il faut montrer un tableau de portées et leurs attributs. Par défaut est True . |
title | Facultatif [Str] | Titre du bloc Visualizer. |
manual | bool | Flag signifiant si l'argument DOC est un objet DOC ou une liste de dicts contenant des informations sur la portée de l'entité. |
displacy_options | Facultatif [dict] | Dictionnaire des options à transmettre à la méthode de rendu de déshumation pour générer le HTML à rendre. Voir https://spacy.io/api/top-level#displacy_options-span. |
visualize_textcatVisualisez les catégories de texte prédites par un classificateur de texte formé.
import spacy
from spacy_streamlit import visualize_textcat
nlp = spacy . load ( "./my_textcat_model" )
doc = nlp ( "This is a text about a topic" )
visualize_textcat ( doc )| Argument | Taper | Description |
|---|---|---|
doc | Doc | L'objet Spacy Doc à visualiser. |
| mot-clé uniquement | ||
title | Facultatif [Str] | Titre du bloc Visualizer. |
visualize_similarityVisualisez la similitude sémantique à l'aide des vecteurs de mots du modèle. Montrera un avertissement si aucun vecteur n'est présent dans le modèle.
import spacy
from spacy_streamlit import visualize_similarity
nlp = spacy . load ( "en_core_web_lg" )
visualize_similarity ( nlp , ( "pizza" , "fries" ))| Argument | Taper | Description |
|---|---|---|
nlp | Language | L'objet nlp chargé avec des vecteurs. |
default_texts | Tuple [str, str] | Les textes par défaut à comparer sur la charge. Par défaut ("apple", "orange") . |
| mot-clé uniquement | ||
threshold | flotter | Seuil pour ce qui est considéré comme "similaire". Si le score de similitude est supérieur au seuil, le résultat est montré comme similaire. Par défaut à 0.5 . |
title | Facultatif [Str] | Titre du bloc Visualizer. |
visualize_tokens Visualisez les jetons dans un Doc et leurs attributs.
import spacy
from spacy_streamlit import visualize_tokens
nlp = spacy . load ( "en_core_web_sm" )
doc = nlp ( "This is a text" )
visualize_tokens ( doc , attrs = [ "text" , "pos_" , "dep_" , "ent_type_" ])| Argument | Taper | Description |
|---|---|---|
doc | Doc | L'objet Spacy Doc à visualiser. |
| mot-clé uniquement | ||
attrs | Liste [Str] | Les noms des attributs de jetons à utiliser. Voir visualizer.py pour les valeurs par défaut. |
title | Facultatif [Str] | Titre du bloc Visualizer. |
Ces aides tentent de mettre en cache des modèles chargés et de créer des objets Doc .
process_text Traitez un texte avec un modèle d'un nom donné et créez un objet Doc . Appelle l'assistance load_model pour charger le modèle.
import streamlit as st
from spacy_streamlit import process_text
spacy_model = st . sidebar . selectbox ( "Model name" , [ "en_core_web_sm" , "en_core_web_md" ])
text = st . text_area ( "Text to analyze" , "This is a text" )
doc = process_text ( spacy_model , text )| Argument | Taper | Description |
|---|---|---|
model_name | Str | Nom du modèle Spacy chargé. Peut être le nom du chemin ou du package. |
text | Str | Le texte à traiter. |
| Rendements | Doc | Le document traité. |
load_model Chargez un modèle spacy à partir d'un chemin d'accès ou du package installé et renvoyez un objet nlp chargé.
import streamlit as st
from spacy_streamlit import load_model
spacy_model = st . sidebar . selectbox ( "Model name" , [ "en_core_web_sm" , "en_core_web_md" ])
nlp = load_model ( spacy_model )| Argument | Taper | Description |
|---|---|---|
name | Str | Nom du modèle Spacy chargé. Peut être le nom du chemin ou du package. |
| Rendements | Language | L'objet nlp chargé. |