pub struct TokenSpan {
pub start: usize,
pub end: usize,
pub text_span: TextSpan,
}Expand description
Span in subword token space.
§Research Context (BERT for NER, NAACL 2019)
Transformer models operate on subword tokens, not characters. Entity boundaries often split mid-token:
Text: "New York City"
Tokens: ["New", "York", "City"] <- clean split
Token IDs: [2739, 1816, 2103]
TokenSpan: (0, 3) for "New York City"
Text: "playing"
Tokens: ["play", "##ing"] <- mid-word split
Token IDs: [2377, 2075]
TokenSpan: (0, 2) for "playing"Key insight: When propagating BIO labels to continuation tokens (##), use I- prefix to avoid treating them as separate entities.
Fields§
§start: usizeToken index (start, inclusive)
end: usizeToken index (end, exclusive)
text_span: TextSpanOriginal text span (for reconstruction)
Implementations§
Trait Implementations§
Source§impl<'de> Deserialize<'de> for TokenSpan
impl<'de> Deserialize<'de> for TokenSpan
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Copy for TokenSpan
impl Eq for TokenSpan
impl StructuralPartialEq for TokenSpan
Auto Trait Implementations§
impl Freeze for TokenSpan
impl RefUnwindSafe for TokenSpan
impl Send for TokenSpan
impl Sync for TokenSpan
impl Unpin for TokenSpan
impl UnsafeUnpin for TokenSpan
impl UnwindSafe for TokenSpan
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more