mirror of https://github.com/M66B/FairEmail.git
Remove classes of removed folders
This commit is contained in:
parent
af2554296c
commit
42df81ac37
|
@ -177,6 +177,18 @@ public class MessageClassifier {
|
||||||
private static String classify(long account, @NonNull String currentClass, @NonNull List<String> texts, boolean added, @NonNull Context context) {
|
private static String classify(long account, @NonNull String currentClass, @NonNull List<String> texts, boolean added, @NonNull Context context) {
|
||||||
State state = new State();
|
State state = new State();
|
||||||
|
|
||||||
|
// Check classes
|
||||||
|
DB db = DB.getInstance(context);
|
||||||
|
for (String clazz : new ArrayList<>(classMessages.get(account).keySet())) {
|
||||||
|
EntityFolder folder = db.folder().getFolderByName(account, clazz);
|
||||||
|
if (folder == null) {
|
||||||
|
EntityLog.log(context, "Classifier deleting folder class=" + account + ":" + clazz);
|
||||||
|
classMessages.get(account).remove(clazz);
|
||||||
|
for (String word : wordClassFrequency.get(account).keySet())
|
||||||
|
wordClassFrequency.get(account).get(word).remove(clazz);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Log.i("Classifier texts=" + texts.size());
|
Log.i("Classifier texts=" + texts.size());
|
||||||
for (String text : texts) {
|
for (String text : texts) {
|
||||||
// First word
|
// First word
|
||||||
|
@ -230,16 +242,9 @@ public class MessageClassifier {
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
// Calculate chance per class
|
// Calculate chance per class
|
||||||
DB db = DB.getInstance(context);
|
|
||||||
int words = state.words.size() - texts.size() - 1;
|
int words = state.words.size() - texts.size() - 1;
|
||||||
List<Chance> chances = new ArrayList<>();
|
List<Chance> chances = new ArrayList<>();
|
||||||
for (String clazz : state.classStats.keySet()) {
|
for (String clazz : state.classStats.keySet()) {
|
||||||
EntityFolder folder = db.folder().getFolderByName(account, clazz);
|
|
||||||
if (folder == null) {
|
|
||||||
Log.w("Classifier no folder class=" + account + ":" + clazz);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
Stat stat = state.classStats.get(clazz);
|
Stat stat = state.classStats.get(clazz);
|
||||||
|
|
||||||
double chance = stat.totalFrequency / maxMessages / words;
|
double chance = stat.totalFrequency / maxMessages / words;
|
||||||
|
|
Loading…
Reference in New Issue