View source on GitHub
|
Returns a boolean tensor indicating which source and target spans overlap.
text.span_overlaps(
source_start,
source_limit,
target_start,
target_limit,
contains=False,
contained_by=False,
partial_overlap=False,
name=None
)
The source and target spans are specified using B+1 dimensional tensors,
with B>=0 batch dimensions followed by a final dimension that lists the
span offsets for each span in the batch:
- The
ith source span in batchb1...bBstarts atsource_start[b1...bB, i](inclusive), and extends to just beforesource_limit[b1...bB, i](exclusive). - The
jth target span in batchb1...bBstarts attarget_start[b1...bB, j](inclusive), and extends to just beforetarget_limit[b1...bB, j](exclusive).
result[b1...bB, i, j] is true if the ith source span overlaps with the
jth target span in batch b1...bB, where a source span overlaps a target
span if any of the following are true:
- The spans are identical.
containsis true, and the source span contains the target span.contained_byis true, and the source span is contained by the target span.partial_overlapis true, and there is a non-zero overlap between the source span and the target span.
Example:
Given the following source and target spans (with no batch dimensions):
# 0 5 10 15 20 25 30 35 40# |==||||||||# Source: [-0-] [-1-] [2] [-3-][-4-][-5-]# Target: [-0-][-1-] [-2-] [3] [-4-][-5-]# ||||||||==|source_start = [0, 10, 16, 20, 25, 30]source_limit = [5, 15, 19, 25, 30, 35]target_start = [0, 5, 15, 21, 27, 31]target_limit = [5, 10, 20, 24, 32, 37]
result[i, j] will be true at the following locations:
* `[0, 0]` (always)
* `[2, 2]` (if contained_by=True or partial_overlaps=True)
* `[3, 3]` (if contains=True or partial_overlaps=True)
* `[4, 4]` (if partial_overlaps=True)
* `[5, 4]` (if partial_overlaps=True)
* `[5, 5]` (if partial_overlaps=True)
Returns | |
|---|---|
A B+2 dimensional potentially ragged boolean tensor with shape
[D1...DB, source_size, target_size].
|
Raises | |
|---|---|
ValueError
|
If the span tensors are incompatible. |
View source on GitHub