Startseite › Foren › Deutsches LiveCode-Forum › Identifizierung von Hauptwörtern
Schlagwörter: Hauptwort
- Dieses Thema hat 7 Antworten und 4 Teilnehmer, und wurde zuletzt aktualisiert vor 6 Jahren, 7 Monaten von Torsten.
-
AutorBeiträge
-
-
April 18, 2018 um 16:50 Uhr #5357
Kurze Frage: wie kann man Hauptwörter erkennen, d.h. wie erkenne ich, wenn ein Wort gross geschrieben wird?
Gibt es ein einfaches Kommando, muss ich über Regex gehen oder was gäbe es noch für Möglichkeiten?
-
April 19, 2018 um 06:05 Uhr #5360
Hallo Torsten!
Da ich mich noch nicht ausreichend intensiv mit regEx beschäftigt habe, würde ich wohl das erste Zeichen jedes Wortes gegen eine Liste von Großbuchstaben checken. Also in LC:function istHauptwort pWort put false into tResultat if pWort is not empty then if char 1 of pWort is among the items of "A,B,C,...,Z" then put true into tResultat end if end if return tResultat end istHauptwort
Hab’s aber nicht getestet und „…“ muss natürlich durch die entsprechenden Buchstaben ersetzt werden, eventuell auch noch die großen Umlaute mit reinpacken und den Text mittels textDecode() in lesbaren Text wandeln.
Falls Du eine Lösung mittels RegEx gefunden hast, würde mich diese sehr interessieren, da ich mich wie gesagt noch nicht ausführlich genug damit beschäftigen konnte.
liebe Grüße,
Georg
PS.: Zum Abschluss erlaube ich mir noch Dich auf mein Problem mit der Berechnung der Kalenderwochen nach ISO hinzuweisen. Da komme ich irgendwie nicht weiter. -
April 19, 2018 um 13:28 Uhr #5372
Hallo Georg,
zwischen zweiter und dritter Zeile empfehle ich
set the caseSensitive to true
Peter
-
April 19, 2018 um 13:56 Uhr #5374
-
April 19, 2018 um 14:02 Uhr #5378
Noch einfacher:
set the caseSensitive to true if char 1 of pWort is in "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Bei einer vergleichsweise simplen Abfrage wie dieser hier hat RegEx keine Vorteile – außer Du willst noch mehr checken wie zum Beispiel, ob alle weiteren Zeichen auch wirklich klein sind usw…
-
April 20, 2018 um 05:39 Uhr #5390
Lieber Georg,
lieber Peter,
lieber Hauke,als Dank für eure Hilfe hier die komplette Version:
function isNoun pWord put false into tResult set the caseSensitive to true if pWord is empty then return false if char 1 of pWord is in "ABCDEFGHIJKLMNOPQRSTUVWXYZ" then put true into tResult end if return tResult end isNoun
Im Script wird das dann folgendermassen eingebaut:
repeat for each trueword i in field "Text" if isNoun(i) then put i & cr after field "Nouns" end if end repeat
Damit bekommt man zwar erstmal nur alle großgeschriebenen Wörter aussortiert und noch nicht die Hauptwörter, aber da muss dann ein Wörterbuch eingebunden werden. Bin ich dran.
Liebe Grüße
Torsten -
April 20, 2018 um 06:00 Uhr #5392
Ja, funktioniert einwandfrei!
Wenn man die Effizienz allerdings ins Maximum treiben wollte, könnte man die Funktion noch etwas kürzen:
function isNoun pWort set the caseSensitive to true return the first char of pWort is in "ABCDEFGHIJKLMNOPQRSTUVWXYZ" end isNoun
(Die Abfrage von empty ist nicht wirklich nötig, und man könnte sich auch die Booleschen Variablen sparen.)
Viele Grüße
Hauke
-
April 20, 2018 um 14:30 Uhr #5411
Cool, bau ich sofort ein!
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.