mirror of
https://github.com/M66B/FairEmail.git
synced 2026-03-30 13:47:05 +02:00
Classifier: added fail-safe
This commit is contained in:
@@ -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<Chance> 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);
|
||||
|
||||
Reference in New Issue
Block a user