2008-10-07 15 views
19

Bei der Entwicklung einer Datenbank von Artikeln in einer Knowledge Base (zum Beispiel) - Was sind die besten Möglichkeiten zum Sortieren und Anzeigen der relevantesten Antworten auf eine Frage des Benutzers?Suche Ranking/Relevanz Algorithmen

Würden Sie zusätzliche Daten wie Keyword-Gewichtung verwenden, je nachdem, ob vorherige Benutzer den Hilfeartikel gefunden haben, oder finden Sie einen einfachen Keyword-Matching-Algorithmus, der ausreicht?

Antwort

2

Das ist eine schwierige Frage, und Unternehmen wie Google drängen auf diese Frage. Schauen Sie sich Google Enterprise Search Appliance oder Exalead Enterprise Search an. Als persönliche Meinung glaube ich nicht, dass eine "naive" Herangehensweise das Ergebnis im Vergleich zur naiven Stichwortsuche und Ordnung durch die Anzahl der Ansichten auf den Dokumenten wesentlich verbessern wird.

Wenn Sie die Möglichkeit haben, Ihre Wissensdatenbank dem Web zugänglich zu machen, tun Sie es einfach und lassen Sie Ihre bevorzugte Suchmaschine die Suche nach Ihnen durchführen.

0

Keyword ist nicht genug, wenn sie mit Fragen zu tun, müssen Sie Absicht verstehen, wie joannes sagt, ein sehr heißes Thema auf der Suche

2

Etwas mehr Spezifität Ihres genauen Problems sei gut. Es gibt viele verschiedene Techniken, die Sie verwenden können. Viele davon werden von anderen Daten getrieben. Sie können natürlich Lucene verwenden und eigene Indizes erstellen. Es gibt Bindungen für viele Sprachen zu Lucene. Weiter geht es mit dem Solr Projekt, das Lucene ist, mit vielen Tools und zusätzlicher Funktionalität. Das kann mehr nach dem sein, wonach Sie suchen.

Absicht ist schwierig und die meisten modernen Suchmaschinen verlassen sich auf statistische Absicht, um bei der Reihenfolge der Ergebnisse zu helfen. Sie können immer einen nützlichen Knopf haben und den Abfragetext speichern, der zu nützlichen Dokumenten führt. Sie können dann dem Index eine Informationsschicht hinzufügen, um bestimmte Wörter oder Ausdrücke zu verstärken und sie auf bestimmte Dokumente verweisen zu lassen.

Einige Dinge zum Nachdenken ... Wie viele Dokumente? Was ist die durchschnittliche Länge? Werden sie häufig aktualisiert? Was machen Benutzer mit den Dokumenten? Wie sieht die Verbreitung von eindeutigen Wörtern in Dokumenten aus? (Einfacher ist es einfach, eine Abfrage mit einem bestimmten Dokument basierend auf gemeinsamen einzigartigen Funktionen zu vergleichen.)

Wenn es im Web ist, können Sie immer eine benutzerdefinierte Google-Suchmaschine, die nur Ihre Website obwohl Sie sucht kann dies aus verschiedenen Gründen als nicht optimal empfinden.

Sie können immer mit einem einfachen Index beginnen und ihn schrittweise verfeinern, indem Sie mit Benutzern sprechen und Daten erfassen.

10

Vielleicht ist der einfachste und naive Ansatz, der sofort nützliche Ergebnisse liefern würden *tf-idf zu implementieren:

Variationen des tf-idf Gewichtungsschemas wird häufig von Suchmaschinen als zentralen Werkzeug in Scoring verwendet und Ranking der Relevanz eines Dokuments bei einer Benutzeranfrage. tf-idf kann erfolgreich für die Stoppwortfilterung in verschiedenen Sachgebieten verwendet werden, einschließlich Textzusammenfassung und -klassifizierung.

In einer kürzlich damit verbundenen Frage von mir hier habe ich gelernt, von einem ausgezeichneten kostenlosen Buch zu diesem Thema, die Sie oder online lesen herunterladen können:

hier An Introduction to Information Retrieval

1

Ich denke, den Winkel ist nicht der Abruf selbst ... es geht darum, die Relevanz der abgerufenen Informationen zu bewerten (ein reaktiverer und passiverer Ansatz), der später zur Verbesserung der Suchmaschine verwendet werden kann.

ich Sie erraten versuchen können -

  1. knn auf TFIDF Informationen

  2. Hand Tagging diese abgerufenen Informationen eine relevency Abrufen punkten

  3. dann diese Punktzahl regredieren die Partitur für ein vorherzusagen Suchergebnis unknwon und sortieren Sie es.

Nur so ein Gedanke ...

Der dritte Punkt ist, auf Algorithmus Rocchio tatsächlich basiert. Sie können es sehen here