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對象。 |