Maison  >  Article  >  développement back-end  >  Analyser les données papier dans le domaine du Deep Learning via le robot Scrapy

Analyser les données papier dans le domaine du Deep Learning via le robot Scrapy

WBOY
WBOYoriginal
2023-06-23 09:33:221807parcourir

L'apprentissage profond est l'une des directions de recherche les plus populaires et les plus avant-gardistes dans le domaine de l'intelligence artificielle. Pour les universitaires et les praticiens engagés dans des recherches connexes, l’obtention d’ensembles de données est une condition préalable importante pour mener des recherches approfondies. Cependant, la plupart des articles de recherche de haute qualité sur le Deep Learning sont publiés dans le cadre de conférences universitaires internationales de premier plan (telles que NeurIPS, ICLR, ICML, etc.), et il est difficile d'obtenir ces articles. Par conséquent, cet article présentera comment utiliser la technologie d'exploration Scrapy pour explorer des données papier dans le domaine du Deep Learning.

Tout d'abord, nous devons déterminer le site Web cible à explorer. Actuellement, les sites Web les plus populaires qui gèrent les articles Deep Learning incluent arXiv et OpenReview. Dans cet article, nous choisissons d'explorer les données arXiv. arXiv est un site Web qui gère des articles scientifiques, notamment des articles dans de nombreux domaines, notamment des articles dans le domaine du Deep Learning. Dans le même temps, le site Web arXiv fournit également une interface API pratique, permettant à notre programme d'exploration d'obtenir facilement des données papier.

Ensuite, nous pouvons commencer à écrire le programme du robot Scrapy. Tout d'abord, entrez la commande suivante dans le terminal pour créer un projet Scrapy :

scrapy startproject deep_learning_papers

Après la création, entrez dans le répertoire du projet et créez un Spider :

cd deep_learning_papers
scrapy genspider arXiv_spider arxiv.org

Ici, nous nommons le Spider "arXiv_spider" et spécifiez le site Web d'exploration comme arxiv.org. Après la création, ouvrez le fichier arXiv_spider.py, et nous pouvons voir le code suivant :

import scrapy


class ArxivSpiderSpider(scrapy.Spider):
    name = 'arXiv_spider'
    allowed_domains = ['arxiv.org']
    start_urls = ['http://arxiv.org/']

    def parse(self, response):
        pass

C'est le modèle Spider le plus simple. Nous devons écrire la méthode d'analyse en tant que fonction pour capturer les informations papier. Étant donné que les informations papier sont obtenues via l'interface API, nous devons envoyer une requête GET. Nous pouvons utiliser le module de requêtes en Python pour envoyer des requêtes. Ici nous écrivons une fonction pour envoyer une requête :

import requests

def get_papers_data(start, max_results):
    url = 'http://export.arxiv.org/api/query?search_query=all:deep+learning&start=' + str(start) + '&max_results=' + str(max_results)
    headers = {'Content-Type': 'application/json'}
    response = requests.get(url, headers=headers)
    return response.content

get_papers_data la fonction reçoit deux paramètres, à savoir la position de départ et le nombre maximum. Nous passons "all:deep+learning" au paramètre search_query afin que nous puissions obtenir toutes les informations papier dans le domaine du Deep Learning. Après avoir envoyé une requête GET à l'aide de requêtes, nous pouvons obtenir les données de réponse.content.

Dans la méthode parse, nous analysons les données renvoyées. Nous pouvons utiliser des expressions XPath pour obtenir rapidement du contenu. Le code spécifique est le suivant :

  def parse(self, response):
        for i in range(0, 50000, 100):
            papers = get_papers_data(i, 100)
            xml = etree.XML(papers)

            for element in xml.iter():
                if element.tag == 'title':
                    title = element.text
                elif element.tag == 'name':
                    name = element.text
                elif element.tag == 'abstract':
                    abstract = element.text

                yield {'title': title, 'name': name, 'abstract': abstract}

Ici, nous utilisons une opération en boucle jusqu'à 50 000 fois, en commençant par 0 et en augmentant de 100 à chaque fois jusqu'à ce que les informations de tous les articles Deep Learning soient obtenues. Ensuite, nous utilisons etree.XML pour analyser les données obtenues au format XML, puis lisons chaque élément un par un. Lorsque la balise de l'élément est « titre », « nom » ou « résumé », nous attribuons le contenu de l'élément à la variable correspondante et utilisons enfin rendement pour renvoyer le résultat de l'analyse.

Enfin, nous devons démarrer le programme d'exploration :

scrapy crawl arXiv_spider -o deep_learning_papers.csv

Le paramètre "-o" est utilisé ici pour spécifier le fichier de sortie, qui est par défaut au format JSON. Ici, nous choisissons le format CSV et le fichier de sortie s'appelle "deep_learning_papers.csv".

Grâce à la technologie Scrapy crawler, nous pouvons facilement obtenir des informations papier dans le domaine du Deep Learning. En combinant d’autres technologies de traitement de données, nous pouvons mener des recherches et des analyses plus approfondies sur ces données, favorisant ainsi le développement du domaine du Deep Learning.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn