Analyze and characterize your Spans. Integrated with spaCy.
Project description
spacy-span-analyzer
A simple tool to analyze the Spans in your dataset. It's tightly integrated with spaCy, so you can easily incorporate it to existing NLP pipelines. This is also a reproduction of Papay, et al's work on Dissecting Span Identification Tasks with Performance Prediction (EMNLP 2020).
⏳ Install
Using pip:
pip install spacy-span-analyzer
Directly from source (I highly recommend running this within a virtual environment):
git clone git@github.com:ljvmiranda921/spacy-span-analyzer.git
cd spacy-span-analyzer
pip install .
⏯ Usage
You can use the Span Analyzer as a command-line tool:
spacy-span-analyzer ./path/to/dataset.spacy
Or as an imported library:
import spacy
from spacy.tokens import DocBin
from spacy_span_analyzer import SpanAnalyzer
nlp = spacy.blank("en") # or any Language model
# Ensure that your dataset is a DocBin
doc_bin = DocBin().from_disk("./path/to/data.spacy")
docs = list(doc_bin.get_docs(nlp.vocab))
# Run SpanAnalyzer and get span characteristics
analyze = SpanAnalyzer(docs)
analyze.frequency
analyze.length
analyze.span_distinctiveness
analyze.boundary_distinctiveness
Inputs are expected to be a list of spaCy Docs or a DocBin (if you're using the command-line tool).
Working with Spans
In spaCy, you'd want to store your Spans in the
doc.spans
property, under a particular
spans_key
(sc
by default). Unlike the
doc.ents
property, doc.spans
allows
overlapping entities. This is useful especially for downstream tasks like Span
Categorization.
A common way to do this is to use
char_span
to define a slice from your
Doc:
doc = nlp(text)
spans = []
from annotation in annotations:
span = doc.char_span(
annotation["start"],
annotation["end"],
annotation["label"],
)
spans.append(span)
# Put all spans under a spans_key
doc.spans["sc"] = spans
You can also achieve the same thing by using
set_ents
or by creating a
SpanGroup.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for spacy-span-analyzer-0.2.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | dae523248039a8eb771065239453ffe88e346104b66cd15e2b4ac3e2906133ae |
|
MD5 | 177e6a1e14061ce66c462fa572dec51c |
|
BLAKE2b-256 | 82eea1491ff66b82e019ceb947f15f07410df5bc834a1a9a10f43423c82744be |
Hashes for spacy_span_analyzer-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87bff6f3e90b642efd8adee15e0329bc90be188fd06b343aba6b49c292b6bc77 |
|
MD5 | effe7bf447393b423b3a143c1ea9cc21 |
|
BLAKE2b-256 | c60506dd18d218f9e05220b617a2d02bffbcdc7ef3dbf7cff64aa805946b5969 |