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 | 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é |
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 |
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
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.
Extrayez tous les fichiers multimédias référencés dans l'article.
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
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))
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))
(?:File|Fichier)
de|
Est le symbole ou.
Cette fois, cela signifie "s'il s'agissait d'un" Fichier "ou d'un" Fichier "".
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