import re
import zipfile
import urllib.request
import os.path
import glob
re
: Abkürzung für Regular Expression, ein Modul zur Bearbeitung regulärer Ausdrückezipfile
: Modul zum Bearbeiten von Zip-Dateienurllib.request
: Modul zum Abrufen von Ressourcen im Internetos.path
: Modul zum Bearbeiten von Pfadnamenglob
: Modul zum Abrufen des DateipfadnamensHier ist das Material Kenji Miyazawas "Galaxy Railroad Night".
URL = 'https://www.aozora.gr.jp/cards/000081/files/43737_ruby_19028.zip'
def download(URL):
zip_file = re.split(r'/', URL)[-1] #➀
urllib.request.urlretrieve(URL, zip_file) #➁
dir = os.path.splitext(zip_file)[0] #➂
with zipfile.ZipFile(zip_file) as zip_object: #➃
zip_object.extractall(dir) #➄
os.remove(zip_file) #➅
path = os.path.join(dir,'*.txt') #➆
list = glob.glob(path) #➇
return list[0] #➈
** 1) Zip-Datei herunterladen **
re.split ()
: Trennen Sie die URL-Zeichenfolge mit/
und erhalten Sie am Ende den Namen der Zip-Datei" 43737_ruby_19028.zip ".urllib.request.urlretrieve (URL, Name speichern)
: Laden Sie die Datei direkt von der Site herunter und speichern Sie sie unter dem ZIP-Dateinamen "43737_ruby_19028.zip".os.path.splitext ()
: Teilen Sie den Namen der Zip-Datei durch einen Punkt "." Und erhalten Sie den Dateinamen dir
ohne Erweiterung.** 2) Entpacken und speichern Sie die Zip-Datei **
zipfile.ZipFile ()
: Liest die zuvor gespeicherte Zip-Datei, erstellt ein Zip-Objekt undextractall ()
: Extrahiert den gesamten Inhalt des Zip-Objekts in das Verzeichnis dir
.os.remove ()
: Löschen Sie die Zip-Datei vor der Dekomprimierung.** 3) Holen Sie sich den Pfad der gespeicherten Datei **
os.path.join ()
: Erzeugt die Pfadzeichenfolge von dir
.glob.glob ()
: Gibt alle Textdateinamen im Verzeichnis aus und listet sie auf.list [0]
: Gibt den Pfad der ersten Datei in der Liste zurück.def convert(download_text):
data = open(download_text, 'rb').read() #➀
text = data.decode('shift_jis') #➁
#Textextraktion
text = re.split(r'\-{5,}', text)[2] #➂
text = re.split(r'Unteres Buch:', text)[0] #➃
text = re.split(r'[#Neue Seite]', text)[0] #➄
#Geräuschreduzierung
text = re.sub(r'《.+?》', '', text) #➅
text = re.sub(r'[#.+?]', '', text) #➆
text = re.sub(r'|', '', text) #➇
text = re.sub(r'\r\n', '', text) #➈
text = re.sub(r'\u3000', '', text) #➉
return text
** 1) Datei lesen **
open (Dateiname, 'rb'). Read ()
: Liest die Datei in 'rb'
(Binärmodus).decode ('shift_jis')
: Dekodiere nach shift_jis
und erhalte den Text.** 2) Extrahieren des Textes mit re.split ()
**
(r '\ - {5,}', Text) [2]
: Löschen Sie den Teil, in dem der Bindestrich" - "fünfmal oder öfter wiederholt wird, und verwenden Sie diesen als Trennzeichen, um das dritte Element zu teilen. Mitnahme.(r'base: ', text) [0]
: Löschen Sie "base:" und entfernen Sie das erste geteilte Element, indem Sie dies als Trennzeichen verwenden.(r '[# Seitenumbruch]', Text) [0]
: Löscht" [# Seitenumbruch] "und extrahiert das erste Element der Unterteilung, wobei dies als Trennzeichen verwendet wird.** 3) Entfernen (Ersetzen) von Rauschen durch "re ()" **
'《. +?》'
: 《Rubi》'[#. +?]'
: [Hinweis]'|'
: Startposition der Zeichenkette mit Ruby '\ r \ n'
: Zeilenvorschubcode '\ u3000'
: Raum in voller Breitedownload_file = download(URL)
text = convert(download_file)
print(text)
!apt install aptitude
!aptitude install mecab libmecab-dev mecab-ipadic-utf8 git make curl xz-utils file -y
!pip install mecab-python3==0.7
import MeCab
mecab = MeCab.Tagger("-Owakati")
text = mecab.parse(text)
print(text)
split ()
die Zeichenfolge unter Verwendung eines Leerzeichens als Trennzeichen.separated_text = text.split()
print(separated_text)
with open('output.txt', 'w') as f:
f.write(text)
from google.colab import files
files.download('output.txt')
files
ist ein Modul zum Hochladen oder Herunterladen von Dateien zwischen Colaboratory und Ihrem lokalen PC.Recommended Posts