Este pacote contém utilitários para visualizar modelos de spacy e criar aplicativos interativos de spacy com o StreamLit. Ele inclui vários blocos de construção que você pode usar em seu próprio aplicativo de streamlit, como visualizadores para dependências sintáticas , entidades nomeadas , classificação de texto , similaridade semântica por meio de vetores de palavras, atributos de token e muito mais.

Você pode instalar spacy-streamlit a partir de Pip:
pip install spacy-streamlit O pacote inclui blocos de construção que chamam o StreamLit e configuram todos os elementos necessários para você. Você pode usar os componentes individuais diretamente e combiná -los com outros elementos em seu aplicativo ou chamar a função visualize para incorporar todo o visualizador.
Faça o download do modelo inglês da Spacy para começar.
python -m spacy download en_core_web_smEm seguida, coloque o código de exemplo a seguir em um arquivo.
# 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 ) Em seguida, você pode executar seu aplicativo com streamlit run streamlit_app.py . O aplicativo deve aparecer no seu navegador da web. ?
01_out-of-the-box.pyUse o visualizador incorporado com configurações personalizadas prontas para uso.
streamlit run https://raw.githubusercontent.com/explosion/spacy-streamlit/master/examples/01_out-of-the-box.py02_custom.pyUse componentes individuais em seu aplicativo existente.
streamlit run https://raw.githubusercontent.com/explosion/spacy-streamlit/master/examples/02_custom.py Essas funções podem ser usadas no seu aplicativo Streamlit. Eles chamam para o streamlit sob o capô e configuram os elementos necessários.
visualizeIncorporar o visualizador completo com componentes selecionados.
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 )| Argumento | Tipo | Descrição |
|---|---|---|
models | Lista [str] / dict [str, str] | Nomes de modelos de spacy carregáveis (caminhos ou nomes de pacotes). Os modelos tornam -se selecionáveis por meio de um suspensão. Pode ser uma lista de nomes ou os nomes mapeados para as descrições para exibir no suspensão. |
default_text | str | Texto padrão para analisar na carga. Padrões para "" . |
default_model | Opcional [STR] | Nome opcional do modelo padrão. Se não estiver definido, o primeiro modelo na lista de models é usado. |
visualizers | Lista [STR] | Nomes de visualizadores para mostrar. Padrões para ["parser", "ner", "textcat", "similarity", "tokens"] . |
ner_labels | Opcional [List [STR]] | Etiquetas nerds para incluir. Se não estiver definido, todos os rótulos presentes no componente de pipeline "ner" serão usados. |
ner_attrs | Lista [STR] | Atributos de span mostrados na tabela de entidades nomeadas. Consulte visualizer.py para obter padrões. |
token_attrs | Lista [STR] | Atributos de token para mostrar no visualizador de token. Consulte visualizer.py para obter padrões. |
similarity_texts | Tupla [str, str] | Os textos padrão a serem comparados no visualizador de similaridade. Padrão para ("apple", "orange") . |
show_json_doc | bool | Mostre o botão para alternar a representação do JSON do Doc . Padrões para True . |
show_meta | bool | Mostre o botão para alternar meta.json do pipeline atual. Padrões para True . |
show_config | bool | Mostrar botão para alternar config.cfg do pipeline atual. Padrões para True . |
show_visualizer_select | bool | Mostre suspensão da barra lateral para selecionar visualizadores para exibir (com base nos visualizadores ativados). Padrões para False . |
sidebar_title | Opcional [STR] | Título mostrado na barra lateral. Padrões para None . |
sidebar_description | Opcional [STR] | Descrição mostrada na barra lateral. Aceite texto formatado em marcação. |
show_logo | bool | Mostre o logotipo do Spacy na barra lateral. Padrões para True . |
color | Opcional [STR] | Experimental: a cor primária a ser usada para alguns dos principais elementos da interface do usuário ( None para desativar o hack). Padrões para "#09A3D5" . |
get_default_text | Callable [[Idioma], STR] | Callable opcional que pega o objeto nlp atualmente carregado e retorna o texto padrão. Pode ser usado para fornecer textos padrão específicos para linguagem. Se a função retornar None , o valor do default_text será usado, se disponível. Padrões para None . |
visualize_parser Visualize a análise de dependência e as tags de parte de fala usando o Visualizador displacy da 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 )| Argumento | Tipo | Descrição |
|---|---|---|
doc | Doc | O Doc Spacy se objeto de visualizar. |
| apenas palavras-chave | ||
title | Opcional [STR] | Título do bloco de visualizador. |
key | Opcional [STR] | Chave usada para o componente Streamlit para selecionar etiquetas. |
manual | bool | Sinalizador significando se o argumento do documento é um objeto DOC ou uma lista de ditts contendo informações de análise. |
displacy_options | Opcional [ditado] | Dicionário de opções a serem transmitidas para o método renderizador de descontrolado para gerar o HTML a ser renderizado. Veja: https://spacy.io/api/top-level#options-dep |
visualize_ner Visualize as entidades nomeadas em um Doc usando o Visualizador displacy da 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 )| Argumento | Tipo | Descrição |
|---|---|---|
doc | Doc | O Doc Spacy se objeto de visualizar. |
| apenas palavras-chave | ||
labels | Sequência [STR] | Os rótulos para mostrar no suspensão dos rótulos. |
attrs | Lista [STR] | Os atributos do span são exibidos na tabela de entidades. |
show_table | bool | Se deve mostrar uma tabela de entidades e seus atributos. Padrões para True . |
title | Opcional [STR] | Título do bloco de visualizador. |
colors | Dict [str, str] | O dicionário de cores para a entidade se estende para visualizar, com teclas como rótulos e cores correspondentes como valores. Este argumento será obsoleto em breve. No futuro, as cores Arg precisam ser aprovadas no displacy_options arg com a chave "cores".) |
key | Opcional [STR] | Chave usada para o componente Streamlit para selecionar etiquetas. |
manual | bool | Sinalizador significando se o argumento do documento é um objeto de documentos ou uma lista de ditos que contêm espaço de entidade |
| Informação. | ||
displacy_options | Opcional [ditado] | Dicionário de opções a serem transmitidas para o método renderizador de descontrolado para gerar o HTML a ser renderizado. Consulte https://spacy.io/api/top-level#displacy_options-ent. |
visualize_spans Visualize vãos em um Doc usando o Visualizador displacy da 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" }})| Argumento | Tipo | Descrição |
|---|---|---|
doc | Doc | O Doc Spacy se objeto de visualizar. |
| apenas palavras-chave | ||
spans_key | Sequência [STR] | De que abrange a chave para renderizar a viana. O padrão é "SC". |
attrs | Lista [STR] | Os atributos no período da entidade a serem rotulados. Os atributos são exibidos apenas quando o argumento show_table é verdadeiro. |
show_table | bool | Se deve mostrar uma tabela de vãos e seus atributos. Padrões para True . |
title | Opcional [STR] | Título do bloco de visualizador. |
manual | bool | Sinalizador significando se o argumento do documento é um objeto DOC ou uma lista de ditts que contêm informações de abrangência da entidade. |
displacy_options | Opcional [ditado] | Dicionário de opções a serem transmitidas para o método renderizador de descontrolado para gerar o HTML a ser renderizado. Consulte https://spacy.io/api/top-level#displacy_options-span. |
visualize_textcatVisualize as categorias de texto previstas por um classificador de texto treinado.
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 )| Argumento | Tipo | Descrição |
|---|---|---|
doc | Doc | O Doc Spacy se objeto de visualizar. |
| apenas palavras-chave | ||
title | Opcional [STR] | Título do bloco de visualizador. |
visualize_similarityVisualize a similaridade semântica usando os vetores de palavras do modelo. Mostrará um aviso se nenhum vetores estiver presente no modelo.
import spacy
from spacy_streamlit import visualize_similarity
nlp = spacy . load ( "en_core_web_lg" )
visualize_similarity ( nlp , ( "pizza" , "fries" ))| Argumento | Tipo | Descrição |
|---|---|---|
nlp | Language | O objeto nlp carregado com vetores. |
default_texts | Tupla [str, str] | Os textos padrão a serem comparados na carga. Padrão para ("apple", "orange") . |
| apenas palavras-chave | ||
threshold | flutuador | Limiar para o que é considerado "semelhante". Se a pontuação da similaridade for maior que o limite, o resultado será mostrado como semelhante. Padrões para 0.5 . |
title | Opcional [STR] | Título do bloco de visualizador. |
visualize_tokens Visualize os tokens em um Doc e seus atributos.
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_" ])| Argumento | Tipo | Descrição |
|---|---|---|
doc | Doc | O Doc Spacy se objeto de visualizar. |
| apenas palavras-chave | ||
attrs | Lista [STR] | Os nomes dos atributos de token a serem usados. Consulte visualizer.py para obter padrões. |
title | Opcional [STR] | Título do bloco de visualizador. |
Esses ajudantes tentam armazenar em cache modelos carregados e criaram objetos Doc .
process_text Processe um texto com um modelo de um determinado nome e crie um objeto Doc . Chama o auxiliar load_model para carregar o modelo.
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 )| Argumento | Tipo | Descrição |
|---|---|---|
model_name | str | Nome do modelo Spacy carregado. Pode ser o caminho do caminho ou do pacote. |
text | str | O texto a ser processado. |
| Retorna | Doc | O documento processado. |
load_model Carregue um modelo Spacy a partir de um caminho ou pacote instalado e retorne um objeto nlp carregado.
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 )| Argumento | Tipo | Descrição |
|---|---|---|
name | str | Nome do modelo Spacy carregado. Pode ser o caminho do caminho ou do pacote. |
| Retorna | Language | O objeto nlp carregado. |