pub struct SimHash(pub u64);Expand description
SimHash fingerprint for text or feature vectors.
Computed by weighted XOR accumulation with threshold by bit position.
Tuple Fields§
§0: u64Implementations§
Source§impl SimHash
impl SimHash
Sourcepub fn compute(features: &[u64]) -> Self
pub fn compute(features: &[u64]) -> Self
Compute a SimHash from a slice of feature values.
Each feature votes for/against each of the 64 bit positions. If the weighted vote for a position is positive, that bit is 1.
Sourcepub fn hamming_distance(self, other: &Self) -> u32
pub fn hamming_distance(self, other: &Self) -> u32
Compute Hamming distance to another SimHash.
Sourcepub fn similarity(self, other: &Self) -> f32
pub fn similarity(self, other: &Self) -> f32
Similarity in [0.0, 1.0].
Trait Implementations§
impl Copy for SimHash
impl Eq for SimHash
impl StructuralPartialEq for SimHash
Auto Trait Implementations§
impl Freeze for SimHash
impl RefUnwindSafe for SimHash
impl Send for SimHash
impl Sync for SimHash
impl Unpin for SimHash
impl UnsafeUnpin for SimHash
impl UnwindSafe for SimHash
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§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> 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