pub struct LSHBlocker {
pub num_bands: usize,
pub rows_per_band: usize,
pub ngram_size: usize,
}Expand description
Locality-Sensitive Hashing (LSH) for blocking.
Blocking reduces the O(n²) pairwise comparison problem by grouping likely-coreferent mentions into “blocks” using hash signatures.
§Algorithm
- Compute a character n-gram signature for each mention
- Hash the signature using multiple hash functions
- Mentions with identical hash in any band are candidates
This achieves sub-quadratic scaling while maintaining high recall for truly coreferent pairs.
Fields§
§num_bands: usizeNumber of hash bands
rows_per_band: usizeRows per band
ngram_size: usizeN-gram size for signatures
Implementations§
Source§impl LSHBlocker
impl LSHBlocker
Sourcepub fn candidate_pairs(&self, mentions: &[MentionRef]) -> Vec<(usize, usize)>
pub fn candidate_pairs(&self, mentions: &[MentionRef]) -> Vec<(usize, usize)>
Compute candidate pairs for a set of mentions.
Returns pairs of indices (i, j) where i < j that are candidates for cross-document coreference.
Sourcepub fn signature_similarity(sig1: &[u64], sig2: &[u64]) -> f64
pub fn signature_similarity(sig1: &[u64], sig2: &[u64]) -> f64
Estimate Jaccard similarity from minhash signatures.
Trait Implementations§
Source§impl Clone for LSHBlocker
impl Clone for LSHBlocker
Source§fn clone(&self) -> LSHBlocker
fn clone(&self) -> LSHBlocker
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for LSHBlocker
impl Debug for LSHBlocker
Auto Trait Implementations§
impl Freeze for LSHBlocker
impl RefUnwindSafe for LSHBlocker
impl Send for LSHBlocker
impl Sync for LSHBlocker
impl Unpin for LSHBlocker
impl UnsafeUnpin for LSHBlocker
impl UnwindSafe for LSHBlocker
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,
impl<T> ErasedDestructor for Twhere
T: 'static,
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