[PYTHON] 100 langage traitement knock-24: Extraire la référence du fichier

Traitement du langage 100 coups 2015 ["Chapitre 3: Expressions régulières"](http: //www.cl.ecei.tohoku) Il s'agit de l'enregistrement de 24e "Extracting File Reference" de .ac.jp / nlp100 / # ch3). Cette fois, nous apprendrons ** ensemble de somme (ou) **. "Sum set (ou)" est très simple et facile à comprendre.

Lien de référence

Lien Remarques
024.Extraction de références de fichiers.ipynb Lien GitHub du programme de réponse
100 coups de traitement du langage amateur:24 Copiez et collez la source de nombreuses pièces source
Apprenez les bases et les astuces des expressions canoniques Python à partir de zéro J'ai organisé ce que j'ai appris dans ce coup
Expression régulière HOWTO Expression régulière officielle Python Comment faire
re ---Opération d'expression régulière Description officielle du paquet Python re
Help:Graphique simplifié Wikipediaの代表的なマークアップのGraphique simplifié

environnement

type version Contenu
OS Ubuntu18.04.01 LTS Il fonctionne virtuellement
pyenv 1.2.15 J'utilise pyenv car j'utilise parfois plusieurs environnements Python
Python 3.6.9 python3 sur pyenv.6.J'utilise 9
3.7 ou 3.Il n'y a aucune raison profonde de ne pas utiliser la série 8
Les packages sont gérés à l'aide de venv

Dans l'environnement ci-dessus, j'utilise les packages Python supplémentaires suivants. Installez simplement avec pip ordinaire.

type version
pandas 0.25.3

Chapitre 3: Expressions régulières

contenu de l'étude

En appliquant des expressions régulières à la description du balisage sur la page Wikipédia, diverses informations et connaissances peuvent être extraites.

Expressions régulières, JSON, Wikipedia, InfoBox, services web

Contenu frappé

Un fichier jawiki-country.json.gz qui exporte les articles Wikipédia au format suivant Il y a.

  • Une information d'article par ligne est stockée au format JSON --Dans chaque ligne, le nom de l'article est stocké dans la clé "title" et le corps de l'article est stocké dans l'objet dictionnaire avec la clé "text", et cet objet est écrit au format JSON. --Le fichier est entièrement compressé

Créez un programme qui effectue le traitement suivant.

24. Extraction des références de fichiers

Extrayez tous les fichiers multimédias référencés dans l'article.

Supplément au problème (à propos du "fichier")

Help:Graphique simplifiéSelon le "fichier" [[Fichier:Wikipedia-logo-v2-ja.png|thumb|Texte explicatif]]Le format. Extrayez le nom de fichier de la partie suivante avec une expression régulière.

Extrait de la partie "fichier" du fichier


|Image de l'emblème national= [[Fichier:Royal Coat of Arms of the United Kingdom.svg|85px|Emblème national britannique]]\n
[[File:Battle of Waterloo 1815.PNG|thumb|left|[[Bataille de Waterloo]]Par la victoire en[[Guerre de Napoléon]]A été mis fin,[[Pax Britannica]]L'ère de.]]\n
[[File:The British Empire.png|thumb|250px|[[Empire britannique]]Pays / régions avec une expérience sous règle. Courant[[Territoire britannique d'outre-mer]]Est souligné en rouge.]]\n

Répondre

Programme de réponse [024. Extraire le fichier reference.ipynb](https://github.com/YoheiFukuhara/nlp100/blob/master/03.%E6%AD%A3%E8%A6%8F%E8%A1%A8% E7% 8F% BE / 024.% E3% 83% 95% E3% 82% A1% E3% 82% A4% E3% 83% AB% E5% 8F% 82% E7% 85% A7% E3% 81% AE % E6% 8A% BD% E5% 87% BA.ipynb)

import re
from pprint import pprint

import pandas as pd

def extract_by_title(title):
    df_wiki = pd.read_json('jawiki-country.json', lines=True)
    return df_wiki[(df_wiki['title'] == title)]['text'].values[0]

wiki_body = extract_by_title('Angleterre')


#Ignorer la séquence d'échappement dans la chaîne brute lorsque r est au début
#Ignorer les pauses au milieu avec des guillemets triples
# re.Ignorer les espaces et les commentaires à l'aide de l'option VERBOSE
#Recherchez des chaînes courtes en en faisant une correspondance non gourmande
pprint(re.findall(r'''
                  (?:File|Fichier)   #Non capturé'File'Ou'Fichier'
                  :                  #Non-capture
                  (.+?)              #Capture cible, un ou plusieurs caractères arbitraires, non gourmand
                  \|                 #Non capturé|Échapper
                  ''', wiki_body, re.VERBOSE))

Répondre au commentaire

La partie principale de ce temps est la partie suivante.

python


pprint(re.findall(r'''
                  (?:File|Fichier)   #Non capturé'File'Ou'Fichier'
                  :                  #Non-capture
                  (.+?)              #Capture cible, un ou plusieurs caractères arbitraires, non gourmand
                  \|                 #Non capturé|Échapper
                  ''', wiki_body, re.VERBOSE))

Ensemble de somme (ou)

(?:File|Fichier)de|Est le symbole ou. Cette fois, cela signifie "s'il s'agissait d'un" Fichier "ou d'un" Fichier "".

Résultat de sortie (résultat de l'exécution)

Lorsque le programme est exécuté, les résultats suivants sont affichés.

Résultat de sortie


['Royal Coat of Arms of the United Kingdom.svg',
 'Battle of Waterloo 1815.PNG',
 'The British Empire.png',
 'Uk topo en.jpg',
 'BenNevis2005.jpg',
 'Elizabeth II greets NASA GSFC employees, May 8, 2007 edit.jpg',
 'Palace of Westminster, London - Feb 2007.jpg',
 'David Cameron and Barack Obama at the G20 Summit in Toronto.jpg',
 'Soldiers Trooping the Colour, 16th June 2007.jpg',
 'Scotland Parliament Holyrood.jpg',
 'London.bankofengland.arp.jpg',
 'City of London skyline from London City Hall - Oct 2008.jpg',
 'Oil platform in the North SeaPros.jpg',
 'Eurostar at St Pancras Jan 2008.jpg',
 'Heathrow T5.jpg',
 'Anglospeak.svg',
 'CHANDOS3.jpg',
 'The Fabs.JPG',
 'PalaceOfWestminsterAtNight.jpg',
 'Westminster Abbey - West Door.jpg',
 'Edinburgh Cockburn St dsc06789.jpg',
 'Canterbury Cathedral - Portal Nave Cross-spire.jpeg',
 'Kew Gardens Palm House, London - July 2009.jpg',
 '2005-06-27 - United Kingdom - England - London - Greenwich.jpg',
 'Stonehenge2007 07 30.jpg',
 'Yard2.jpg',
 'Durham Kathedrale Nahaufnahme.jpg',
 'Roman Baths in Bath Spa, England - July 2006.jpg',
 'Fountains Abbey view02 2005-08-27.jpg',
 'Blenheim Palace IMG 3673.JPG',
 'Liverpool Pier Head by night.jpg',
 "Hadrian's Wall view near Greenhead.jpg ",
 'London Tower (1).JPG',
 'Wembley Stadium, illuminated.jpg']

Recommended Posts

100 langage traitement knock-24: Extraire la référence du fichier
100 coups de traitement linguistique (2020): 28
100 coups de traitement linguistique (2020): 38
100 traitement de la langue frapper 00 ~ 02
100 traitements linguistiques Knock 2020 [00 ~ 39 réponse]
100 langues de traitement knock 2020 [00-79 réponse]
100 Language Processing Knock 2020 Chapitre 1
100 coups de traitement du langage amateur: 17
100 traitements linguistiques Knock 2020 [00 ~ 49 réponse]
100 Traitement du langage Knock-52: Stemming
100 Traitement du langage Knock Chapitre 1
100 coups de langue amateur: 07
100 Language Processing Knock 2020 Chapitre 3
100 Language Processing Knock 2020 Chapitre 2
100 coups de traitement du langage amateur: 09
100 coups en traitement du langage amateur: 47
Traitement 100 langues knock-53: Tokenisation
100 coups de traitement du langage amateur: 97
100 traitements linguistiques Knock 2020 [00 ~ 59 réponse]
100 coups de traitement du langage amateur: 67
100 coups de traitement du langage avec Python 2015
100 traitement du langage Knock-51: découpage de mots
100 Language Processing Knock-58: Extraction de Taple
100 Language Processing Knock-57: Analyse des dépendances
100 traitement linguistique knock-50: coupure de phrase
100 Language Processing Knock Chapitre 1 (Python)
100 Language Processing Knock Chapitre 2 (Python)
100 Language Processing Knock-25: Extraction de modèles
J'ai essayé 100 traitements linguistiques Knock 2020
100 Language Processing Knock-56: analyse de co-référence
Résolution de 100 traitements linguistiques Knock 2020 (01. "Patatokukashi")
100 coups de traitement du langage amateur: Résumé
100 Language Processing Knock 2020 Chapitre 2: Commandes UNIX
100 Language Processing Knock 2015 Chapitre 5 Analyse des dépendances (40-49)
100 traitements de langage avec Python
100 Language Processing Knock Chapitre 1 en Python
100 Language Processing Knock 2020 Chapitre 4: Analyse morphologique
100 Language Processing Knock 2020 Chapitre 9: RNN, CNN
100 traitement du langage knock-76 (en utilisant scicit-learn): étiquetage
100 Language Processing Knock-55: extraction d'expressions uniques
J'ai essayé 100 traitements linguistiques Knock 2020: Chapitre 3
100 Language Processing Knock-82 (mot de contexte): Extraction de contexte
100 traitements de langage avec Python (chapitre 3)
100 Language Processing Knock: Chapitre 1 Mouvement préparatoire
100 Language Processing Knock 2020 Chapitre 6: Apprentissage automatique
Traitement du langage 100 knock-86: affichage vectoriel Word
100 Language Processing Knock 2020 Chapitre 10: Traduction automatique (90-98)
100 Language Processing Knock 2020 Chapitre 5: Analyse des dépendances
100 Language Processing Knock-28: Suppression du balisage MediaWiki
100 Traitement du langage Knock 2020 Chapitre 7: Vecteur de mots
100 Language Processing Knock 2020 Chapitre 8: Neural Net
100 traitement du langage knock-59: analyse de la formule S
Le débutant en Python a essayé 100 traitements de langage Knock 2015 (05 ~ 09)
100 langues de traitement frappent 2020 "pour Google Colaboratory"
J'ai essayé 100 traitements linguistiques Knock 2020: Chapitre 1
100 Language Processing Knock 2020 Chapitre 1: Mouvement préparatoire
100 traitement du langage knock-73 (en utilisant scikit-learn): apprentissage
100 Language Processing Knock 2020 Chapitre 3: Expressions régulières
100 Language Processing Knock 2015 Chapitre 4 Analyse morphologique (30-39)
100 traitement du langage knock-74 (en utilisant scicit-learn): prédiction
J'ai essayé 100 traitements linguistiques Knock 2020: Chapitre 2