Commit 273a6bcf by Hut

first working version

parents
package directory.passive.markov;
import java.util.HashMap;
import java.util.Map;
// FIXME rename
public class Data {
private final Map<Prefix, Lookup> data = new HashMap<>();
public void add(Prefix p, Token t) {
Lookup l = data.getOrDefault(p, new Lookup());
l.add(t);
data.put(p, l);
}
public Lookup fetch(Prefix p) {
return data.getOrDefault(p, Lookup.empty);
}
@Override
public String toString() {
return "Data [data=" + data + "]";
}
}
package directory.passive.markov;
import java.util.LinkedHashMap;
import java.util.Map.Entry;
// FIXME rename
public class Lookup {
public static final Lookup empty = new Lookup() {
public Token forRandom(double random) {
return Token.EMPTY;
}
};
public Lookup() {
}
private final LinkedHashMap<Token, Integer> tokens = new LinkedHashMap<Token, Integer>();
private int getTotalCounts() {
return tokens.values().stream().mapToInt(i -> i.intValue()).sum();
}
public void add(Token t) {
Integer i = tokens.getOrDefault(t, 0);
tokens.put(t, i + 1);
}
public Token forRandom(double random) {
int id = (int) Math.floor(random * getTotalCounts());
int i = 0;
for (Entry<Token, Integer> entry : tokens.entrySet()) {
i += entry.getValue();
if (id < i) {
return entry.getKey();
}
}
throw new IllegalStateException(String.format(
"failed to find a random token with seed %d within %s", id,
this));
}
@Override
public String toString() {
return "Lookup [tokens=" + tokens + "]";
}
}
package directory.passive.markov;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
public class Main {
private final int prefix_length;
private final Data data = new Data();
public Main(int prefix_length) {
super();
this.prefix_length = prefix_length;
}
public void parse(String input) {
for (String line : input.split("\n")) {
line = line.replace("Kai☺UWE empfiehlt ", "");
Token[] tokens = tokenize(line);
for (int i = 0 + prefix_length; i < tokens.length; i++) {
Prefix p = getPrefix(tokens, i);
Token t = getToken(tokens, i);
data.add(p, t);
}
}
}
private Token[] tokenize(String line) {
String[] strings = line.split(" ");
Token[] tokens = new Token[strings.length + prefix_length + 1];
int i = 0;
for (; i < prefix_length; i++) {
tokens[i] = Token.START;
}
for (; i < strings.length + prefix_length; i++) {
tokens[i] = new Token(strings[i - prefix_length]);
}
tokens[i] = Token.END;
return tokens;
}
private Prefix getPrefix(Token[] tokens, int index) {
Token[] prefixTokens = new Token[prefix_length];
for (int i = 0; i < prefix_length; i++) {
prefixTokens[i] = tokens[index - prefix_length + i];
}
return new Prefix(prefixTokens);
}
private Token getToken(Token[] tokens, int i) {
return tokens[i];
}
private Collection<Token> random() {
List<Token> result = new LinkedList<>();
for (int i = 0; i < prefix_length; i++) {
result.add(Token.START);
}
Token current = Token.START;
while (current != Token.END) {
result.add(current);
current = nextRandom(result);
}
return result;
}
private Token nextRandom(List<Token> result) {
Token[] prefexTokens = new Token[prefix_length];
for (int i = 0; i < prefix_length; i++) {
prefexTokens[i] = result.get(result.size() - prefix_length + i);
}
Prefix p = new Prefix(prefexTokens);
Token nextToken = data.fetch(p).forRandom(nextRandomNumber());
return nextToken;
}
private double nextRandomNumber() {
return ThreadLocalRandom.current().nextDouble();
}
private static String render(Collection<Token> tokens) {
StringBuilder sb = new StringBuilder();
sb.append("KAI-uwe empfiehlt");
for (Token t : tokens) {
sb.append(t.render(" "));
}
return sb.toString();
}
public static void main(String[] args) {
Main main = new Main(2);
main.parse(input);
for (int i = 0; i < 10; i++) {
System.out.println(render(main.random()));
}
}
private static final String input = "Kai☺UWE empfiehlt \"langsam ist Präzise und Präzise ist schnell\" zu verinnerlichen.\n"
+ "Kai☺UWE empfiehlt 3 Tage wach und dann mehr als nur Mitspieler abschießen.\n"
+ "Kai☺UWE empfiehlt Becher die unter dem Bett gefunden werden zu spülen, bevor man kalten Glühwein daraus trinkt.\n"
+ "Kai☺UWE empfiehlt Betreff lesen.\n"
+ "Kai☺UWE empfiehlt Bier in netter Gesellschaft zu trinken und nicht auf dem Zimmer zu versauern.\n"
+ "Kai☺UWE empfiehlt Bis zum Absturz\n"
+ "Kai☺UWE empfiehlt BlaBlaBla\n"
+ "Kai☺UWE empfiehlt Blow Job mit anschließendem Orgasmus.\n"
+ "Kai☺UWE empfiehlt Die doofste Mütze, die man sich nur vorstellen kann, aus dem Schrank suchen und damit ins K1 zu kommen!\n"
+ "Kai☺UWE empfiehlt Ehemalige oder alte Hasen mit ins Team zu nehmen, um mehr Know-How von damals™ zu haben.\n"
+ "Kai☺UWE empfiehlt Einfich immer alles aufs erste mal richtig zu machen.\n"
+ "Kai☺UWE empfiehlt Einzelabstimmung\n"
+ "Kai☺UWE empfiehlt Empfehlungen nicht zu ernst zu nehmen und lieber mal wieder Frankreich auf Ketten zu besuchen.\n"
+ "Kai☺UWE empfiehlt Fechten zu lernen, Schmiss sieht einfach net so richtig geil aus.\n"
+ "Kai☺UWE empfiehlt Fleisch\n"
+ "Kai☺UWE empfiehlt Freezemage ab- und Exodiamage anzuschaffen\n"
+ "Kai☺UWE empfiehlt Geburtstag haben und sich reich beschenken lassen.\n"
+ "Kai☺UWE empfiehlt Gründe zu finden, warum Lena mehr trinken sollte.\n"
+ "Kai☺UWE empfiehlt Hand drauf!\n"
+ "Kai☺UWE empfiehlt Hendrik in die Bar zu kommen um abgestochen zu werden.\n"
+ "Kai☺UWE empfiehlt Honey zu skypen, um mal eine ehrliche Meinung zu seiner neuen Frisur zu kriegen. #gntm\n"
+ "Kai☺UWE empfiehlt Intellektuell richtig zu schreiben, sonst kommt das penlich.\n"
+ "Kai☺UWE empfiehlt Jack kennen zu lernen.\n"
+ "Jan☺UWE empfiehlt, nicht vergessen zu haben für morgen einzukaufen weil Feiertag!\n"
+ "Kai☺UWE empfiehlt Jan☺UWE öfters mal was empfehlen zu lassen ;)\n"
+ "Kai☺UWE empfiehlt K1-Bargläser während der Gläser-Razzia nicht auf dem Zimmer zu lagern.\n"
+ "Kai☺UWE empfiehlt KAImikaze HaDiKo ~10cl für 2 Euro (Ist er zu stark bis du zu wenig KAI)\n"
+ "Kai☺UWE empfiehlt Kai☺UWE ohne Bindestrich zu schreiben, weil Kai☺UWE mit Bindestrich falsch ist und das Kai☺UWE ärgert.\n"
+ "Kai☺UWE empfiehlt Kai☺UWE das nächste Mal ein \"Kai☺UWE empfiehlt\" zu schreiben.\n"
+ "Kai☺UWE empfiehlt Kai☺UWE richtig zu schreiben und wenn man es nicht weiß es nachzuschlagen (https://wiki.hadiko.de/wiki/Kai☺UWE) oder nachzufragen bei ihm oder dem K1 Barteam oder unter eine der vielen HaDiKo-L Mails der K1 Bar zuschauen in denen Kai☺UWE eine Empfehlungen abgegeben hat.\n"
+ "Kai☺UWE empfiehlt Kamikaze Hadiko - ist er zu stark, bist du zu wenig Kai☺UWE\n"
+ "Kai☺UWE empfiehlt Kommt jetzt in die K1-Bar, ihr habt ja eh nix besseres zu tun\n"
+ "Kai☺UWE empfiehlt Kommunikation ganz abzuschaffen, denn wenn man nichts sagt, sagt man auch nichts dummes.\n"
+ "Kai☺UWE empfiehlt Langeweile mit spontanen Barbesuchen entgegenzuwirken.\n"
+ "Kai☺UWE empfiehlt Lautstärkebeschwerden per HaDiKo-L zu machen, da sich mehr Personen daran erfreuen.\n"
+ "Kai☺UWE empfiehlt Leinwände zu kaufen, die 4K können, da 1080p fast schon Steinzeit ist.\n"
+ "Kai☺UWE empfiehlt Mach heute eine Probe Schicht in der K1 Bar! Gerne auch Leute die noch nie ein Bier gezapft haben!\n"
+ "Kai☺UWE empfiehlt Max dafür danken, dass er uns Fleischkäse und Brötchen gegeben hat\n"
+ "Kai☺UWE empfiehlt Mein Licht ist aus, Ich geh in die Bar.\n"
+ "Kai☺UWE empfiehlt Mindestens ein Kubik-Philipp Bier vernichten.\n"
+ "Kai☺UWE empfiehlt Mit aggresivem Blick Menschen die in schwarzen T-Shirts die Insignie der Wichtigkeit zur Schau tragen nach dem Weg zum Klo fragen.\n"
+ "Kai☺UWE empfiehlt Mortal Kombat X, Ultra Street Fighter, Evolve oder Starcraft zu lernen, da darf Team YP noch mitspielen.\n"
+ "Kai☺UWE empfiehlt Mundschutze mitzubringen, bei den Models geht ein Virus um!\n"
+ "Kai☺UWE empfiehlt Musik zu hören im Loope.\n"
+ "Kai☺UWE empfiehlt Männern ihre feminine Seite zu zeigen.\n"
+ "Kai☺UWE empfiehlt NEIN\n"
+ "Kai☺UWE empfiehlt Netfilx nicht in 4k euer Bildschirm kann das sowieso net\n"
+ "Kai☺UWE empfiehlt Orginal Chupa Chups Lutscher\n"
+ "Kai☺UWE empfiehlt Pangalaktischer Donnergurgler\n"
+ "Kai☺UWE empfiehlt Pokémon in Team Rot zu spielen.\n"
+ "Kai☺UWE empfiehlt Pornos Nachmittags saugen, man kann die speichern\n"
+ "Kai☺UWE empfiehlt Protokolle zu schreiben, um sich an Dinge erinnern zu können\n"
+ "Kai☺UWE empfiehlt Rocket League im Real Live zu spielen.\n"
+ "Kai☺UWE empfiehlt SPECIAL: Nuggl empfiehlt deine Mudda mit Bauschaum.\n"
+ "Kai☺UWE empfiehlt Sammy mit Handschlag zu begrüßen.\n"
+ "Kai☺UWE empfiehlt Sammy mit Handschlag zu begrüßen.\n"
+ "Kai☺UWE empfiehlt Save the Frames, kill the Animals!\n"
+ "Kai☺UWE empfiehlt Sci-Fi-Raumschiffe im Massstab 1:1 zu drucken.\n"
+ "Kai☺UWE empfiehlt Senf mitzubringen, denn es gibt selbstgemachte Bratwürste zum probieren (nur so lange der Vorrat reicht)\n"
+ "Kai☺UWE empfiehlt Spieltiefe über Pokemons zu setzen und sich mal Ingress anzuschauen Kappa.\n"
+ "Kai☺UWE empfiehlt Spätschicht in der K2-Bar zu machen, weil von denen mal wieder keiner Lust hat.\n"
+ "Kai☺UWE empfiehlt Stegonographie zu lernen\n"
+ "Kai☺UWE empfiehlt Subwoofer auch anzuschliesen und sie nicht nur als Deko zu verwenden.\n"
+ "Kai☺UWE empfiehlt Sven gratulieren\n"
+ "Kai☺UWE empfiehlt TTOG wählen. It´s good for you!\n"
+ "Kai☺UWE empfiehlt Tee so lange der Vorrat reicht. Kikkis Ponyhof ist fast leer, also kommt schnell!\n"
+ "Kai☺UWE empfiehlt Tee: Sternenglanz (Geschmacksrichtung: Gebrannte Mandeln)\n"
+ "Kai☺UWE empfiehlt The Elder Scrolls III: Morrowind; All Main Quests in 38 min\n"
+ "Kai☺UWE empfiehlt Vanille-Schoko-Erdbeereis mit Sahne, Streuseln, Waffel und Bailey's und mit nem Milkshake nachspülen.\n"
+ "Kai☺UWE empfiehlt Wasserstoff Uboot #danke sei Koni für die Idee\n"
+ "Kai☺UWE empfiehlt alle 7 One Direction Mitglieder zu kennen.\n"
+ "Kai☺UWE empfiehlt anzufangen vorzugühen für Sammstag.\n"
+ "Kai☺UWE empfiehlt auch Barteamshirts zu halbieren\n"
+ "Kai☺UWE empfiehlt auch mal bei einer Burlesque Show mitzumachen.\n"
+ "Kai☺UWE empfiehlt auch mal mit seinem Pömpel Gassi zu gehen.\n"
+ "Kai☺UWE empfiehlt auf den Kopf zu ziehlen.\n"
+ "Kai☺UWE empfiehlt auf jeden Fall wählen zu gehen.\n"
+ "Kai☺UWE empfiehlt aufzuhören weniger zu trinken, um es ertragen zu können.\n"
+ "Kai☺UWE empfiehlt aus der dunklen Höhle hervor zu kriechen, der 3-tägige Kater ist beendet.\n"
+ "Kai☺UWE empfiehlt ausschlaffen wird überbewertet.\n"
+ "Kai☺UWE empfiehlt beim Starten lassen von Raketen die Arschbacken nicht zusammen zu kneifen!\n"
+ "Kai☺UWE empfiehlt beim aktuellen Wetter Bier und Cocktails gegen Dehydrierung zu trinken.\n"
+ "Kai☺UWE empfiehlt beim nächten mal früher einen Karte zu kaufen, da es schon Lans gab die am Donnerstag davor ausverkauft waren. \n"
+ "Kai☺UWE empfiehlt beim tauchen nicht durch die Nase zu atmen.\n"
+ "Kai☺UWE empfiehlt bewegliche Kleinteile im Auge zu behalten.\n"
+ "Kai☺UWE empfiehlt bis um 00.00Uhr zu bleiben.\n"
+ "Kai☺UWE empfiehlt bis zum Jahresende jeden Tag eine HaDiKo Bar zu besuchen.\n"
+ "Kai☺UWE empfiehlt bunte Bälle!\n"
+ "Kai☺UWE empfiehlt dabei mit Julian einen Shot zu trinken, da der seinen Bachlerarbeit abgeschickt hat.\n"
+ "Kai☺UWE empfiehlt das Abendessen ausfallen zu lassen und sich was vom Grill zu sichern.\n"
+ "Kai☺UWE empfiehlt das Studium zu schmeißen und gegen Bezahlung dürre Frauen mit Dreck zu bewerfen.\n"
+ "Kai☺UWE empfiehlt den \"The Elder Scroll IV: Oblivion Any% No-Out of Bounds\" run in 40min (einfach nur wie????) am Donnerstag, die \"Tetris: The Grand Master 8-way 100% race\" und \"Tetris: The Grand Master 2-player 1-controler race\" runs am Freitag (ja man kann Tetris durchspielen) und natürlich save the Frames/ kill the animals.\n"
+ "Kai☺UWE empfiehlt den Bereich unter der K2 Eingangstreppe genauer zu erforschen.\n"
+ "Kai☺UWE empfiehlt den Betreff zu lesen. \n"
+ "Kai☺UWE empfiehlt den Degen auszupacken und sich der K6-Bar anzuschließen.\n"
+ "Kai☺UWE empfiehlt den Koffeeinmangel im Schlaf intravenös mit Bier auszugleichen.\n"
+ "Kai☺UWE empfiehlt den Schlauch zu reparieren, dass Sammy nicht verhungert.\n"
+ "Kai☺UWE empfiehlt den Straßenverkehr nicht aus den Augen zu verlieren.\n"
+ "Kai☺UWE empfiehlt den Winterparka auszupacken und im K1 einzumarschieren.\n"
+ "Kai☺UWE empfiehlt den anstehen Vorlesungen ein Friedensangebot zu machen und eine Friedensgießkanne zu trinken.\n"
+ "Kai☺UWE empfiehlt den gebrochenen Fluch zu feiern.\n"
+ "Kai☺UWE empfiehlt der Prevent Cancer Foundation all dein Money zu spenden.\n"
+ "Kai☺UWE empfiehlt der Schicht die französische Nationalhymne vorzusingen und dafür sich einen Gratis Shot* geben zu lass.\n"
+ "Kai☺UWE empfiehlt der Was-soll--ganze-Scheiß-Shot\n"
+ "Kai☺UWE empfiehlt die Bar-Mail nicht zu vergessen.\n"
+ "Kai☺UWE empfiehlt die Barmail selbst zu schreiben, weil sonst so n Scheiß hier dabei rauskommt.\n"
+ "Kai☺UWE empfiehlt die Ginflut in der K1 Bar einzuleiten.\n"
+ "Kai☺UWE empfiehlt die Haare nicht abzuschneiden.\n"
+ "Kai☺UWE empfiehlt die K1 Bar weil obwohl beim Singstar Amateure singen trotzdem qualitativ bessere Musik geboten wird.\n"
+ "Kai☺UWE empfiehlt die Musikauswahl zu loben.\n"
+ "Kai☺UWE empfiehlt die Reste Gin Gray zu vernichten.\n"
+ "Kai☺UWE empfiehlt die drei Untermenschen, die gegen ihn als Barteamsprecher gestimmt haben, mit Mistgablen und Fackeln vom HaDiKo-Gelände zu jagen, ewiges Hausverbot auszusprechen und alle Reche in der SV sofortig zu entziehen!\n"
+ "Kai☺UWE empfiehlt die kurzen Hosen rauszulegen, den bald ist Halloween, dass heißt es ist quasi Weihnachten, was bedeutet der Sommer steht vor der Tür.\n"
+ "Kai☺UWE empfiehlt die letzte Email der K1-Bar zu lesen um alle aktuellen Angebote zu kennen.\n"
+ "Kai☺UWE empfiehlt diese Email Sonntag Abend zu lesen.\n"
+ "Kai☺UWE empfiehlt durch geschickte Schachzüge unter die Top10 zu kommen.\n"
+ "Kai☺UWE empfiehlt ein eigenes Foto mitzubringen, denn er hat heute leider keines für euch!\n"
+ "Kai☺UWE empfiehlt ein gewaschenes Unifestshirt in die Bar zu tragen.\n"
+ "Kai☺UWE empfiehlt ein kleines Aquarium Met.\n"
+ "Kai☺UWE empfiehlt ein wahrer Biernazi zu sein und das Reinheitsgebot zitieren zu können und zu wissen, warum Friedrich Barbarossa ein viel größerer Held war als Kai☺UWE jemals sein wird.\n"
+ "Kai☺UWE empfiehlt ein weißes T-Shirt anzuziehen!\n"
+ "Kai☺UWE empfiehlt eine 3D-gedruckte Figur von sich selbst mitzubringen, Fotos sind voll out.\n"
+ "Kai☺UWE empfiehlt eine Haarspange mit roter Fliege und schwarz-rot-goldenen Strähnen.\n"
+ "Kai☺UWE empfiehlt eine Sonnenbrille mit zu bringen da wir wieder Licht haben und man sonst diese komsichen Gestalten in der Bar erkennt könnte.\n"
+ "Kai☺UWE empfiehlt eine Waffe dabei zu haben, falls Hendrik nicht einsichtig sein sollte.\n"
+ "Kai☺UWE empfiehlt eine groessere Selena Gomez-Sammlung zu haben als A1!\n"
+ "Kai☺UWE empfiehlt einen Glitzerpulli zu tragen.\n"
+ "Kai☺UWE empfiehlt einen Haargummi mit in die Bar zu nehmen und sich die Haare zu einem Zopf flechten zu lassen.\n"
+ "Kai☺UWE empfiehlt einen Katzen-Entspannungskalender fuers neue Jahr zu erwerben.\n"
+ "Kai☺UWE empfiehlt einen Schneemann zu bauen ;)\n"
+ "Kai☺UWE empfiehlt einen Kai☺UWE Lebensweisheit: Fals man keinen Lust zum kochen hat, kann man seinen Käse auch mit dem Bunsenbrenner schmelzen.\n"
+ "Kai☺UWE empfiehlt einfach auf den Kopf klicken.\n"
+ "Kai☺UWE empfiehlt einfach mal Prinzessin zu sein.\n"
+ "Kai☺UWE empfiehlt einfach mal anders als auf dem Bildungsweg erfolgreich sein zu wollen.\n"
+ "Kai☺UWE empfiehlt einfach mal auf minecraft.hadiko.de vorbei zu schaun, wer dafür keine Zeit hat, darf gerne Abschreiben üben.\n"
+ "Kai☺UWE empfiehlt einfach mal nichts sagen.\n"
+ "Kai☺UWE empfiehlt einfach mal so die Bar aufzumachen, für mehr Abwechselung.\n"
+ "Kai☺UWE empfiehlt einfach mal vorbeizukommen und reinzuschauen.\n"
+ "Kai☺UWE empfiehlt es nicht nur bei einem Skandal zu belassen: http://bit.ly/2su7pO3\n"
+ "Kai☺UWE empfiehlt etwas schneller zu trinken, um die verlorene Zeit von der Zeitumstellung wieder aufzuhohlen.\n"
+ "Kai☺UWE empfiehlt eure Liebe lieber warm als kalt zu teilen.\n"
+ "Kai☺UWE empfiehlt eurer Mutter zum Muddertag zu gratulieren!\n"
+ "Kai☺UWE empfiehlt früher anfangen zu trinken, denn der Tag hat nur 24 Stunden und das ist um ein Getränk wie Bier zu ehren eigentlich viel zu wenig.\n"
+ "Kai☺UWE empfiehlt früher schlafen zu gehen um jetzt schon wieder wach zu sein\n"
+ "Kai☺UWE empfiehlt ganz viel Alkohol mit Asli zu trinken!\n"
+ "Kai☺UWE empfiehlt ganz viele tolle Dinge.\n"
+ "Kai☺UWE empfiehlt gegen das schwüle Wetter eine kaltes Bier zu trinken.\n"
+ "Kai☺UWE empfiehlt grow the Fuck up and play some videogames!\n"
+ "Kai☺UWE empfiehlt grundsätzlich Bier zu wählen, aber zur Sicherheit auch einen Fake-Schnorres mit einzupacken.\n"
+ "Kai☺UWE empfiehlt gute laune auf 90er mitzubringen\n"
+ "Kai☺UWE empfiehlt heute Joster-Shots!\n"
+ "Kai☺UWE empfiehlt heute mal so richtig die Puppen tanzen zu lassen.\n"
+ "Kai☺UWE empfiehlt heute schon schonmal ein kühles Bier zu trinken da es morgen warm wird.\n"
+ "Kai☺UWE empfiehlt heute viel zu trinken als Vorkurs für die O-Phase.\n"
+ "Kai☺UWE empfiehlt ihm auf Twitter zu folgen für die tägliche Dosis \"Kai☺UWE empfiehlt\". https://twitter.com/KaiUweEmpfiehlt\n"
+ "Kai☺UWE empfiehlt ihm auf Twitter zu folgen.\n"
+ "Kai☺UWE empfiehlt ihn nicht alleine zu lassen, damit er Jemanden zum Umarmen hat\n"
+ "Kai☺UWE empfiehlt ihn nicht für andere Bars als Werbung zu missbrauchen. \n"
+ "Kai☺UWE empfiehlt ihn ohne \"-\" zu schreiben.\n"
+ "Kai☺UWE empfiehlt ihn richtig zu schrieben, selbst wenn man ein Geist ist, sonst holt er die Ghostbusters.\n"
+ "Kai☺UWE empfiehlt immer einen Plan B zu haben.\n"
+ "Kai☺UWE empfiehlt in Zukunft einen einfallsreicheren Kai☺UWE die Empfehlung schreiben zu lassen.\n"
+ "Kai☺UWE empfiehlt in der Bar prokrastinieren\n"
+ "Kai☺UWE empfiehlt in die K1-Bar zu kommen um Glühwein zu trinken und Weihnachtslieder zu singen.\n"
+ "Kai☺UWE empfiehlt in die K1-Bar zu kommen und euch nicht von den merkwürdigen Barteamern verwirren zu lassen.\n"
+ "Kai☺UWE empfiehlt innige Mensch-Maschine Interaktionen.\n"
+ "Kai☺UWE empfiehlt ins Klo und sonst nirgends zu kotzen.\n"
+ "Kai☺UWE empfiehlt irgendeinen Unsinn.\n"
+ "Kai☺UWE empfiehlt irgentwas tolles\n"
+ "Kai☺UWE empfiehlt jedem, sich eine Frisur wie Heidi Klum zuzulegen.\n"
+ "Kai☺UWE empfiehlt jung zu bleiben weil Älterwerden sucked...\n"
+ "Kai☺UWE empfiehlt keine Angst vor Marvin am Kicker zu haben, der blutet wie jeder ander Mensch und es gibt mehr als einen Weg zu gewinnen. 😈.\n"
+ "Kai☺UWE empfiehlt keine Bananen auf A4 zu werfen!\n"
+ "Kai☺UWE empfiehlt keine milliarden Grapefruitlimo zu verkaufen.\n"
+ "Kai☺UWE empfiehlt keinen Angst zu haben und einfach eine Schicht zu machen.\n"
+ "Kai☺UWE empfiehlt keinen Biergarten zu planen, wenn es regnen soll.\n"
+ "Kai☺UWE empfiehlt keinen Cocktail des Monats zu bestellen bis Die Schicht weiss welchen es gibt. \n"
+ "Kai☺UWE empfiehlt keinen ÄRas zu töten, es sei denn, man möchte das Amt übernehmen. [Bester Zeitpunkt für eine feindliche Übernahme?????]\n"
+ "Kai☺UWE empfiehlt kleine Cocktails zu bestellen.\n"
+ "Kai☺UWE empfiehlt kleine Umfragegruppen zu wählen\n"
+ "Kai☺UWE empfiehlt kreative Lösungen für hausgemachte Problem zu finden.\n"
+ "Kai☺UWE empfiehlt kurz fassen;\n"
+ "Kai☺UWE empfiehlt laut für SlowaKai zu jubeln.\n"
+ "Kai☺UWE empfiehlt lieber schon mal bei CS vorzuglühen, damit GNTM einfacher anzusehen ist.\n"
+ "Kai☺UWE empfiehlt mehr Gin Grey zu trinken, damit wir Platz haben noch mehr Vormische zu machen 💪\n"
+ "Kai☺UWE empfiehlt mehr Mühe in Mails zu stecken.\n"
+ "Kai☺UWE empfiehlt mehr Werbung für \"Kai☺UWE empfiehlt\" zu machen, da \"Kai☺UWE empfiehlt\" auf Twitter [https://twitter.com/kaiuweempfiehlt?lang=de] nur 42 Follower hat und das wird einer Legende wie Kai☺UWE, der das Leben im HaDiKo mit seinen Lebensweisenheiten in kurzen und kopakten Empfehlungen erst lohneswert macht, nicht würdig.\n"
+ "Kai☺UWE empfiehlt meine neuestes \"Kai☺UWE empfiehlt\" zu empfehlen.\n"
+ "Kai☺UWE empfiehlt mit Bier befüllte begehbare Kühlschränke einzurichten.\n"
+ "Kai☺UWE empfiehlt mit dem Far Cry 2 training zu beginnen, da Unsterblich_II in dem Spiel garnicht so unsterblich ist.\n"
+ "Kai☺UWE empfiehlt mit den Regentänzen aufzuhören und lieber beim Biertrinken die Sonne anzubeten.\n"
+ "Kai☺UWE empfiehlt mit diesem einfachen Trick 8 Gramm mehr in der Hose zu haben.\n"
+ "Kai☺UWE empfiehlt mit einem kühlen Cosmopolitan ins Wochenende zu starten.\n"
+ "Kai☺UWE empfiehlt mit so viel Fan-Bemalung wie möglich zu kommen und die Vuvuzela nicht zu vergessen.\n"
+ "Kai☺UWE empfiehlt mit viel Gefühl tief in die Fugen zu bohren.\n"
+ "Kai☺UWE empfiehlt morgen Einkaufen zu gehen, weil Donnerstag Feiertag ist.\n"
+ "Kai☺UWE empfiehlt möglichst schnell zu kommen, denn es wird viel zu wenig getrunken!\n"
+ "Kai☺UWE empfiehlt möglichst wenig Prüfungen zu haben, damit man mehr feiern kann. Oder es einfach trotzdem zu tun.\n"
+ "Kai☺UWE empfiehlt müsst ihr in heute selbst fragen.\n"
+ "Kai☺UWE empfiehlt neue Sprachen zu lernen, zum Beispiel frei nach RFC5321\n"
+ "Kai☺UWE empfiehlt nicht am Kabel zu wackeln.\n"
+ "Kai☺UWE empfiehlt nicht auf Kai☺UWE zu hören.\n"
+ "Kai☺UWE empfiehlt nicht aus dem Stiefel zu trinken!\n"
+ "Kai☺UWE empfiehlt nicht gegen NaVi auf Dust 2 zu spielen.\n"
+ "Kai☺UWE empfiehlt nichts, da er schon am Trainieren ist.\n"
+ "Kai☺UWE empfiehlt nie was zu empfehlen.\n"
+ "Kai☺UWE empfiehlt nächste Woche nach Dinkelsbühl zu fahren, damit es sicher nicht mit der Masterarbeit vorran geht, weil das HaDiKo einfach einen Kai☺UWE braucht.\n"
+ "Kai☺UWE empfiehlt nächstes Jahr beim Tag der offenen Tür mitzuhelfen!\n"
+ "Kai☺UWE empfiehlt rabimmelrabammelrabumm\n"
+ "Kai☺UWE empfiehlt sanfte Schläge auf den Hinterkopf nach heute Abend zu vermeiden, irgendwann ist da nix mehr zu retten.\n"
+ "Kai☺UWE empfiehlt schonmal eine neue Sendung zu überlegen, die man total overhyped in der Bar schauen kann!\n"
+ "Kai☺UWE empfiehlt schwarz/weiß-karierte Ganzkörperkondome mitzubringen um dem aktuellen Topmodel Style gerecht zu werden.\n"
+ "Kai☺UWE empfiehlt seine Zuneigung nach Wahl der Genießbarkeit des Shots zu bewerten\n"
+ "Kai☺UWE empfiehlt sich Rechtsklick auch auf Linksklick zu binden, damit man nicht in Versuchung kommt.\n"
+ "Kai☺UWE empfiehlt sich auch irgendwas gutes.\n"
+ "Kai☺UWE empfiehlt sich auf in 6Tagen 4Stunden 56Minuten und 08 Sekunden zu freuen.\n"
+ "Kai☺UWE empfiehlt sich bei Entscheidungsproblemen an die 0721 9881 8418 zu wenden.\n"
+ "Kai☺UWE empfiehlt sich bei einem Barteam eine Probeschicht zu sichern und vielleicht einem Barteam beizutreten, damit auch noch an den nächsten 214 Tagen immer eine Bar offen hat.\n"
+ "Kai☺UWE empfiehlt sich die Achselhaare gründlich zu rasieren.\n"
+ "Kai☺UWE empfiehlt sich die Aufzeichnung der letzten TASBots anzusehen.\n"
+ "Kai☺UWE empfiehlt sich die Nippel abzukleben. Vor lauter heißer Luft wirds windig werden!\n"
+ "Kai☺UWE empfiehlt sich diese famose Veranstaltung nicht entgehen zu lassen und sich am besten gleich einen Wecker zu stellen\n"
+ "Kai☺UWE empfiehlt sich diese fantastische Show auf keine Fall entgehen zu lassen.\n"
+ "Kai☺UWE empfiehlt sich ein Bier zu kaufen und das mit nem Item Duplication Glitch zu verdoppeln.\n"
+ "Kai☺UWE empfiehlt sich einen Einkaufswagen voller Kuscheltiere anzuschaffen.\n"
+ "Kai☺UWE empfiehlt sich für die Blumen zu bedanken\n"
+ "Kai☺UWE empfiehlt sich für heute Nacht auf ca 5 Uhr einen Wecker zu stellen um den tollen 30 sec Kampf (das ist nur eine Schätzung) von \"Mayweather vs. McGregor\" anzusehen.\n"
+ "Kai☺UWE empfiehlt sich im Vorraus Gesprächsthemen zu überlegen um Marvin abzulenken. \n"
+ "Kai☺UWE empfiehlt sich mehr Mühe mit Mails an HaDiKo-L zu geben.\n"
+ "Kai☺UWE empfiehlt sich mit kühlen Getränken in der K1 Bar abzukühlen\n"
+ "Kai☺UWE empfiehlt sich mit viel Alkohol im Blut daruf vorzubereiten, dass sich nächste Woche alle über Schneesturm aufregen werden.\n"
+ "Kai☺UWE empfiehlt sich nicht die Augenbrauen abzurasieren.\n"
+ "Kai☺UWE empfiehlt sich nicht mit der Malerrolle zu schminken und mit den nervigen Empfehlungen aufzuhören...\n"
+ "Kai☺UWE empfiehlt sich nicht mit der Zeit anzulegen.\n"
+ "Kai☺UWE empfiehlt sich nicht tiefer mit seiner letzten Empfelung zu beschäftigen.\n"
+ "Kai☺UWE empfiehlt sich nicht von den gefälschten Empfelungen der K2 Bar verarschen zu lassen.\n"
+ "Kai☺UWE empfiehlt sich nicht von seinem Barteam zur Schau stellen zu lassen.\n"
+ "Kai☺UWE empfiehlt sich nicht zu sehr um den eigenen offensichtlichen Alkoholismus zu sorgen, laut Definition ist jeder Alkoholiker, der jedes Silvester ein Glas Sekt trinkt...\n"
+ "Kai☺UWE empfiehlt sich sein Krönchen fortan selbst im 3D-Drucker zu drucken.\n"
+ "Kai☺UWE empfiehlt sich stempeln zu lassen!\n"
+ "Kai☺UWE empfiehlt sich vor der Telematikklausur morgen noch ein Feierabendbier zu gönnen.\n"
+ "Kai☺UWE empfiehlt sich warm anzuziehen, es wird eisig!\n"
+ "Kai☺UWE empfiehlt sich zu verabschieden.\n"
+ "Kai☺UWE empfiehlt so auch im Straßenverkehr zu fahren, was sollte schon schief gehen?\n"
+ "Kai☺UWE empfiehlt ttögliche Hilfe beim Dekorieren.\n"
+ "Kai☺UWE empfiehlt viel zu trinken, um das schiefe Gejaule ertragen zu können.\n"
+ "Kai☺UWE empfiehlt viele viele vieeeeele kleine Cocktails zu bestellen, weil Sofia ihre erste Schicht macht.\n"
+ "Kai☺UWE empfiehlt voll aufzudrehen, damit die rechte Box angeht. \n"
+ "Kai☺UWE empfiehlt vorbeikommen, jackbox.tv aufrufen, mitmachen!\n"
+ "Kai☺UWE empfiehlt vorbeizukommen und beim HaDiKo Duell ein Team zu stellen.\n"
+ "Kai☺UWE empfiehlt vorbeizuschauen und pink zu tragen.\n"
+ "Kai☺UWE empfiehlt vorher The Human Centipede zu gucken, um so richtig in Stimmung für heute Abend zu kommen.\n"
+ "Kai☺UWE empfiehlt vorher eine gute Grundlage zu schaffen.\n"
+ "Kai☺UWE empfiehlt vorher nochmal das eigene Antlitz in der nächstbesten spiegelnden Oberfläche zu überprüfen, das eigene Aussehen ist heute sehr sehr wichtig\n"
+ "Kai☺UWE empfiehlt weniger Drogen bei Blizzard zu verteilen.\n"
+ "Kai☺UWE empfiehlt weniger Kleidung, dann kommt das Outfit einfach besser an.\n"
+ "Kai☺UWE empfiehlt weniger böllern dann hat man mehr Geld für Gingray.\n"
+ "Kai☺UWE empfiehlt weniger verpeilt zu sein...\n"
+ "Kai☺UWE empfiehlt wenn das Licht aus ist nicht nach Hause, sondern in die K1 Bar zu gehen!\n"
+ "Kai☺UWE empfiehlt wenn einem die Wirklichkeit nicht gefällt, sich seine eigene Realität zu schaffen.\n"
+ "Kai☺UWE empfiehlt wer ist Anika und was hat der DC damit zu tuen?\n"
+ "Kai☺UWE empfiehlt wieder mit trinken anzufang, das man den Vorsatz weniger zu trinken 15 Stunden durchgehalten hat sollte doch eingeltich reichen für das Jahr\n"
+ "Kai☺UWE empfiehlt zu kommen, weitere 500 Jahre dürften die wenigsten von euch überleben, auch wenn Alkohol konserviert.\n"
+ "Kai☺UWE empfiehlt zu schauen, ob auch wirklich alle dicht.\n"
+ "Kai☺UWE empfiehlt zur Not alleine zum Bier Trinken vorbei zu kommen, da mit Freunden, die in einer Beziehung sind heute eh nichts anzufangen ist.\n"
+ "Kai☺UWE empfiehlt zur erscheinen, sonst müssen wir weinen!\n"
+ "Kai☺UWE empfiehlt Ära-Killer für 4,50 Euro und fals du Ära bist oder warst nur 4 Euro.\n"
+ "Kai☺UWE empfiehlt ärgert den barteamer nicht, der euch mit getränken versorgt...\n"
+ "Kai☺UWE empfiehlt übrigens, Mails zu schreiben.\n"
+ "Kai☺UWE empfiehlt ギガ ドリル ブレイク!!!";
}
package directory.passive.markov;
import java.util.Arrays;
// FIXME rename
public class Prefix {
private final Token[] tokens;
public Prefix(Token[] tokens) {
this.tokens = tokens;
}
@Override
public String toString() {
return "Prefix [tokens=" + Arrays.toString(tokens) + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + Arrays.hashCode(tokens);
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Prefix other = (Prefix) obj;
if (!Arrays.equals(tokens, other.tokens))
return false;
return true;
}
}
package directory.passive.markov;
public class Token {
public static final Token START = new SpecialToken();
public static final Token END = new SpecialToken();
protected static final Token EMPTY = new SpecialToken();
public Token(String content) {
super();
this.content = content;
}
String content;
@Override
public String toString() {
if (this == END) {
return "Token <END>";
}
if (this == START) {
return "TOKEN <START>";
}
if (this == EMPTY)
return "TOKEN <empty>";
return "Token [content=" + content + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((content == null) ? 0 : content.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null)
return false;
if (this == START)
return false;
if (this == END)
return false;
if (this == EMPTY)
return false;
if (getClass() != obj.getClass())
return false;
Token other = (Token) obj;
if (content == null) {
if (other.content != null)
return false;
} else if (!content.equals(other.content))
return false;
return true;
}
public String render(String prefix) {
return prefix + content;
}
private static class SpecialToken extends Token {
public SpecialToken() {
super("");
}
@Override
public String render(String prefix) {
return "";
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment