Maison > développement back-end > Tutoriel Python > 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
Libérer: 2023-06-23 09:33:22
original
1886 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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}
Copier après la connexion

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
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal