Paket ini berisi utilitas untuk memvisualisasikan model spacy dan membangun aplikasi bertenaga spacy interaktif dengan streamlit. Ini mencakup berbagai blok bangunan yang dapat Anda gunakan di aplikasi streamlit Anda sendiri, seperti visualisis untuk dependensi sintaksis , entitas bernama , klasifikasi teks , kesamaan semantik melalui vektor kata, atribut token, dan banyak lagi.

Anda dapat menginstal spacy-streamlit dari PIP:
pip install spacy-streamlit Paket termasuk blok bangunan yang memanggil Streamlit dan mengatur semua elemen yang diperlukan untuk Anda. Anda dapat menggunakan masing -masing komponen secara langsung dan menggabungkannya dengan elemen lain di aplikasi Anda, atau memanggil fungsi visualize untuk menyematkan keseluruhan visualisator.
Unduh model bahasa Inggris dari Spacy untuk memulai.
python -m spacy download en_core_web_smKemudian masukkan kode contoh berikut dalam file.
# 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 ) Anda kemudian dapat menjalankan aplikasi Anda dengan streamlit run streamlit_app.py . Aplikasi harus muncul di browser web Anda. ?
01_out-of-the-box.pyGunakan visualisasi tertanam dengan pengaturan khusus di luar kotak.
streamlit run https://raw.githubusercontent.com/explosion/spacy-streamlit/master/examples/01_out-of-the-box.py02_custom.pyGunakan komponen individual di aplikasi Anda yang ada.
streamlit run https://raw.githubusercontent.com/explosion/spacy-streamlit/master/examples/02_custom.py Fungsi -fungsi ini dapat digunakan di aplikasi streamlit Anda. Mereka memanggil ke streamlit di bawah kap dan mengatur elemen yang diperlukan.
visualizeEmbed visualizer penuh dengan komponen yang dipilih.
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 )| Argumen | Jenis | Keterangan |
|---|---|---|
models | Daftar [str] / dict [str, str] | Nama model spacy yang dapat dimuat (jalur atau nama paket). Model menjadi dapat dipilih melalui dropdown. Dapat berupa daftar nama atau nama yang dipetakan ke deskripsi untuk ditampilkan di dropdown. |
default_text | str | Teks default untuk dianalisis pada beban. Default ke "" . |
default_model | Opsional [str] | Nama opsional model default. Jika tidak diatur, model pertama dalam daftar models digunakan. |
visualizers | Daftar [str] | Nama visualis untuk ditampilkan. Default ke ["parser", "ner", "textcat", "similarity", "tokens"] . |
ner_labels | Opsional [Daftar [str]] | Label ner untuk dimasukkan. Jika tidak diatur, semua label yang ada di komponen pipa "ner" akan digunakan. |
ner_attrs | Daftar [str] | Atribut span yang ditunjukkan pada tabel entitas yang disebutkan. Lihat visualizer.py untuk default. |
token_attrs | Daftar [str] | Atribut token untuk ditampilkan di token visualzer. Lihat visualizer.py untuk default. |
similarity_texts | Tuple [str, str] | Teks default untuk dibandingkan dalam kesamaan visualisasi. Default ke ("apple", "orange") . |
show_json_doc | bool | Tampilkan tombol untuk beralih representasi JSON dari Doc . Default ke True . |
show_meta | bool | Tampilkan tombol untuk beralih meta.json dari pipa saat ini. Default ke True . |
show_config | bool | Tampilkan tombol untuk beralih config.cfg dari pipa saat ini. Default ke True . |
show_visualizer_select | bool | Tampilkan dropdown sidebar untuk memilih visualiser untuk ditampilkan (berdasarkan visualiser yang diaktifkan). Default ke False . |
sidebar_title | Opsional [str] | Judul ditampilkan di bilah sisi. Default untuk None . |
sidebar_description | Opsional [str] | Deskripsi ditampilkan di bilah sisi. Menerima teks yang diformat penurunan harga. |
show_logo | bool | Tunjukkan logo Spacy di bilah samping. Default ke True . |
color | Opsional [str] | Eksperimental: Warna primer untuk digunakan untuk beberapa elemen UI utama ( None untuk menonaktifkan hack). Default ke "#09A3D5" . |
get_default_text | Callable [[bahasa], str] | Callable opsional yang mengambil objek nlp yang saat ini dimuat dan mengembalikan teks default. Dapat digunakan untuk memberikan teks default khusus bahasa. Jika fungsi None mengembalikan, nilai default_text digunakan, jika tersedia. Default untuk None . |
visualize_parser Visualisasikan ketergantungan parse dan tag bagian-of-speech menggunakan visualisator 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 )| Argumen | Jenis | Keterangan |
|---|---|---|
doc | Doc | Obyek Doc Spacy untuk divisualisasikan. |
| Kata kunci saja | ||
title | Opsional [str] | Judul blok visualisasi. |
key | Opsional [str] | Kunci yang digunakan untuk komponen streamlit untuk memilih label. |
manual | bool | Bendera yang menandakan apakah argumen DOC adalah objek DOC atau daftar dikt yang berisi informasi parse. |
displacy_options | Opsional [dikt] | Kamus opsi yang akan diteruskan ke metode Render Deplacy untuk menghasilkan HTML yang akan diberikan. Lihat: https://spacy.io/api/top-vevel#options-dep |
visualize_ner Visualisasikan entitas yang disebutkan dalam Doc menggunakan Visualisator 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 )| Argumen | Jenis | Keterangan |
|---|---|---|
doc | Doc | Obyek Doc Spacy untuk divisualisasikan. |
| Kata kunci saja | ||
labels | Urutan [str] | Label untuk ditampilkan di dropdown label. |
attrs | Daftar [str] | Atribut span untuk ditampilkan di tabel entitas. |
show_table | bool | Apakah akan menunjukkan tabel entitas dan atributnya. Default ke True . |
title | Opsional [str] | Judul blok visualisasi. |
colors | Dict [str, str] | Kamus warna untuk rentang entitas untuk divisualisasikan, dengan kunci sebagai label dan warna yang sesuai sebagai nilainya. Argumen ini akan segera ditinggalkan. Di masa depan Warna Arg perlu dilewati di displacy_options Arg dengan "warna" kunci.) |
key | Opsional [str] | Kunci yang digunakan untuk komponen streamlit untuk memilih label. |
manual | bool | Bendera yang menandakan apakah argumen dokumen adalah objek DOC atau daftar dikt yang berisi rentang entitas |
| informasi. | ||
displacy_options | Opsional [dikt] | Kamus opsi yang akan diteruskan ke metode Render Deplacy untuk menghasilkan HTML yang akan diberikan. Lihat https://spacy.io/api/top-vevel#displacy_options-ent. |
visualize_spans Visualisasikan rentang dalam Doc menggunakan Spacy's displacy Visualizer.
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" }})| Argumen | Jenis | Keterangan |
|---|---|---|
doc | Doc | Obyek Doc Spacy untuk divisualisasikan. |
| Kata kunci saja | ||
spans_key | Urutan [str] | Yang mencakup kunci untuk membuat rentang dari. Default adalah "SC". |
attrs | Daftar [str] | Atribut pada rentang entitas yang akan diberi label. Atribut ditampilkan hanya ketika argumen show_table benar. |
show_table | bool | Apakah akan menunjukkan tabel bentang dan atribut mereka. Default ke True . |
title | Opsional [str] | Judul blok visualisasi. |
manual | bool | Bendera yang menandakan apakah argumen DOC adalah objek DOC atau daftar dikt yang berisi informasi rentang entitas. |
displacy_options | Opsional [dikt] | Kamus opsi yang akan diteruskan ke metode Render Deplacy untuk menghasilkan HTML yang akan diberikan. Lihat https://spacy.io/api/top-vevel#displacy_options-span. |
visualize_textcatVisualisasikan kategori teks yang diprediksi oleh classifier teks terlatih.
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 )| Argumen | Jenis | Keterangan |
|---|---|---|
doc | Doc | Obyek Doc Spacy untuk divisualisasikan. |
| Kata kunci saja | ||
title | Opsional [str] | Judul blok visualisasi. |
visualize_similarityVisualisasikan kesamaan semantik menggunakan vektor kata model. Akan menunjukkan peringatan jika tidak ada vektor yang ada dalam model.
import spacy
from spacy_streamlit import visualize_similarity
nlp = spacy . load ( "en_core_web_lg" )
visualize_similarity ( nlp , ( "pizza" , "fries" ))| Argumen | Jenis | Keterangan |
|---|---|---|
nlp | Language | Objek nlp yang dimuat dengan vektor. |
default_texts | Tuple [str, str] | Teks default untuk dibandingkan dengan beban. Default ke ("apple", "orange") . |
| Kata kunci saja | ||
threshold | mengambang | Ambang untuk apa yang dianggap "serupa". Jika skor kesamaan lebih besar dari ambang batas, hasilnya ditampilkan sebagai serupa. Default menjadi 0.5 . |
title | Opsional [str] | Judul blok visualisasi. |
visualize_tokens Visualisasikan token dalam Doc dan atributnya.
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_" ])| Argumen | Jenis | Keterangan |
|---|---|---|
doc | Doc | Obyek Doc Spacy untuk divisualisasikan. |
| Kata kunci saja | ||
attrs | Daftar [str] | Nama atribut token untuk digunakan. Lihat visualizer.py untuk default. |
title | Opsional [str] | Judul blok visualisasi. |
Pembantu ini berupaya untuk menyimpan model yang dimuat dan membuat objek Doc .
process_text Proses teks dengan model nama yang diberikan dan buat objek Doc . Panggilan ke helper load_model untuk memuat 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 )| Argumen | Jenis | Keterangan |
|---|---|---|
model_name | str | Nama model spacy yang dapat dimuat. Bisa menjadi jalur atau nama paket. |
text | str | Teks untuk diproses. |
| Kembali | Doc | Dokumen yang diproses. |
load_model Muat model spacy dari jalur atau paket yang diinstal dan kembalikan objek nlp yang dimuat.
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 )| Argumen | Jenis | Keterangan |
|---|---|---|
name | str | Nama model spacy yang dapat dimuat. Bisa menjadi jalur atau nama paket. |
| Kembali | Language | Objek nlp yang dimuat. |