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
              Administrator

                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
                  Administrator

                    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.