Этот пакет содержит утилиты для визуализации моделей SPACY и создания интерактивных приложений, способствующих SPACY, с помощью потока. Он включает в себя различные строительные блоки, которые вы можете использовать в своем собственном приложении Streamlit, таких как визуализаторы для синтаксических зависимостей , названных объектов , классификации текста , семантического сходства с помощью векторов слов, атрибутов токена и многого другого.

Вы можете установить spacy-streamlit из PIP:
pip install spacy-streamlit Пакет включает в себя строительные блоки , которые вызывают в потоковую связь, и настраивают все необходимые элементы для вас. Вы можете либо использовать отдельные компоненты напрямую и объединить их с другими элементами в вашем приложении, либо вызвать функцию visualize , чтобы внедрить весь визуализатор.
Загрузите английскую модель из Spacy, чтобы начать.
python -m spacy download en_core_web_smЗатем поместите следующий пример кода в файл.
# 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 ) Затем вы можете запустить свое приложение с помощью streamlit run streamlit_app.py . Приложение должно появиться в вашем веб -браузере. ?
01_out-of-the-box.pyИспользуйте встроенный визуализатор с пользовательскими настройками вне коробки.
streamlit run https://raw.githubusercontent.com/explosion/spacy-streamlit/master/examples/01_out-of-the-box.py02_custom.pyИспользуйте отдельные компоненты в вашем существующем приложении.
streamlit run https://raw.githubusercontent.com/explosion/spacy-streamlit/master/examples/02_custom.py Эти функции могут использоваться в вашем приложении Streamlit. Они вызывают streamlit под капюшоном и устанавливают необходимые элементы.
visualizeВведите полный визуализатор с выбранными компонентами.
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 )| Аргумент | Тип | Описание |
|---|---|---|
models | Список [str] / dict [str, str] | Названия загружаемых моделей Spacy (пути или имена пакетов). Модели становятся выбираемыми через выпадающий список. Может быть либо списком имен, либо именами, отображенными с описаниями для отображения в раскрывающемся списке. |
default_text | стр | Текст по умолчанию для анализа на загрузке. По умолчанию "" . |
default_model | Необязательно [Str] | Необязательное имя модели по умолчанию. Если не установлено, используется первая модель в списке models . |
visualizers | Список [str] | Названия визуализаторов, чтобы показать. По умолчанию ["parser", "ner", "textcat", "similarity", "tokens"] . |
ner_labels | Необязательно [List [str]] | NER метки, чтобы включить. Если не установлено, будут использоваться все этикетки, присутствующие в компоненте трубопровода "ner" . |
ner_attrs | Список [str] | Атрибуты SPAN, показанные в таблице названных сущностей. См. visualizer.py для по умолчанию. |
token_attrs | Список [str] | Токеновые атрибуты, чтобы показать в токеновом визуализаторе. См. visualizer.py для по умолчанию. |
similarity_texts | Тупел [str, str] | Тексты по умолчанию для сравнения в визуализаторе сходства. По умолчанию ("apple", "orange") . |
show_json_doc | буль | Показать кнопку, чтобы переключить представление Doc JSON. По умолчанию к True . |
show_meta | буль | Показать кнопку для переключения meta.json текущего трубопровода. По умолчанию к True . |
show_config | буль | Показать кнопку для переключения config.cfg текущего трубопровода. По умолчанию к True . |
show_visualizer_select | буль | Показать раскрытие боковой панели, чтобы выбрать визуализаторы для отображения (на основе включенных визуализаторов). По умолчанию False . |
sidebar_title | Необязательно [Str] | Название показано на боковой панели. По умолчанию None . |
sidebar_description | Необязательно [Str] | Описание, показанное на боковой панели. Принимает текст, форматированный маркировкой. |
show_logo | буль | Покажите логотип Spacy в боковой панели. По умолчанию к True . |
color | Необязательно [Str] | Экспериментальный: основной цвет для использования для некоторых из основных элементов пользовательского интерфейса ( None , чтобы отключить взломать). По умолчанию "#09A3D5" . |
get_default_text | Callable [[ranguage], str] | Необязательный вызов, который принимает загруженный в настоящее время объект nlp и возвращает текст по умолчанию. Можно использовать для предоставления специфических для языка текстов по умолчанию. Если функция возвращает None , используется значение default_text , если доступно. По умолчанию None . |
visualize_parser Визуализируйте разбор зависимости и теги части речи, используя визуализатор displacy 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 )| Аргумент | Тип | Описание |
|---|---|---|
doc | Doc | Объект Spacy Doc для визуализации. |
| Ключевое слово | ||
title | Необязательно [Str] | Название блока визуализатора. |
key | Необязательно [Str] | Ключ, используемый для компонента Streamlit для выбора меток. |
manual | буль | Флаг, обозначающий, является ли аргумент DOC объектом DOC или списком DICT, содержащих информацию об анализе. |
displacy_options | Необязательно [DICT] | Словарь вариантов, которые должны быть переданы в метод рендеринга дисплеев для создания HTML, который будет представлен. См.: Https://spacy.io/api/top-level#options-dep |
visualize_ner Визуализируйте названные сущности в Doc , используя визуализатор displacy 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 )| Аргумент | Тип | Описание |
|---|---|---|
doc | Doc | Объект Spacy Doc для визуализации. |
| Ключевое слово | ||
labels | Последовательность [str] | Ярлыки, которые можно показать в выпадении лейблов. |
attrs | Список [str] | Атрибуты SPAN, чтобы показать в таблице объектов. |
show_table | буль | Показать ли таблица сущностей и их атрибуты. По умолчанию к True . |
title | Необязательно [Str] | Название блока визуализатора. |
colors | Дикт [str, str] | Словарь цветов для сущности простирается для визуализации, с ключами в качестве меток и соответствующих цветов в качестве значений. Этот аргумент скоро устанет. В будущем ARG необходимо пропустить в displacy_options ARG с ключом «Цвета».) |
key | Необязательно [Str] | Ключ, используемый для компонента Streamlit для выбора меток. |
manual | буль | Флаг, обозначающий, является ли аргумент DOC объектом DOC или списком DICT, содержащих сущности SPAN |
| информация. | ||
displacy_options | Необязательно [DICT] | Словарь вариантов, которые должны быть переданы в метод рендеринга дисплеев для создания HTML, который будет представлен. См. Https://spacy.io/api/top-level#displacy_options-ent. |
visualize_spans Визуализируйте пролеты в Doc , используя визуализатор дисплеера displacy .
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" }})| Аргумент | Тип | Описание |
|---|---|---|
doc | Doc | Объект Spacy Doc для визуализации. |
| Ключевое слово | ||
spans_key | Последовательность [str] | Который охватывает ключ для визуализации пролетов. По умолчанию «SC». |
attrs | Список [str] | Атрибуты на промежутке сущностей должны быть помечены. Атрибуты отображаются только тогда, когда аргумент show_table верен. |
show_table | буль | Показать ли таблицу пролетов и их атрибуты. По умолчанию к True . |
title | Необязательно [Str] | Название блока визуализатора. |
manual | буль | Флаг, обозначающий, является ли аргумент DOC объектом DOC или списком DICT, содержащих информацию о базе объекта. |
displacy_options | Необязательно [DICT] | Словарь вариантов, которые должны быть переданы в метод рендеринга дисплеев для создания HTML, который будет представлен. См. Https://spacy.io/api/top-level#displacy_options-pan. |
visualize_textcatВизуализируйте текстовые категории, предсказанные обученным текстовым классификатором.
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 )| Аргумент | Тип | Описание |
|---|---|---|
doc | Doc | Объект Spacy Doc для визуализации. |
| Ключевое слово | ||
title | Необязательно [Str] | Название блока визуализатора. |
visualize_similarityВизуализируйте семантическое сходство, используя векторы слова модели. Покажет предупреждение, если в модели нет векторов.
import spacy
from spacy_streamlit import visualize_similarity
nlp = spacy . load ( "en_core_web_lg" )
visualize_similarity ( nlp , ( "pizza" , "fries" ))| Аргумент | Тип | Описание |
|---|---|---|
nlp | Language | Загруженный объект nlp с векторами. |
default_texts | Тупел [str, str] | Тексты по умолчанию для сравнения на загрузке. По умолчанию ("apple", "orange") . |
| Ключевое слово | ||
threshold | плавать | Порог для того, что считается «похожим». Если показатель сходства больше порога, результат показан как аналогичный. По умолчанию до 0.5 . |
title | Необязательно [Str] | Название блока визуализатора. |
visualize_tokens Визуализируйте токены в Doc и их атрибутах.
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_" ])| Аргумент | Тип | Описание |
|---|---|---|
doc | Doc | Объект Spacy Doc для визуализации. |
| Ключевое слово | ||
attrs | Список [str] | Имена атрибутов токена для использования. См. visualizer.py для по умолчанию. |
title | Необязательно [Str] | Название блока визуализатора. |
Эти помощники пытаются кэшировать загруженные модели и создали объекты Doc .
process_text Обработайте текст с моделью данного имени и создайте объект Doc . Вызовы в помощник load_model для загрузки модели.
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 )| Аргумент | Тип | Описание |
|---|---|---|
model_name | стр | Нагружаемое название модели Spacy. Может быть название пути или пакета. |
text | стр | Текст для обработки. |
| Возврат | Doc | Обработанный документ. |
load_model Загрузите модель Spacy с пути или установленного пакета и верните загруженный объект nlp .
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 )| Аргумент | Тип | Описание |
|---|---|---|
name | стр | Нагружаемое название модели Spacy. Может быть название пути или пакета. |
| Возврат | Language | Загруженный объект nlp . |