Post your questions and help other users.
Moderator: Martin
-
Housi
- Posts: 25
- Joined: 26 Jun 2016 11:33
Post
by Housi » 06 Jul 2016 16:09
Hallo,
Ich möchte herausfinden wie viel das Wort "Sieg" in einer Text Variable vorkommt.
(Script)
Wie gehe ich da vor ?
Gruss Hans
-
Housi
- Posts: 25
- Joined: 26 Jun 2016 11:33
Post
by Housi » 06 Jul 2016 22:30
Hallo,
Zählen ist ja klar, aber automatisch mit matches oder containes im Script, hat einer ein Beispiel?
Bitte
-
Bushmills
- Posts: 286
- Joined: 23 Sep 2014 21:56
Post
by Bushmills » 06 Jul 2016 22:38
Was hast du denn bisher probiert, und was war das Problem, das du damit hattest? Ohne das zu wissen, läuft man Gefahr, zu erklären, dass Zählen mittels Addieren von 1 erreicht werden kann.
-
Housi
- Posts: 25
- Joined: 26 Jun 2016 11:33
Post
by Housi » 07 Jul 2016 07:02
Hallo ich habe folgendes probiert,
es schreibt mir die Zahl 2 (Sieg)
aber immer 2x zu viel.
//Textdatei in Zeilen aufteilen
keywords = split(global_resultatefull, "\\n");
matching_keywords = newList();
//keyword = "Sie";
// Schleife über jede Zeile der Textdatei
for (keyword in keywords)
{
// prüfen ob der Text das Schlüsselwort aus der Textdatei enthält
if (contains(keywords, 'Sieg_Hans'))
{
// Schlüsselwort ist enthalten, Schlüsselwort in Liste einfügen
addElement(matching_keywords, '2');
}
}
//addElement(matching_keywords, 'Sieg');
// true zurückgeben, wenn mindestens ein Schlüsselwort gefunden wurde
return length(matching_keywords)>0;
//test = return length(matching_keywords)>0;
-
Attachments
-

- IMG_20160707_090102.png (147.77 KiB) Viewed 20587 times
-
Bushmills
- Posts: 286
- Joined: 23 Sep 2014 21:56
Post
by Bushmills » 07 Jul 2016 07:24
Ein mögliches Problem in deinem Code sehe ich, wenn eine Zeile mehrmals das Schlüsselwort enthält - die Funktion "contains" wird pro Zeile ja nur einmal aufgerufen. Ein anderes könnte sein, dass der Funktion egal ist, wo und wie das Schlüsselwort im Text steht, siehe:
Siegfried aus Siegen verhalf seinem Team zum Sieg, indem er das Siegtor schoss
Wie oft steht "Sieg" im obigen Text?
-
Bushmills
- Posts: 286
- Joined: 23 Sep 2014 21:56
Post
by Bushmills » 07 Jul 2016 07:40
Vermutlich würde ich so an's Wörterhäufigkeitszählen herangehen:
- Satzzeichen entfernen mit replaceAll()
- Großbuchstaben klein machen mit toLowerCase()
- Zeilen mit split() als Liste von Worten darstellen, und durch diese iterieren
- in der Schleife jedes Wort als key zu einem map-element benutzen, welches initial den Wert 0 erhält, und bei jedem Vorkommen inkrementiert wird
Am Ende hätte ich dann eine map, mit allen verschiedenen Worten im Text, und der Verwendungsfrequenz von jedem davon. Daraus würde ich dann den Wert des Elements mit dem Wort als key, woran ich interessiert bin, auslesen.
-
Housi
- Posts: 25
- Joined: 26 Jun 2016 11:33
Post
by Housi » 07 Jul 2016 07:57
Hallo Bushmills,
tönt gut aber auch kompliziert,
werde mal testen.
Besten Dank Bushmills
(wenn du Zeit hast kannst du mir ein Beispiel machen)
-
Bushmills
- Posts: 286
- Joined: 23 Sep 2014 21:56
Post
by Bushmills » 07 Jul 2016 08:16
Klingt komplizierter als es ist - der entsprechende Script, der das alles macht, lässt sich in eine Zeile schreiben:

- Screenshot_2016-07-07-10-13-48.png (90.96 KiB) Viewed 20581 times
Der ganze flow mit Ausgabe zum testen sähe dann so aus:

- Screenshot_2016-07-07-10-09-15.png (56.08 KiB) Viewed 20581 times
-
Housi
- Posts: 25
- Joined: 26 Jun 2016 11:33
Post
by Housi » 07 Jul 2016 08:51
Hallo Bushmills,
BESTEN DANK !!
Probiere ich mal aus
Lg Housi