2009-06-05 5 views
2

Ich habe eine Volltextsuche in einer Diskussionsforum-Datenbank implementiert und ich möchte die Suchergebnisse in einer Weise anzeigen, wie Google tut. Selbst für eine sehr lange HTML-Seite werden nur zwei oder drei Zeilen der Texte in einer Suchergebnisliste angezeigt. Normalerweise sind dies die Zeilen , die einen Suchbegriff enthalten.Extrahieren Sie kleine relevante Bits Text (wie Google tut) aus den Volltextsuchergebnissen

Was wäre der gute Algorithmus, wie man einige Zeilen des Textes basierend auf dem Text selbst und einem Suchbegriff extrahiert. Ich könnte mir etwas vorstellen, das so einfach ist, wie nur eine Textzeile vor dem Suchbegriff in einem Text und einer Zeile danach zu verwenden - aber das scheint zu einfach zu funktionieren.

Möchten Sie ein paar Richtungen, Ideen und Einblicke erhalten.

Vielen Dank.

+0

Natural Language Processing-Tag (nlp) hinzugefügt –

Antwort

0

Haben Sie versucht, die Zeile "Vorher/Nachher Suchbegriff" im Code auszuprobieren, um zu sehen, ob die Ergebnisse für diese einfache Coding-Investition gut genug für das sind, was Sie wollen? Könnte schon genug sein?

Sonst könnten Sie nach Satzteilen gehen: also nicht in Zeilen teilen, sondern in Zeilenumbrüchen, Pausen, Kommas, Trennstrichen usw. Dann zeigen Sie die Teile, die die Suchbegriffe enthalten. Sie könnten jedes passende Satzstück mit "..." oder etwas trennen.

Wenn Sie viele dieser Teile erhalten, können Sie versuchen, die Teile zu priorisieren, nach absteigender Priorität sortieren und nur die ersten n davon anzeigen. Und/oder schneiden Sie die Stücke auf nur den Suchbegriff und ein paar Wörter um den Suchbegriff.

Nur ein paar informelle Ideen, die Sie vielleicht beginnen?

2

Wenn Sie nach etwas schickeren als die "Linie vorher/nachher" -Ansatz suchen, könnte ein Zusammenfasser den Trick machen.

Hier ist ein Naive Bayes-basiertes System: http://classifier4j.sourceforge.net/

Bayes ist das statistische System von vielen Spam-Filter verwendet - Ich recherchieren Bayes Summarizers ein paar Jahre zurück, und fand, dass sie eine ziemlich gute Arbeit der Zusammenfassung Text zu tun, wie solange es eine anständige Menge an Text zu verarbeiten gibt. Ich habe die oben genannte Bibliothek jedoch nicht wirklich ausprobiert, so dass Ihre Laufleistung variieren kann.

0

Konzentrieren Sie sich auf den Anfang des Inhalts. Denken Sie darüber nach, wo Sie aussehen würden, wenn Sie einen Blog besuchen. Der Anfang para sagt dir, ob der Artikel in die richtige Richtung ist. In Ihrem Algorithmus wird es also sinnvoll sein, dies zu reflektieren.

Suchen Sie nach Vorkommen des Suchbegriffs in Überschriften (H1, H2 usw.) und geben Sie diesen Priorität.

Dies sollte Ihnen den Anfang machen.

Verwandte Themen