Derzeit baue ich eine kleine interne Suchmaschine auf der Basis von Apache Lucene. Sein Zweck ist einfach - basierend auf einigen Stichwörtern werden einige Artikel vorgeschlagen, die intern in unserem Unternehmen verfasst wurden. Ich verwende ein ziemlich standardmäßiges TF-IDF-Scoring als Basismetrik und baue darauf meinen eigenen Scoring-Mechanismus auf. Alle scheinen hervorragend zu funktionieren, mit Ausnahme einiger Eckfälle, in denen das Ranking durcheinander zu sein scheint.
Ich plane, der Suchergebnisseite einen kleinen Link "Relevant / Nicht relevant" hinzuzufügen, damit Benutzer auf einen dieser Links klicken können, je nachdem, wie sie davon ausgehen, ob dieses Ergebnis überhaupt hätte enthalten sein sollen.
Meine Idee
- Behandeln Sie diese Relevanten / Nicht Relevanten als Labels und erstellen Sie Trainingsdaten.
- Verwenden Sie diese Daten, um einen Klassifikator (wie SVM) zu trainieren.
- Integrieren Sie dieses Modell in die Suchmaschine, dh jedes neue Ergebnis durchläuft den Klassifikator und erhält eine Kennzeichnung, ob es relevant ist oder nicht.
Dieser Ansatz erscheint mir intuitiv, aber ich bin nicht sicher, ob er in der Praxis funktionieren wird. Ich habe zwei spezifische Fragen:
- Was für alle Funktionen sollte ich extrahieren?
- Gibt es eine bessere Möglichkeit, die Komponente für maschinelles Lernen in die Suchmaschine zu integrieren? Mein letztes Ziel ist es, die Ranking-Funktion zu "erlernen", die sowohl auf der Geschäftslogik als auch auf dem Feedback der Benutzer basiert.