diff --git a/app/src/main/java/eu/faircode/email/MessageClassifier.java b/app/src/main/java/eu/faircode/email/MessageClassifier.java index 63ddd55383..a59ea254f3 100644 --- a/app/src/main/java/eu/faircode/email/MessageClassifier.java +++ b/app/src/main/java/eu/faircode/email/MessageClassifier.java @@ -193,8 +193,15 @@ public class MessageClassifier { for (String class1 : classFrequency.keySet()) for (String class2 : classFrequency.keySet()) if (!class1.equals(class2)) { - double percentage1 = (double) classFrequency.get(class1) / classMessages.get(account).get(class1); - double percentage2 = (double) classFrequency.get(class2) / classMessages.get(account).get(class2); + int messages1 = classMessages.get(account).get(class1); + int messages2 = classMessages.get(account).get(class2); + int frequency1 = classFrequency.get(class1); + int frequency2 = classFrequency.get(class2); + if (messages1 == 0 || messages2 == 0 || frequency1 == 0 || frequency2 == 0) + continue; + + double percentage1 = (double) frequency1 / messages1; + double percentage2 = (double) frequency2 / messages2; double factor = percentage1 / percentage2; if (factor > 1) factor = 1 / factor; @@ -242,6 +249,9 @@ public class MessageClassifier { List chances = new ArrayList<>(); for (String clazz : classStats.keySet()) { int messages = classMessages.get(account).get(clazz); + if (messages == 0 || maxMatchedWords == 0) + continue; + Stat stat = classStats.get(clazz); double chance = (double) stat.totalFrequency / messages / maxMatchedWords; Chance c = new Chance(clazz, chance);