Skip to content

Commit

Permalink
make scores output more user readable
Browse files Browse the repository at this point in the history
  • Loading branch information
austin007008 committed May 8, 2024
1 parent 85e44e1 commit d9b6f68
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 38 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ public String getWordToOutput() {
return null;
}
if (useScores && (scores.get(hitTermIndex) != -1)) { // if we have a valid score for the hit term...
return OPENB + words.get(hitTermIndex) + CLOSEB + OPENP + scores.get(hitTermIndex) + CLOSEP;
return OPENB + words.get(hitTermIndex) + CLOSEB + OPENP + userReadable(scores.get(hitTermIndex)) + CLOSEP;
} else {
return OPENB + words.get(hitTermIndex) + CLOSEB;
}
Expand All @@ -181,7 +181,7 @@ public String getWordToOutput() {
if (STOP_WORD_LIST.contains(words.get(smallestScoreIndex))) { // if the selected term is in the stop list...
return null;
}
return words.get(smallestScoreIndex) + OPENP + scores.get(smallestScoreIndex) + CLOSEP; // return the word with the smallest score
return words.get(smallestScoreIndex) + OPENP + userReadable(scores.get(smallestScoreIndex)) + CLOSEP; // return the word with the smallest score
} else { // default to returning the longest word if the scores don't exist/aren't valid
if (STOP_WORD_LIST.contains(words.get(longestWordIndex))) { // if the selected term is in the stop list...
return null;
Expand All @@ -191,6 +191,13 @@ public String getWordToOutput() {
}
}

/**
* Converts the score into a number from 0-1000 (higher is better) so that it is easier for the user to understand.
*/
private int userReadable(int score) {
return Math.max(1000 - (score / 50000), 0);
}

/**
* Returns the list of words saved in this object.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public class WordsAndScoresTest {
public void testSingleWordScoreAdd() {
WordsAndScores ws = new WordsAndScores();
ws.addTerm("test", 100, hitTermsList);
assertEquals("test(100)", ws.getWordToOutput());
assertEquals("test(1000)", ws.getWordToOutput());
assertTrue(ws.getUseScores());
}

Expand All @@ -36,13 +36,13 @@ public void testSingleWordAdd() {
@Test
public void testReturnSmallestScore() {
WordsAndScores ws = new WordsAndScores();
ws.addTerm("test", 34, hitTermsList);
ws.addTerm("austin", 72, hitTermsList);
ws.addTerm("was", 50, hitTermsList);
ws.addTerm("here", 76, hitTermsList);
ws.addTerm("datawave", 6, hitTermsList);
ws.addTerm("cat", 63, hitTermsList);
assertEquals("datawave(6)", ws.getWordToOutput());
ws.addTerm("test", 37654470, hitTermsList);
ws.addTerm("austin", 47325112, hitTermsList);
ws.addTerm("was", 26381694, hitTermsList);
ws.addTerm("here", 49883548, hitTermsList);
ws.addTerm("datawave", 24734968, hitTermsList);
ws.addTerm("cat", 4999951, hitTermsList);
assertEquals("cat(901)", ws.getWordToOutput());
assertTrue(ws.getUseScores());
}

Expand All @@ -62,26 +62,26 @@ public void testReturnLongestWord() {
@Test
public void testReturnMixedAddScoreFirst() {
WordsAndScores ws = new WordsAndScores();
ws.addTerm("test", 65, hitTermsList);
ws.addTerm("test", 3835388, hitTermsList);
ws.addTerm("austin", hitTermsList);
ws.addTerm("was", hitTermsList);
ws.addTerm("here", 34, hitTermsList);
ws.addTerm("here", 5239977, hitTermsList);
ws.addTerm("datawave", hitTermsList);
ws.addTerm("cat", 71, hitTermsList);
assertEquals("here(34)", ws.getWordToOutput());
ws.addTerm("cat", 9707535, hitTermsList);
assertEquals("test(924)", ws.getWordToOutput());
assertTrue(ws.getUseScores());
}

@Test
public void testReturnMixedAddNoScoreFirst() {
WordsAndScores ws = new WordsAndScores();
ws.addTerm("test", hitTermsList);
ws.addTerm("austin", 65, hitTermsList);
ws.addTerm("austin", 22255500, hitTermsList);
ws.addTerm("was", hitTermsList);
ws.addTerm("here", 34, hitTermsList);
ws.addTerm("here", 730921, hitTermsList);
ws.addTerm("datawave", hitTermsList);
ws.addTerm("cat", 71, hitTermsList);
assertEquals("here(34)", ws.getWordToOutput());
ws.addTerm("cat", 11232252, hitTermsList);
assertEquals("here(986)", ws.getWordToOutput());
assertTrue(ws.getUseScores());
}

Expand Down Expand Up @@ -149,41 +149,41 @@ public void testReturnSingleHit() {
@Test
public void testReturnSingleHitWithScore() {
WordsAndScores ws = new WordsAndScores();
ws.addTerm("hit", 12, hitTermsList);
assertEquals("[hit](12)", ws.getWordToOutput());
ws.addTerm("try", 6, hitTermsList);
assertEquals("[hit](12)", ws.getWordToOutput());
ws.addTerm("hit", 9120447, hitTermsList);
assertEquals("[hit](818)", ws.getWordToOutput());
ws.addTerm("try", 41315662, hitTermsList);
assertEquals("[hit](818)", ws.getWordToOutput());
ws.reset();
ws.addTerm("hello", 36, hitTermsList);
assertEquals("hello(36)", ws.getWordToOutput());
ws.addTerm("hit", 17, hitTermsList);
assertEquals("[hit](17)", ws.getWordToOutput());
ws.addTerm("hello", 31334736, hitTermsList);
assertEquals("hello(374)", ws.getWordToOutput());
ws.addTerm("hit", 29938894, hitTermsList);
assertEquals("[hit](402)", ws.getWordToOutput());
}

@Test
public void testReturnSingleHitMixedScore() {
WordsAndScores ws = new WordsAndScores();
ws.addTerm("test", hitTermsList);
ws.addTerm("austin", 65, hitTermsList);
ws.addTerm("austin", 41096759, hitTermsList);
ws.addTerm("hit", hitTermsList);
ws.addTerm("here", 34, hitTermsList);
ws.addTerm("here", 33072572, hitTermsList);
assertEquals("[hit]", ws.getWordToOutput());
ws.reset();
ws.addTerm("test", 65, hitTermsList);
ws.addTerm("test", 21719522, hitTermsList);
ws.addTerm("austin", hitTermsList);
ws.addTerm("hit", hitTermsList);
ws.addTerm("here", 34, hitTermsList);
ws.addTerm("here", 43027819, hitTermsList);
assertEquals("[hit]", ws.getWordToOutput());
}

@Test
public void testReturnLongestMultipleHit() {
WordsAndScores ws = new WordsAndScores();
List<String> temp = List.of("hit", "term");
ws.addTerm("test", 88, temp);
ws.addTerm("hit", 95, temp);
ws.addTerm("test", 49703356, temp);
ws.addTerm("hit", 33698372, temp);
ws.addTerm("was", temp);
ws.addTerm("here", 79, temp);
ws.addTerm("here", 15201307, temp);
ws.addTerm("term", temp);
ws.addTerm("cat", temp);
assertEquals("[term]", ws.getWordToOutput());
Expand All @@ -193,13 +193,13 @@ public void testReturnLongestMultipleHit() {
public void testReturnScoreMultipleHit() {
WordsAndScores ws = new WordsAndScores();
List<String> temp = List.of("hit", "term");
ws.addTerm("test", 88, temp);
ws.addTerm("hit", 95, temp);
ws.addTerm("test", 6788348, temp);
ws.addTerm("hit", 15257973, temp);
ws.addTerm("was", temp);
ws.addTerm("here", 79, temp);
ws.addTerm("term", 5, temp);
ws.addTerm("here", 17286266, temp);
ws.addTerm("term", 37536662, temp);
ws.addTerm("cat", temp);
assertEquals("[term](5)", ws.getWordToOutput());
assertEquals("[hit](695)", ws.getWordToOutput());
}

@Test
Expand Down

0 comments on commit d9b6f68

Please sign in to comment.