kostenloser Webspace werbefrei: lima-city


String auf Stichwörter aus Datenbank untersuchen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    h***********r

    Hallo,
    ich war gerade am überlegen, wie man am besten per PhP und mysql, Benutzereingaben interpretieren kann.
    Das hätte ich mir so in etwa vorgestellt:
    Benutzer gibt einen Satz etc ein. Nun werden sämtliche Stichwörter aus Spalte (z.Bsp stichwort1) mit dem String abgeglichen welche vorkommen. Die IDs der Treffer (also wenn es vor kommt), werden abgespeichert in einem Array.
    Der ganze Prozess geschieht weitere 4x mit weiteren Stichwörtern aus weiteren Spalten. Nun haben wir 5 Arrays mit 0-n IDs. Jetzt sortiert man die ID die am meisten vorkommt herraus um dann mit der weiter zu arbeiten. Sollten alle IDs nur einmal vorkommen wird nun der ganze String mit jedem Beispiel String des Datensatz zu den IDs abgeglichen um den dann zu wählen welcher sich am meisten ähnelt.

    Langes Gerede von mir, wie untersuche ich am besten einen String auf ein Stichwort?

    Man könnte hier sicher mit Str replace arbeiten und kucken ob etwas geändert wurde, aber so ganz schön ist das nicht, Vorallem wenn es dann um die Ähnlichkeit der Stichwörter und nicht nur mehr um die Stichwörter selbst geht.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. fussballturnier

    fussballturnier hat kostenlosen Webspace.

    Bin grad im Urlaub, aber würde dir da nicht vllt Instr() helfen


    https://www.w3resource.com/mysql/string-functions/mysql-instr-function.php
    Damit könntest du in mysql die strings überprüfen ob sie in der spalte vorkommen. Den rest müsste man nach ersten Überlegungen von mir mit php Logik bauen können.
  4. Autor dieses Themas

    h***********r

    Danke dafür :)
    Was Instr() noch gleich mit MySQL zu tun hat sehe ich nicht so ganz, sieht eher so aus wie ein strpos() von php. Wäre interessant da einen Geschwindigkeitsunterschied zu sehen, vermute das SQL da deutlich langsamer ist, da für jede Anfrage einen neue Query benutzt wird.

    Beitrag zuletzt geändert: 22.10.2017 16:36:36 von horstexplorer
  5. irgendwie steh ich grad aufm Schlauch!
    Ich verstehe nicht wirklich, was du hier möchtest!

    also mit "explode() " kannst du den Strin g erst mal zerlegen, wenn es ein Satz ist, dann reichen die Leerzeichen aus als Abgrenzung.

    Jetzt kannst du aus dem erzeugten Array alle Wörter mit den Stichwörtern vergleichen und deine Statistik bearbeiten.

    Jetzt ist natürlich die Frage, willst du deine Stichwörter auch interpretieren lassen, wenn diese Teile von Wörtern sind?

    Nur mal als Beispiel:

    Stichwort: Wette
    Wort: Wetter

    also gibt es einen Treffer.

    Jetzt stellt sich mir aber nach wie vor die Frage, was bezweckt wird!
  6. Autor dieses Themas

    h***********r

    Im allgemeinen geht es darum die Bedeutung eines eingegebenen Satzes zu erkennen und dann eine sinnvolle Antwort zu geben. Also z.bsp
    Ich habe ein Problem mit Software XYZ --> Problem, XYZ --> Antwort mit Link zu Hilfeseite von Software XYZ
    Oder so ähnlich wäre das Einsatzgebiet von dem was ich versuchen will zu bauen.
  7. ah, jetzt nähern wir uns dem Thema ein wenig.
    Wird aber trotzdem nicht leicht! Wenn du die Bedeutung erkennen willst, reicht es nicht aus, einfach nur Wörter zu suchen und zu vergleichen, sondern du must auch Kombinationen von Wörtern erkennen. Das geht eher in ein linguistisches Problem und einer Erkennung der Grammatik einher.
  8. Du beschreibst mehr oder weniger eine Natural Language Search Engine.

    Stichwort: Natural Language Processing

    Der gesamte NLP Fachbereich ist nicht wirklich Anfängerfreundlich und von Deinen anderen Beiträgen gehe ich davon aus dass Du noch nicht lange mit PHP und/oder anderen Sprachen arbeitest. In anderen Worten du solltest Dich erst einmal mit simpleren Problemen befassen, statt direkt mit einem Bereich anzufangen denen selbst weit fortgeschrittenen Programmierern Kopfschmerzen bereiten.
  9. Autor dieses Themas

    h***********r

    Das ist gut zu wissen, das es nicht einfach ist und es eher nichts wird. Ich probiere es trotzdem, man kann ja dabei nur lernen selbst wenn es nichts wird :)

    Habe da ein paar coole Sachen gefunden die mir da schon sehr helfen wie z.bsp preg_match und similar_text Mal sehen was sich da machen lässt.

    Allerdings komme ich aufgrund des schlechten Internets hier nicht darauf, wie ich ein Array nach Anzahl der gleichen Werte sortieren kann. Also so z.bsp habe ich (1,3,2,2,1,1,3,4,1,2) zu (1,1,1,1,2,2,2,3,3,4) und als Rückgabewert 1 erhalte.
    Habt ihr da eine Idee?
  10. in php: asort()

    also ganz einfach.

  11. Autor dieses Themas

    h***********r

    Irgendwie blicke ich es nicht ganz. Asort scheint zu machen was es will, Sort und arsort auch.
    Habe es mit sort_numeric, sort_regular und sort_natural probiert, komme aber nicht auf das gewünschte Ergebnis der Sortierung nach Anzahl gleicher Einträge.
    Array_count_values ist schon fast richtig. Leider brauche ich die ID um eine Anzahl zu bekommen und nicht einen Maximalwert und die ID zu bekommen
    //Edit

    Habe noch woanders gefragt, so geht es :)
    $array = array(1,1,1,1,1,2,2,3,3,3,4,5,5,5);
    
    $result = array_count_values($array);
    
    $id = array_search(max($result), $result);
    
    print_r($id);


    Beitrag zuletzt geändert: 24.10.2017 20:07:37 von horstexplorer
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!