svoid ai_makeRegexpLanguageDetectorsFromRandomNGrams(S lang1, S lang2, int n) { LanguageDetectionTask task = dm_languageDetectionTask(lang1, lang2); print(task.task()); Set seen = ciSet(); new DynamicTopTen tt; repeat 1000 { S re = firstNotSeen_nAttempts(1000, seen, () -> regexpQuote_useBackslashes(randomNGram(n, random(task.pos))); if (re == null) break with print("Can't find any new regexps"); tt.add(re, scoreRegexpIC(re, task.pos, task.neg)); } pnl(tt.withScores()); dm_saveLanguageDetectionRegexps(task, tt); }