Identifizierung von Hauptwörtern

Startseite Foren Deutsches LiveCode-Forum Identifizierung von Hauptwörtern

Schlagwörter: 

Ansicht von 7 Antwort-Themen
  • Autor
    Beiträge
    • #5357
      Torsten
      Teilnehmer

      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?

    • #5360
      gfz
      Teilnehmer

      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.

    • #5372
      pderks
      Teilnehmer

      Hallo Georg,

      zwischen zweiter und dritter Zeile empfehle ich
      set the caseSensitive to true

      Peter

    • #5374
      gfz
      Teilnehmer

      Danke Peter für den Hinweis – dachte mir schon dass es sowas geben könnte.

      @Torsten
      : Hilft dir das weiter bei deinem Problem? LG, Georg

    • #5378
      hauke
      Verwalter

      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…

    • #5390
      Torsten
      Teilnehmer

      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

    • #5392
      hauke
      Verwalter

      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

    • #5411
      Torsten
      Teilnehmer

      Cool, bau ich sofort ein!

Ansicht von 7 Antwort-Themen
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.