Sprachverarbeitung 100 Schläge 2015 ["Kapitel 3: Reguläre Ausdrücke"](http: //www.cl.ecei.tohoku) Dies ist der Datensatz von 24. "Extracting File Reference" von .ac.jp / nlp100 / # ch3). Dieses Mal lernen wir ** Summensatz (oder) **. "Summensatz (oder)" ist sehr einfach und leicht zu verstehen.
Verknüpfung | Bemerkungen |
---|---|
024.Dateireferenzen extrahieren.ipynb | Antwortprogramm GitHub Link |
100 Klicks Amateur-Sprachverarbeitung:24 | Kopieren Sie die Quelle vieler Quellteile und fügen Sie sie ein |
Lernen Sie die Grundlagen und Tipps der kanonischen Python-Ausdrücke von Grund auf neu | Ich habe organisiert, was ich in diesem Klopfen gelernt habe |
Regulärer Ausdruck HOWTO | Python offizieller regulärer Ausdruck How To |
re ---Operation mit regulären Ausdrücken | Python offizielle Re-Paketbeschreibung |
Help:Vereinfachtes Diagramm | Wikipediaの代表的なマークアップのVereinfachtes Diagramm |
Art | Ausführung | Inhalt |
---|---|---|
OS | Ubuntu18.04.01 LTS | Es läuft virtuell |
pyenv | 1.2.15 | Ich benutze pyenv, weil ich manchmal mehrere Python-Umgebungen benutze |
Python | 3.6.9 | python3 auf pyenv.6.Ich benutze 9 3.7 oder 3.Es gibt keinen tiefen Grund, keine 8er-Serie zu verwenden Pakete werden mit venv verwaltet |
In der obigen Umgebung verwende ich die folgenden zusätzlichen Python-Pakete. Einfach mit normalem Pip installieren.
Art | Ausführung |
---|---|
pandas | 0.25.3 |
Verschiedene Informationen und Kenntnisse können extrahiert werden, indem reguläre Ausdrücke auf die Markup-Beschreibung auf der Wikipedia-Seite angewendet werden.
Reguläre Ausdrücke, JSON, Wikipedia, InfoBox, Webdienste
Eine Datei jawiki-country.json.gz, die Wikipedia-Artikel im folgenden Format exportiert Es gibt.
- Eine Artikelinformation pro Zeile wird im JSON-Format gespeichert
- In jeder Zeile wird der Artikelname im Schlüssel "title" und der Artikelkörper im Wörterbuchobjekt mit dem Schlüssel "text" gespeichert, und dieses Objekt wird im JSON-Format ausgeschrieben.
- Die gesamte Datei wird komprimiert
Erstellen Sie ein Programm, das die folgende Verarbeitung ausführt.
Extrahieren Sie alle Mediendateien, auf die aus dem Artikel verwiesen wird.
Help:Vereinfachtes DiagrammNach der "Datei" [[Datei:Wikipedia-logo-v2-ja.png|thumb|Erläuterungstext]]
Das Format.
Extrahieren Sie den Dateinamen des folgenden Teils mit einem regulären Ausdruck.
Auszug aus dem "Datei" -Teil der Datei
|Nationales Emblembild= [[Datei:Royal Coat of Arms of the United Kingdom.svg|85px|Britisches nationales Emblem]]\n
[[File:Battle of Waterloo 1815.PNG|thumb|left|[[Schlacht von Waterloo]]Durch den Sieg in[[Napoleon-Krieg]]Wurde beendet,[[Pax Britannica]]Die Ära von.]]\n
[[File:The British Empire.png|thumb|250px|[[Britisches Imperium]]Länder / Regionen mit Erfahrung in der Regel. Aktuell[[Britisches Überseegebiet]]Ist rot unterstrichen.]]\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('England')
#Ignorieren Sie die Escape-Sequenz in der Rohzeichenfolge, wenn r am Anfang steht
#Ignorieren Sie Pausen in der Mitte mit dreifachen Anführungszeichen
# re.Ignorieren Sie Leerzeichen und Kommentare mit der Option VERBOSE
#Suchen Sie nach kurzen Zeichenfolgen, indem Sie sie zu einem nicht gierigen Spiel machen
pprint(re.findall(r'''
(?:File|Datei) #Nicht erfasst'File'Oder'Datei'
: #Nicht erfassen
(.+?) #Ziel erfassen, ein oder mehrere beliebige Zeichen, nicht gierig
\| #Nicht erfasst|Flucht
''', wiki_body, re.VERBOSE))
Der Hauptteil dieser Zeit ist der folgende Teil.
python
pprint(re.findall(r'''
(?:File|Datei) #Nicht erfasst'File'Oder'Datei'
: #Nicht erfassen
(.+?) #Ziel erfassen, ein oder mehrere beliebige Zeichen, nicht gierig
\| #Nicht erfasst|Flucht
''', wiki_body, re.VERBOSE))
(?:File|Datei)
von|
Ist das oder Symbol.
Diesmal bedeutet es "wenn es" Datei "oder" Datei "war".
Wenn das Programm ausgeführt wird, werden die folgenden Ergebnisse ausgegeben.
Ausgabeergebnis
['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