spacy streamlit
v1.0.6
该软件包包含用于可视化Spacy模型的实用程序,并具有简化的互动式Spacy驱动的应用程序。它包括您可以在自己的简化应用中使用的各种构建块,例如用于句法依赖性的可视化器,命名实体,文本分类,通过单词向量,令牌属性等语义相似性等。

您可以从PIP安装spacy-streamlit :
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运行应用程序。该应用应该在您的Web浏览器中弹出。 ?
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并设置所需的元素。
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 | str | 默认文本要分析负载。默认为"" 。 |
default_model | 可选[str] | 默认模型的可选名称。如果未设置,则使用models列表中的第一个模型。 |
visualizers | 列表[Str] | 可视化器的名称要显示。默认为["parser", "ner", "textcat", "similarity", "tokens"] 。 |
ner_labels | 可选[list [str]] | ner标签要包括。如果未设置,将使用"ner"管道组件中存在的所有标签。 |
ner_attrs | 列表[Str] | 命名实体表中显示的跨度属性。有关默认值,请参见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] | 侧边栏中显示的描述。接受Markdown-Formatted文本。 |
show_logo | 布尔 | 在侧边栏中显示Spacy徽标。默认为True 。 |
color | 可选[str] | 实验:用于某些主要UI元素的主要颜色( None禁用黑客)。默认为"#09A3D5" 。 |
get_default_text | 可呼叫[[语言],str] | 可选的可调用,该可选为当前加载的nlp对象并返回默认文本。可用于提供特定语言的默认文本。如果该函数返回None ,则使用default_text的值,如果可用。默认为None 。 |
visualize_parser使用Spacy的显示displacy化器可视化依赖性解析和词性词性标签。
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] | 用于选择标签的简化组件使用的键。 |
manual | 布尔 | 标志表示DOC参数是DOC对象还是包含解析信息的DICE的列表。 |
displacy_options | 可选[dict] | 选项的字典将传递给显示渲染方法,以生成要渲染的HTML。请参阅:https://spacy.io/api/top-level#options-dep |
visualize_ner使用Spacy的显示displacy化器在Doc中可视化命名的实体。
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] | 在实体表中显示的跨度属性。 |
show_table | 布尔 | 是否显示实体表及其属性。默认为True 。 |
title | 可选[str] | 可视化器块的标题。 |
colors | dict [str,str] | 实体的颜色词典跨越可视化,将钥匙作为标签和相应的颜色作为值。该论点将很快被弃用。将来,颜色需要在displacy_options arg中传递,并带有键“颜色”。 |
key | 可选[str] | 用于选择标签的简化组件使用的键。 |
manual | 布尔 | 标志表示DOC参数是DOC对象还是包含实体跨度的DICT的列表 |
| 信息。 | ||
displacy_options | 可选[dict] | 选项的字典将传递给显示渲染方法,以生成要渲染的HTML。请参阅https://spacy.io/api/top-level#displacy_options-ent。 |
visualize_spans使用Spacy的显示displacy化器在Doc中可视化跨度。
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 | str | 可加载的旋转型号名称。可以是路径或包装名称。 |
text | str | 要处理的文本。 |
| 返回 | 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 | str | 可加载的旋转型号名称。可以是路径或包装名称。 |
| 返回 | Language | 加载的nlp对象。 |