Creation d'un Moteur de Recherche Intelligent pour Wikipedia

comment cree un moteur de recherche intelligent pour wikipedia

a marqué ce sujet comme résolu.

Bonjour, je suis élève ingénieur et je me suis lancé dans la création d’un moteur de recherche qui indexera les pages web de Wikipédia. Actuellement, je suis en phase d’apprentissage, je dévore tous les tutos qui ont trait au sujet, notamment l’API de Wikipédia, l’utilisation des NLP, la mise en place d’un système de scoring pour classer les articles, et surtout un moyen pour faire tourner mes scripts Python dans un serveur et toutes les problématiques liées aux bases de données. Voici le lien Github de mon projet :depot github

Je cherche de l’aide, des idées, des pistes à explorer. J’ai essayé d’expliquer autant que faire se peut ce que je compte faire dans mon fichier README. Actuellement, je suis bloqué sur un problème : je me suis rendu compte que je ne peux pas donner à l’API de Wikipédia des liens qui pointent vers Wikipédia. Du coup, mon idée de stocker tous les liens Wikipédia dans un fichier .txt puis de boucler là-dessus tombe à l’eau. Actuellement, je penche sur une solution qui consiste à récupérer dans un fichier JSON le lien et le titre de tous les articles Wikipédia et appeler la fonction wikipedia.page(title). Mais là encore, je dois gérer le cas où cela renverrait plusieurs titres sous prétexte que la requête n’est pas assez discriminante. À ce problème, je suggère de parcourir toutes ces nouvelles pages puis de trouver leurs URL et voir si elles ne sont pas déjà indexées dans mon fichier JSON. Ce que je cherche, c’est surtout de nouvelles idées, des pistes à explorer. Je suis totalement ouvert aux critiques, tout est à revoir, et si quelqu’un peut m’apporter des éclaircissements sur des points, je suis preneur. Une dernière chose : je suis conscient que créer le site web avec R Shiny, ce n’est sans doute pas ce qui viendrait à l’esprit à tout dev. J’ai fait ce choix car c’est la techno la plus accessible pour un data scientist.

Salut,

J’ai l’impression que tu y gagnerais à structurer un peu ta démarche. Tu as différents problèmes essentiellement indépendants :

  1. la récupération des données de Wikipédia,
  2. l’analyse/indexation de ces données,
  3. la gestion de scores ou autres pour ordonner les résultats de recherche,
  4. l’interface utilisateur pour la recherche.

Pour le premier point qui semble te poser problème, il y a des dumps avec les données qui t’intéressent. Il y a d'autres techniques pour récupérer la liste des pages. Collecter récursivement avec un crawler peut marcher également, mais ça ne sera probablement pas très efficace par rapport à un dump.

Une fois que tu as tes données, tu en fais ce que tu veux (dans le respect de leur licence évidemment :D).

Salut,

J’ai l’impression que tu y gagnerais à structurer un peu ta démarche. Tu as différents problèmes essentiellement indépendants :

  1. la récupération des données de Wikipédia,
  2. l’analyse/indexation de ces données,
  3. la gestion de scores ou autres pour ordonner les résultats de recherche,
  4. l’interface utilisateur pour la recherche.

Bonjour et merci pour la réponse Oui, tout à fait, c’est exactement de cette manière que j’envisage le projet.

=========

Pour le premier point qui semble te poser problème, il y a des dumps avec les données qui t’intéressent. Il y a d'autres techniques pour récupérer la liste des pages. Collecter récursivement avec un crawler peut marcher également, mais ça ne sera probablement pas très efficace par rapport à un dump.

Une fois que tu as tes données, tu en fais ce que tu veux (dans le respect de leur licence évidemment :D).

Aabu

Les dumps ! Je ne connaissais pas, merci pour ce cheat code ! :waw: Je vais lire la doc, à première vue, ça a l’air super simple et ça évite tous les problèmes que j’avais mentionnés. Merci !

J’allais dire d’utiliser des SGBD au lieu de txt ou json pour structurer tes données et y accéder efficacement, mais à priori les dumps vont te pousser à t’y frotter.

D’autre part, je me demandais pourquoi tu t’intéressait au NLP ? Je suppose que c’est pour faire du Fuzzy finding ?

+1 -0

@romantik oui, je comptais utiliser du JSON, mais uniquement pour stocker les liens et les titres des pages. Le reste sera géré par un SGBD. Les dumps, c’est la vie ! 😄

D’autre part, je me demandais pourquoi tu t’intéressait au NLP ? Je suppose que c’est pour faire du Fuzzy finding ?

[romantik]

L’idée est de permettre à l’utilisateur de poser des questions comme : 'Quel est un animal très rapide qui vit en Afrique ?' Mon moteur de recherche tenterait alors de deviner l’intention derrière la requête et de rechercher le vecteur le plus pertinent pour y répondre.

Quant au système de scoring, je pense qu’il évoluera avec le temps. Je suis en train de réfléchir à la manière d’implémenter une méthode inspirée du PageRank de Google, qui permettrait d’ajouter une variable basée sur la pertinence des résultats. Cela pourrait inclure des éléments comme le nombre de liens pointant vers une page ou même des retours d’utilisateurs pour ajuster le scoring en fonction de leur satisfaction. Je pense aussi à intégrer un système de feedback pour que les utilisateurs puissent évaluer la pertinence des résultats. Cela nous aiderait à affiner notre algorithme et à améliorer l’expérience utilisateur au fil du temps. En gros, je veux créer un moteur qui non seulement répond aux requêtes, mais qui apprend et s’adapte à la manière dont les gens recherchent et interagissent avec le contenu :-°

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte