From 717ef1c7e574ee27d440e05562c1f0a791fff38e Mon Sep 17 00:00:00 2001 From: Artorias <72317635+Arutoriasu@users.noreply.github.com> Date: Wed, 19 Mar 2025 16:48:33 +0100 Subject: [PATCH] Charts Work again. --- .../gruppe_05_1/database/MongoPprUtils.java | 3 ++ .../gruppe_05_1/rest/FrontEndController.java | 35 +++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/src/main/java/org/texttechnologylab/project/gruppe_05_1/database/MongoPprUtils.java b/src/main/java/org/texttechnologylab/project/gruppe_05_1/database/MongoPprUtils.java index d3d172a..9774e1e 100644 --- a/src/main/java/org/texttechnologylab/project/gruppe_05_1/database/MongoPprUtils.java +++ b/src/main/java/org/texttechnologylab/project/gruppe_05_1/database/MongoPprUtils.java @@ -522,8 +522,11 @@ public class MongoPprUtils { * @return */ public static HtmlSpeech getSpeechByKey(String key) { + System.out.println(key); Document filter = new Document("speechKey", key); Document speechDoc = getSpeechCollection().find(filter).first(); + System.out.println(getSpeechCollection().find().filter(Filters.eq("speechKey", key)).first()); + System.out.println("SpeechDoc "+ speechDoc); return new HtmlSpeech(speechDoc); } diff --git a/src/main/java/org/texttechnologylab/project/gruppe_05_1/rest/FrontEndController.java b/src/main/java/org/texttechnologylab/project/gruppe_05_1/rest/FrontEndController.java index e792d1c..69bda9f 100644 --- a/src/main/java/org/texttechnologylab/project/gruppe_05_1/rest/FrontEndController.java +++ b/src/main/java/org/texttechnologylab/project/gruppe_05_1/rest/FrontEndController.java @@ -8,6 +8,8 @@ import org.texttechnologylab.project.gruppe_05_1.database.MongoPprUtils; import org.texttechnologylab.project.gruppe_05_1.domain.html.HtmlSpeech; import org.texttechnologylab.project.gruppe_05_1.domain.html.Parlamentarier; import org.texttechnologylab.project.gruppe_05_1.domain.html.ParlamentarierDetails; +import org.texttechnologylab.project.gruppe_05_1.domain.nlp.Token; +import org.texttechnologylab.project.gruppe_05_1.domain.nlp.Topic; import org.texttechnologylab.project.gruppe_05_1.domain.speech.SpeechMetaData; import org.texttechnologylab.project.gruppe_05_1.util.Logger; import org.texttechnologylab.project.gruppe_05_1.util.PPRUtils; @@ -17,6 +19,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import static org.texttechnologylab.project.gruppe_05_1.util.PPRUtils.listFractionsFromMembers; @@ -155,6 +158,38 @@ public class FrontEndController { HtmlSpeech speech = MongoPprUtils.getSpeechByKey(redeId); attributes.put("s", speech); + // NLP: Topic + if ((speech.getNlp() != null) && (speech.getNlp().getTopics() != null)) { + Map topics = Topic.condenseTopicInformation(speech.getNlp().getTopics()); // Daten "verdichten"... + // ... und ersetzen + speech.getNlp().setTopics( + topics.entrySet().stream() + .map(me -> new Topic(me.getKey(), me.getValue(), null)) + .collect(Collectors.toList())); + } + + // NLP: POS + if (speech.getNlp() != null && speech.getNlp().getTokens() != null) { + List tokens = speech.getNlp().getTokens(); + + Map posCounts = Token.countPOS(tokens); + + List posList = posCounts.entrySet().stream() + .map(entry -> new Token(entry.getKey(), String.valueOf(entry.getValue()), "")) // Lemma remains empty + .collect(Collectors.toList()); + + System.out.println("DEBUG: Sending POS List to NLP - " + posList); + + speech.getNlp().setPosList((List) posList); + + } else { + System.out.println("DEBUG: POS List is EMPTY"); + speech.getNlp().setPosList((List) new ArrayList()); // Ensure it's never null + } + + // TODO: Token wird momentan etwas komisch abgespeichert, da im Attribut text die POS art steht, und in pos die Anzahl dieser POS arten. Umstrukturieren damit keine Verwirrung herrscht + + ctx.render("speech.ftl", attributes); } }