Announcement

Collapse
No announcement yet.

Sortieren von Schlüsselwörtern nach deren Häufigkeit

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Sortieren von Schlüsselwörtern nach deren Häufigkeit

    In meiner Tabelle sind Schlüsselwörter, die aus PDF Dateien generiert wurden.

    Jetzt möchte ich zu jeder PDF Datei (je ca. 1000 unterschiedliche Wörter) die wichtigsten (100 oder so) Schlüsselwörter finden und natürlich die ganzen "der", "die", "das", "und" etc. entfernen. Nach meiner Theorie sind die Schlüsselwörter in einem PDF die wichtigsten oder "bezeichnendsten", die in der Gesamtheit der Wörter am seltensten auftauchen (die ganzen Artikel und Pronomen fliegen dabei natürlich mit raus).

    Ich brauche also eine Query wie (ins Blaue geschrieben):

    SELECT word FROM keywords WHERE pdf_id = <my_pdf_id> ORDER BY (SELECT COUNT(word) FROM keywords)

    Danke für die Hilfe

  • #2
    Im SQL Server

    [HIGHLIGHT=SQL]select TOP 100 word
    from keywords
    group by word
    order by count(*) [/HIGHLIGHT]

    Edit : den desc im order by rausgeworfen du wolltest ja die seltensten Wörter

    Comment


    • #3
      Danke, aber ich fürchte du hast meine Anforderung falsch verstanden.

      Ich bekomme für eine bestimmte PDF z.B. die Wörter "der", "die", "das", "Auto", "Haus" und "Flux Kompensator" zurück (alle nur einmal).

      In der gesamten Tabelle taucht aber 1811 mal "der", 1234 mal "die", 1178 mal "das", 497 mal "Auto", 25 mal "Haus" und 2 mal "Flux Kompensator" auf. Nach dieser Anzahl möchte ich das erste Ergebnis sortieren (nach der Theorie, dass "Flux Kompensator" ein wichtigeres Keyword für die Datei ist als "der").
      Zuletzt editiert von Kukulcan; 16.07.2014, 16:05.

      Comment


      • #4
        Aus "deprecated" verschoben
        Christian

        Comment


        • #5
          Vielleicht hab ichs diesmal besser verstanden.

          [HIGHLIGHT=SQL]
          SELECT k1.word
          FROM keywords k1
          INNER JOIN (SELECT word, count(*) as Anz
          FROM keywords
          GROUP BY word) k2 on k1.word = k2.word
          WHERE k1.pdf_id = <my_pdf_id>
          ORDER BY k2.Anz[/HIGHLIGHT]

          Comment


          • #6
            Danke schon mal, komme leider erst morgen dazu es zu testen

            Originally posted by Ralf Jansen View Post
            Vielleicht hab ichs diesmal besser verstanden.

            [HIGHLIGHT=SQL]
            SELECT k1.word
            FROM keywords k1
            INNER JOIN (SELECT word, count(*) as Anz
            FROM keywords
            GROUP BY word) k2 on k1.word = k2.word
            WHERE k1.pdf_id = <my_pdf_id>
            ORDER BY k2.Anz[/HIGHLIGHT]

            Comment


            • #7
              Super, klappt technisch einwandfrei. Auch die Hoffnung, relevante Begriffe weit oben zu haben, wird ziemlich gut erfüllt. Leider finden sich weit oben auch alle Rechtschreibfehler

              Comment


              • #8
                Nach zweiter Überlegung.
                Währen diejenigen Wörter nicht gute Schlüsselworte die im Dokument häufig sind im Gesamtwortschatz aber nicht anstatt einfach seltene Wörter?

                [Highlight=SQL]
                SELECT DISTINCT k1.word, LokalAnz / GlobalAnz as Quality
                FROM keywords k1
                INNER JOIN (SELECT word, cast(COUNT(*) as float) AS GlobalAnz
                FROM keywords
                GROUP BY word) k2 ON k1.word = k2.word
                INNER JOIN (SELECT word, cast(COUNT(*) as float) AS LokalAnz
                FROM keywords
                WHERE pdf_id = 1
                GROUP BY word) k3 ON k1.word = k3.word
                WHERE k1.pdf_id = 1
                ORDER BY 2 desc[/Highlight]
                Zuletzt editiert von Ralf Jansen; 18.07.2014, 17:17.

                Comment


                • #9
                  Originally posted by Ralf Jansen View Post
                  Nach zweiter Überlegung.
                  Währen diejenigen Wörter nicht gute Schlüsselworte die im Dokument häufig sind im Gesamtwortschatz aber nicht anstatt einfach seltene Wörter?
                  Super Einsatz, vielen Dank. Allerdings liegen die Daten schon so vor, dass jedes Wort nur einmal vorhanden ist. Und ich möchte die PDFs nicht bei jedem Zugriff neu parsen.

                  Comment

                  Working...
                  X