2010-01-09 6 views
6

Est-ce que vous savez où je peux trouver un schéma de conception d'analyseur de moteur de recherche? J'ai besoin de comprendre comment il traite les entrées de l'utilisateur. Quelles fonctions/algorithmes sont utilisés? conditions.Schéma d'analyse du parseur du moteur de recherche

Il ne doit pas nécessairement s'agir de Google.

question mise à jour à la recherche analyseur moteur

Répondre

6

Vous avez besoin d'une meilleure compréhension des moteurs de recherche en premier. Il ya normalement

1) un robot d'indexation Web, quelque chose qui obtient les documents que vous voulez ajouter à votre espace de données de recherche. Ceci est généralement totalement hors de portée de ce que vous appelez "moteur de recherche". 2) un analyseur qui prend le document et le scinde en fragments de texte indexables. Si cela fonctionne généralement avec différents formats de fichiers, les langages humains et le prétraitement du texte peut-être dans certains enregistrements fixes et le flux de texte. Les algorithmes linguistiques (comme stemmers - recherche de Porter Stemmer pour obtenir simple) sont également appliqués ici.

3) Un indexeur qui peut être aussi simple qu'une liste inversée de mots par document ou aussi complexe que vous voulez si vous essayez d'être aussi intelligent que google. Construire un index est la partie la plus magique d'un moteur de recherche réussi. Habituellement, il existe plusieurs algorithmes de classement qui sont mis ensemble.

4) Le frontal avec un langage de requête optionnel. C'est là que google est vraiment mauvais, mais comme vous pouvez le voir sur le succès des googles, il pourrait ne pas être si important pour 98% des gens. Mais ça me manque vraiment.

Je pense que vous demandez (3) l'indexeur. Fondamentalement, il existe 2 types différents d'algorithmes que vous trouvez dans la littérature classique de recherche d'information. Modèle d'espace vectoriel et recherche booléenne. Ce dernier est facile, il suffit de vérifier si les mots de recherche sont à l'intérieur du document et de renvoyer une valeur booléenne. Chaque terme de recherche peut recevoir une probabilité pertinente. Et pour différents termes de recherche, vous pouvez utiliser la probabilité bayésienne pour résumer la pertinence et ajouter les documents les mieux classés. Le modèle vectoriel traite un document comme un vecteur de tous ses mots, vous pouvez construire un produit vectoriel scalaire entre des documents pour juger s'ils sont proches les uns des autres - c'est une thèse beaucoup plus complexe. Le père de IR (information retrieval) était Gerald Salton, vous trouverez beaucoup de littérature sous son nom.

C'était l'état de l'art IR jusqu'en 1999 (j'ai écrit ma thèse de diplôme sur un moteur de recherche de nouvelles Usenet en 1998). Puis google est venu et toute la théorie est entrée dans la poubelle de la stupidité académique et irrelevanz pratical.

Google n'a pas été construit sur la théorie traditionnelle de l'IR. Lisez le lien que Srirangan vous a donné à ce sujet. C'est juste une fonction pertinente de construire sur de nombreuses sources différentes. Vous ne trouverez rien dans ce domaine à côté de blablabla marketing blanc. Ces algorithmes sont le secret d'affaires et le capital des sociétés de moteurs de recherche. Pour les moteurs de recherche simples, regardez la bibliothèque lucence ou dtsearch qui a toujours été mon choix pour une bibliothèque de moteur de recherche intégrable.

Il n'y a pas vraiment beaucoup d'exemples de code ni d'informations disponibles dans le monde open source sur la technologie IR. La plupart d'entre eux comme Lucense mettent en œuvre les opérations les plus primitives.Vous devez acheter des livres et aller à une bibliothèque universitaire pour avoir accès à la littérature de recherche.

Comme la littérature, je recommanderais à commencer par ce livre link text alt text http://ecx.images-amazon.com/images/I/41HKJYHTQDL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU01_.jpg

+0

@Lothar Merci pour la réponse très détaillée. Connaissez-vous de bons articles ou des livres sur les parseurs? En quoi le texte d'analyse diffère-t-il d'un compilateur analysant un langage de programmation? – forme

+0

Ok, si vous voulez vraiment le traitement linguistique du langage naturel, vous devriez lire "http://www.amazon.com/Natural-Language-Processing-Python-Steve/dp/0596516495/ref=cm_cr_pr_sims_t" et/ou le livre "Text Processing" en Python ". Cela vous donnera assez de compréhension de base pour trouver les termes de recherche corrects pour google ou bing plus de littérature. Malheureusement, les choses les plus intéressantes ne sont pas disponibles en ligne. – Lothar

+0

Im curieux maintenant :) (aller à la bibliothèque de l'université locale ...) – forme