cheops: Phrasen erkennen

Hallo zusammen,

ich würde gerne in einem umfangreichen Text existierende Phrasen erkennen. Am Ende soll es Richtung Keyword-Density gehen, was auf Basis von einzelnen Wörtern ja noch einfach ist... aber was ist bei Begriffen, die aus 2 oder mehr Begriffen bestehen?

Angenommen ich habe einen Text von einem Gärtner und dort kommt immer wieder der Begriff "grüne Tomaten" vor, dann will ich diese Kombination an sicht betrachten und nicht die Dichte für "grüne" und "Tomaten" ermitteln... sondern halt für "grüne Tomaten".....

Hat jemand einen programmatischen Ansatz, wie man das am besten lösen kann? Mir schwebt spontan nur ein recht "teurer" Algorithmus mit zahlreichen Rekursionen ein, aber da muss es was besseres geben....

Danke & Gruß
Marcus

  1. Du willst die Phrasen also am jeweiligen Text erkennen und nicht aus einer vorgefertigten Liste holen.
    Da hast du das Problem, dass du auch einige zusammenhanglose Paare findest, wo Wörter oft hintereinander stehen, aber nicht wirklich nur so zusammengehören.

    Du könntest den Text erst mal durchlaufen und Wortketten bilden, für die du bist zu einer bestimmten Länge (z.B. 10 Wörter) die Häufigkeit zählst.
    Also für den Text A B C D E F G usw....
    A kommt 10 mal vor (im ganzen Text)
    A-B kommt 3 mal vor
    A-B-C kommt 1 mal vor
    A-B-C-D kommt 1 mal vor
    A-B-C-D-E 1 mal...
    bis zur Maximallänge
    Dann
    B kommt 5 mal vor
    B-C 2 mal
    ...

    Dann musst du anhand der Zähler rausfinden was eine Phrase ist und was nicht.
    Dann nochmal den Text nochmal durchlaufen und pro Wort schauen ob das Wort Teil einer Phrase ist oder einzeln zählt.

    Beide Durchläufe sind natürlich schon rekursiv, aber ich denke anders gehts kaum und die Phrasenlänge wird ja relativ niedrig sein, nur wenige Wörter?
    Ein Ersatz für die Rekursion könnte nur dann klappen wenn du denn Text zur Suche mehrmals durchläufst. Aber ob du ihn 5 mal durchläufst und dafür nur immer 1 Wort anschaust, oder einmal und dafür pro Wort 5 weitere Wörter anschaust, das reißts sicher auch nicht raus.

  2. Hallo,

    ich würde gerne in einem umfangreichen Text existierende Phrasen erkennen. Am Ende soll es Richtung Keyword-Density gehen, was auf Basis von einzelnen Wörtern ja noch einfach ist... aber was ist bei Begriffen, die aus 2 oder mehr Begriffen bestehen?

    spannende Aufgabenstellung. :-)

    So ganz genau weiß ich auch noch nicht, wie ich das anstellen würde. Aber mal ins Unreine gedacht: Wenn du eine Liste der Worthäufigkeit aufstellst, speichere doch zu jedem Wort zusätzlich das vorangehende und das nachfolgende Wort. Dann stellst du bei der Auswertung fest:
    Das Wort "Tomaten" kommt 26mal im Text vor, bei 19 Vorkommen ist das vorangehende Wort "grüne". Also hast du 19mal die Phrase "grüne Tomaten".

    Gut, das ist noch nicht ausgereift, könnte aber mal als Anregung taugen ...

    Ciao,
     Martin

    --
    Der Klügere gibt solange nach, bis er der Dumme ist.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
  3. Hallo,

    habe mich auch mit dem Thema beschäftigt.
    Ich kann
    http://wortschatz.uni-leipzig.de/
    empfehlen, weil sie auch eine Programmierschnittstelle anbieten. Kann man u.A. mit PHP, Java oder Perl abfragen.
    Bieten unter anderem Häufigkeiten, Synonyme und auch Phrasen an.

    Gruß, notreg