Skip to content

Commit 2d286f7

Browse files
danieldkDaniël de Kok
authored andcommitted
Hide WordSimilarityResult fields
Among other things, this avoids breaking the API when we update ordered_float.
1 parent d1e7006 commit 2d286f7

File tree

2 files changed

+18
-14
lines changed

2 files changed

+18
-14
lines changed

src/compat/fasttext/io.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -621,24 +621,24 @@ mod tests {
621621
fn test_read_fasttext() {
622622
let embeddings = read_fasttext();
623623
let results = embeddings.word_similarity("über", 3).unwrap();
624-
assert_eq!(results[0].word, "auf");
625-
assert_abs_diff_eq!(*results[0].similarity, 0.568513, epsilon = 1e-6);
626-
assert_eq!(results[1].word, "vor");
627-
assert_abs_diff_eq!(*results[1].similarity, 0.551551, epsilon = 1e-6);
628-
assert_eq!(results[2].word, "durch");
629-
assert_abs_diff_eq!(*results[2].similarity, 0.547349, epsilon = 1e-6);
624+
assert_eq!(results[0].word(), "auf");
625+
assert_abs_diff_eq!(results[0].cosine_similarity(), 0.568513, epsilon = 1e-6);
626+
assert_eq!(results[1].word(), "vor");
627+
assert_abs_diff_eq!(results[1].cosine_similarity(), 0.551551, epsilon = 1e-6);
628+
assert_eq!(results[2].word(), "durch");
629+
assert_abs_diff_eq!(results[2].cosine_similarity(), 0.547349, epsilon = 1e-6);
630630
}
631631

632632
#[test]
633633
fn test_read_fasttext_unknown() {
634634
let embeddings = read_fasttext();
635635
let results = embeddings.word_similarity("unknown", 3).unwrap();
636-
assert_eq!(results[0].word, "einer");
637-
assert_abs_diff_eq!(*results[0].similarity, 0.691177, epsilon = 1e-6);
638-
assert_eq!(results[1].word, "und");
639-
assert_abs_diff_eq!(*results[1].similarity, 0.576449, epsilon = 1e-6);
640-
assert_eq!(results[2].word, "des");
641-
assert_abs_diff_eq!(*results[2].similarity, 0.570398, epsilon = 1e-6);
636+
assert_eq!(results[0].word(), "einer");
637+
assert_abs_diff_eq!(results[0].cosine_similarity(), 0.691177, epsilon = 1e-6);
638+
assert_eq!(results[1].word(), "und");
639+
assert_abs_diff_eq!(results[1].cosine_similarity(), 0.576449, epsilon = 1e-6);
640+
assert_eq!(results[2].word(), "des");
641+
assert_abs_diff_eq!(results[2].cosine_similarity(), 0.570398, epsilon = 1e-6);
642642
}
643643

644644
#[test]

src/similarity.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ use crate::util::l2_normalize;
1818
/// its similarity to a query word.
1919
#[derive(Debug, Eq, PartialEq)]
2020
pub struct WordSimilarityResult<'a> {
21-
pub similarity: NotNan<f32>,
22-
pub word: &'a str,
21+
similarity: NotNan<f32>,
22+
word: &'a str,
2323
}
2424

2525
impl<'a> WordSimilarityResult<'a> {
@@ -48,6 +48,10 @@ impl<'a> WordSimilarityResult<'a> {
4848
pub fn euclidean_similarity(&self) -> f32 {
4949
1f32 - (self.euclidean_distance() / 2f32)
5050
}
51+
52+
pub fn word(&self) -> &str {
53+
self.word
54+
}
5155
}
5256

5357
impl<'a> Ord for WordSimilarityResult<'a> {

0 commit comments

Comments
 (0)