2009-06-05 8 views
2

J'ai mis en place une recherche de texte intégral dans une base de discussion et je souhaite afficher les résultats de la recherche de la même manière que Google. Même pour une très longue page html seulement deux ou trois lignes des textes affichés dans une liste de résultats de recherche. Habituellement, ce sont les lignes qui contiennent un terme de recherche.Extrait du petit texte pertinent (comme Google) des résultats de recherche en texte intégral

Quel serait le bon algorithme de la façon d'extraire quelques lignes du texte basé sur le texte lui-même et un terme de recherche. Je pourrais penser à quelque chose d'aussi simple que d'utiliser une ligne de texte avant l'occurrence du terme de recherche dans un texte et une ligne après - mais cela semble être trop simple à travailler.

Je voudrais obtenir quelques directions, des idées et des idées.

Merci.

+0

Balise de traitement du langage naturel (nlp) ajoutée –

Répondre

0

Avez-vous essayé la "ligne avant/après l'occurrence du terme de recherche" dans le code pour voir si pour cet investissement de codage simple les résultats sont assez bons pour ce que vous voulez? Cela pourrait déjà être suffisant?

Dans le cas contraire, vous pouvez opter pour des phrases: ne pas diviser sur des lignes, mais sur des retours à la ligne, des virgules, des virgules, des tirets espacés, etc. Ensuite, afficher les pièces contenant les termes recherchés. Vous pouvez séparer chaque phrase correspondante avec "..." ou quelque chose.

Si vous obtenez beaucoup de ces pièces, vous pouvez essayer de prioriser les pièces, trier par ordre décroissant de priorité et montrer seulement le premier n d'entre eux. Et/ou couper les pièces juste pour le terme de recherche et quelques mots autour du terme de recherche.

Juste quelques idées informelles qui pourraient vous aider à démarrer?

2

Si vous cherchez quelque chose de plus fantaisiste que l'approche «ligne avant/après», un synthétiseur pourrait faire l'affaire.

est ici un système Naive Bayes: http://classifier4j.sourceforge.net/

Bayes est le système statistique utilisé par de nombreux filtres anti-spam - je fait des recherches Bayes résumeurs quelques années, et a constaté qu'ils font un très bon travail de résumer le texte, comme tant qu'il y a une quantité décente de texte à traiter. Cependant, je n'ai pas essayé la bibliothèque ci-dessus, donc votre kilométrage peut varier.

0

Concentrez-vous sur le début du contenu. Pensez à où vous regarderiez lorsque vous visitez un blog. Le paragraphe début vous indique si l'article est dans la bonne direction. Donc, dans votre algorithme, il sera logique de refléter cela.

Vérifiez les occurrences du terme de recherche dans les en-têtes (H1, H2, etc.) et donnez-leur plus de priorité.

Cela devrait vous aider à démarrer.

Questions connexes