[PYTHON] 100-Sprachverarbeitung knock-24: Dateireferenz extrahieren

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.

Referenzlink

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

Umgebung

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

Kapitel 3: Reguläre Ausdrücke

Inhalt des Studiums

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

Inhalt anklopfen

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.

24. Extrahieren von Dateiverweisen

Extrahieren Sie alle Mediendateien, auf die aus dem Artikel verwiesen wird.

Problemergänzung (über "Datei")

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

Antworten

Antwortprogramm [024. Datei reference.ipynb extrahieren](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('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))

Kommentar beantworten

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))

Summensatz (oder)

(?:File|Datei)von|Ist das oder Symbol. Diesmal bedeutet es "wenn es" Datei "oder" Datei "war".

Ausgabeergebnis (Ausführungsergebnis)

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

100-Sprachverarbeitung knock-24: Dateireferenz extrahieren
100 Sprachverarbeitungsklopfen (2020): 28
100 Sprachverarbeitungsklopfen (2020): 38
100 Sprachverarbeitung klopfen 00 ~ 02
100 Sprachverarbeitung klopfen 2020 [00 ~ 39 Antwort]
100 Sprachverarbeitung klopfen 2020 [00-79 Antwort]
100 Sprachverarbeitung Knock 2020 Kapitel 1
100 Amateur-Sprachverarbeitungsklopfen: 17
100 Sprachverarbeitung klopfen 2020 [00 ~ 49 Antwort]
100 Sprachverarbeitung Knock-52: Stemming
100 Sprachverarbeitung Knock Kapitel 1
100 Amateur-Sprachverarbeitungsklopfen: 07
100 Sprachverarbeitung Knock 2020 Kapitel 3
100 Sprachverarbeitung Knock 2020 Kapitel 2
100 Amateur-Sprachverarbeitungsklopfen: 09
100 Amateur-Sprachverarbeitungsklopfen: 47
100 Sprachverarbeitung Knock-53: Tokenisierung
100 Amateur-Sprachverarbeitungsklopfen: 97
100 Sprachverarbeitung klopfen 2020 [00 ~ 59 Antwort]
100 Amateur-Sprachverarbeitungsklopfen: 67
100 Sprachverarbeitungsklopfen mit Python 2015
100 Sprachverarbeitung Knock-51: Wortausschnitt
100 Sprachverarbeitung Knock-58: Extraktion von Taple
100 Sprachverarbeitung Knock-57: Abhängigkeitsanalyse
100 Sprachverarbeitung Knock-50: Satzumbruch
100 Sprachverarbeitung Knock Kapitel 1 (Python)
100 Sprachverarbeitung Knock Kapitel 2 (Python)
100 Sprachverarbeitung Knock-25: Vorlagenextraktion
Ich habe versucht, 100 Sprachverarbeitung klopfen 2020
100 Sprachverarbeitung Knock-56: Co-Referenz-Analyse
Lösen von 100 Sprachverarbeitungsklopfen 2020 (01. "Patatokukashi")
100 Amateur-Sprachverarbeitungsklopfen: Zusammenfassung
100 Sprachverarbeitung Knock 2020 Kapitel 2: UNIX-Befehle
100 Sprachverarbeitung Knock 2015 Kapitel 5 Abhängigkeitsanalyse (40-49)
100 Sprachverarbeitungsklopfen mit Python (Kapitel 1)
100 Sprachverarbeitung Knock Kapitel 1 in Python
100 Sprachverarbeitung Knock 2020 Kapitel 4: Morphologische Analyse
100 Sprachverarbeitung Knock 2020 Kapitel 9: RNN, CNN
100 Sprachverarbeitung Knock-76 (mit Scicit-Learn): Beschriftung
100 Sprachverarbeitung Knock-55: Extraktion eindeutiger Ausdrücke
Ich habe versucht, 100 Sprachverarbeitung klopfen 2020: Kapitel 3
100 Sprachverarbeitung Knock-82 (Kontextwort): Kontextextraktion
100 Sprachverarbeitungsklopfen mit Python (Kapitel 3)
100 Sprachverarbeitungsklopfen: Kapitel 1 Vorbereitungsbewegung
100 Sprachverarbeitung Knock 2020 Kapitel 6: Maschinelles Lernen
Sprachverarbeitung 100 knock-86: Wortvektoranzeige
100 Sprachverarbeitung Knock 2020 Kapitel 10: Maschinelle Übersetzung (90-98)
100 Sprachverarbeitung Knock 2020 Kapitel 5: Abhängigkeitsanalyse
100 Sprachverarbeitung Knock-28: Entfernen des MediaWiki-Markups
100 Sprachverarbeitung Knock 2020 Kapitel 7: Word Vector
100 Sprachverarbeitung Knock 2020 Kapitel 8: Neuronales Netz
100 Sprachverarbeitung Knock-59: Analyse der S-Formel
Python-Anfänger versucht 100 Sprachverarbeitung klopfen 2015 (05 ~ 09)
100 Sprachverarbeitung klopfen 2020 "für Google Colaboratory"
Ich habe versucht, 100 Sprachverarbeitung klopfen 2020: Kapitel 1
100 Sprachverarbeitung Knock 2020 Kapitel 1: Vorbereitende Bewegung
100 Sprachverarbeitung Knock-73 (mit Scikit-Learn): Lernen
100 Sprachverarbeitung Knock 2020 Kapitel 3: Reguläre Ausdrücke
100 Language Processing Knock 2015 Kapitel 4 Morphologische Analyse (30-39)
100 Sprachverarbeitung Knock-74 (mit Scicit-Learn): Vorhersage
Ich habe versucht, 100 Sprachverarbeitung zu klopfen 2020: Kapitel 2