pub struct Idf<T> { /* private fields */ }
Expand description
Weighter of inverse document frequency.
Implementations§
Source§impl<T> Idf<T>
impl<T> Idf<T>
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates an instance.
Examples found in repository?
examples/find_cosine.rs (line 17)
4fn main() {
5 let documents = vec![
6 "Welcome to Jimbocho, the town of books and curry!",
7 "Welcome to Jimbocho, the city of books and curry!",
8 "We welcome you to Jimbocho, the town of books and curry.",
9 "Welcome to the town of books and curry, Jimbocho!",
10 ];
11
12 // Creates a searcher for word unigrams (with random seed value 42).
13 let searcher = CosineSearcher::new(1, Some(' '), Some(42)).unwrap();
14 // Creates a term frequency (TF) weighter.
15 let tf = Tf::new();
16 // Creates a inverse document frequency (IDF) weighter.
17 let idf = Idf::new()
18 .build(documents.iter().clone(), searcher.config())
19 .unwrap();
20 // Builds the database of binary sketches converted from input documents,
21 let searcher = searcher
22 // with the TF weighter and
23 .tf(Some(tf))
24 // the IDF weighter,
25 .idf(Some(idf))
26 // where binary sketches are in the Hamming space of 10*64 dimensions.
27 .build_sketches_in_parallel(documents.iter(), 10)
28 .unwrap();
29
30 // Searches all similar pairs within radius 0.25.
31 let results = searcher.search_similar_pairs(0.25);
32 // A result consists of the left-side id, the right-side id, and their distance.
33 assert_eq!(results, vec![(0, 1, 0.1671875), (0, 3, 0.246875)]);
34}
Source§impl Idf<u64>
impl Idf<u64>
Sourcepub fn build<I, D>(self, documents: I, config: &FeatureConfig) -> Result<Self>
pub fn build<I, D>(self, documents: I, config: &FeatureConfig) -> Result<Self>
Trains the term frequency of input documents.
§Arguments
documents
- List of documents.config
- Configuration of feature extraction. Use the same configuration as that in search.
Examples found in repository?
examples/find_cosine.rs (line 18)
4fn main() {
5 let documents = vec![
6 "Welcome to Jimbocho, the town of books and curry!",
7 "Welcome to Jimbocho, the city of books and curry!",
8 "We welcome you to Jimbocho, the town of books and curry.",
9 "Welcome to the town of books and curry, Jimbocho!",
10 ];
11
12 // Creates a searcher for word unigrams (with random seed value 42).
13 let searcher = CosineSearcher::new(1, Some(' '), Some(42)).unwrap();
14 // Creates a term frequency (TF) weighter.
15 let tf = Tf::new();
16 // Creates a inverse document frequency (IDF) weighter.
17 let idf = Idf::new()
18 .build(documents.iter().clone(), searcher.config())
19 .unwrap();
20 // Builds the database of binary sketches converted from input documents,
21 let searcher = searcher
22 // with the TF weighter and
23 .tf(Some(tf))
24 // the IDF weighter,
25 .idf(Some(idf))
26 // where binary sketches are in the Hamming space of 10*64 dimensions.
27 .build_sketches_in_parallel(documents.iter(), 10)
28 .unwrap();
29
30 // Searches all similar pairs within radius 0.25.
31 let results = searcher.search_similar_pairs(0.25);
32 // A result consists of the left-side id, the right-side id, and their distance.
33 assert_eq!(results, vec![(0, 1, 0.1671875), (0, 3, 0.246875)]);
34}
Trait Implementations§
Auto Trait Implementations§
impl<T> Freeze for Idf<T>
impl<T> RefUnwindSafe for Idf<T>where
T: RefUnwindSafe,
impl<T> Send for Idf<T>where
T: Send,
impl<T> Sync for Idf<T>where
T: Sync,
impl<T> Unpin for Idf<T>where
T: Unpin,
impl<T> UnwindSafe for Idf<T>where
T: UnwindSafe,
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> 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