pub struct VqCodebook { /* private fields */ }Expand description
Vector quantization codebook for bootstrapping new entity embeddings.
When a new entity type has no training data for embeddings, the codebook provides a reasonable starting vector by mapping entity types to their nearest centroid from previously seen embeddings.
Implementations§
Source§impl VqCodebook
impl VqCodebook
Sourcepub fn new(k: usize, dim: usize) -> Self
pub fn new(k: usize, dim: usize) -> Self
Create a new codebook with k centroids of dimension dim.
Centroids are initialized to zero and must be trained before use.
Sourcepub fn train(&mut self, embeddings: &[(String, Vec<f32>)])
pub fn train(&mut self, embeddings: &[(String, Vec<f32>)])
Train the codebook from existing embeddings using Lloyd’s algorithm.
Each embedding is a (entity_type, vector) pair. After training,
each entity type is assigned to its nearest centroid.
Uses K-means++ initialization for better convergence.
Trait Implementations§
Source§impl Clone for VqCodebook
impl Clone for VqCodebook
Source§impl Debug for VqCodebook
impl Debug for VqCodebook
Source§impl<'de> Deserialize<'de> for VqCodebook
impl<'de> Deserialize<'de> for VqCodebook
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
Auto Trait Implementations§
impl Freeze for VqCodebook
impl RefUnwindSafe for VqCodebook
impl Send for VqCodebook
impl Sync for VqCodebook
impl Unpin for VqCodebook
impl UnsafeUnpin for VqCodebook
impl UnwindSafe for VqCodebook
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> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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