Rehabilitation von Python- und NLP-Kenntnissen ab "100 Language Processing Knock 2015" (Kapitel 2, erste Hälfte)

Seit dem letzten Update ist fast ein Monat vergangen ... Es war ein guter dreitägiger rasierter Kopf.

Wie der Titel des Kapitels andeutet, erfolgt dies häufig mit UNIX-Befehlen Es kann etwas mühsam sein, in Python zu schreiben.

Laden Sie zuerst den Datensatz herunter ...

Kapitel 2: Grundlagen des UNIX-Befehls

10. Zählen der Anzahl der Zeilen

Zählen Sie die Anzahl der Zeilen. Verwenden Sie zur Bestätigung den Befehl wc.

python


filename = 'hightemp.txt'
f = open(filename, 'r')
print sum([1 for l in f])
#>>> 24

Es scheint verschiedene Möglichkeiten zu geben, dies zu tun ... http://551sornwmc.blog109.fc2.com/blog-entry-387.html http://stackoverflow.com/questions/845058/how-to-get-line-count-cheaply-in-python

In Bezug auf Speichernutzung und Ausführungsgeschwindigkeit scheint es besser zu sein, diese speicherabgebildete Datei zu verwenden.

python


# using memory mapped file
import mmap
def mapcount(filename):
    f = open(filename, "r+")
    buf = mmap.mmap(f.fileno(), 0)
    lines = 0
    readline = buf.readline
    while readline():
        lines += 1
    return lines

Klicken Sie hier zur Bestätigung mit UNIX-Befehlen.

python


wc -l hightemp.txt
#>>> 24

11. Ersetzen Sie die Registerkarten durch Leerzeichen

Ersetzen Sie jede Registerkarte durch ein Leerzeichen. Verwenden Sie zur Bestätigung den Befehl sed, den Befehl tr oder den Befehl expand.

python


#import re

filename = 'hightemp.txt'
f = open(filename, 'r')
lines = f.readlines()
for line in lines:
    #line_replaced =  re.sub(r'\t', r'\s', line)
    line_replaced = line.expandtabs(1)
    print line_replaced,

Es gibt expandtabs.

Klicken Sie hier zur Bestätigung mit UNIX-Befehlen.

python


cat hightemp.txt | tr '\t' ','

Dieses ↑ scheint das glatteste zu sein.

python


sed -e s/'\t'/'\s'/g hightemp.txt
#Auf dem Mac funktioniert es also nicht
sed -e s/$'\t'/$'\s'/g hightemp.txt
#Das?

http://mattintosh.hatenablog.com/entry/2013/01/16/143323

In Mac OS X usw. enthaltenes BSD sed wird im Skript nicht auf Registerkarten wie echo und printf erweitert.

Oh...

12. Speichern Sie die erste Spalte in col1.txt und die zweite Spalte in col2.txt

Speichern Sie die extrahierte Spalte jeder Zeile als col1.txt und die extrahierte Spalte 2 als col2.txt. Verwenden Sie zur Bestätigung den Befehl cut.

python


filename = 'hightemp.txt'
filename_col1 = 'col1.txt'
filename_col2 = 'col2.txt'

f = open(filename, 'r')
f_col1 = open(filename_col1, 'w')
f_col2 = open(filename_col2, 'w')

lines = f.readlines()

content_col1 = [line.split()[0] + '\n' for line in lines]
content_col2 = [line.split()[1] + '\n' for line in lines]

f_col1.writelines(content_col1)
f_col2.writelines(content_col2)

f_col1.close()
f_col2.close()

Zu beachten ist, dass die Writelines-Methode keine Zeilenumbrüche enthält. Hast du es selbst hinzugefügt?

Klicken Sie hier zur Bestätigung mit UNIX-Befehlen. Wow, es ist so einfach, dass mir übel wird.

python


cut -f1 hightemp.txt > col1.txt
cut -f2 hightemp.txt > col2.txt

13. Führen Sie col1.txt und col2.txt zusammen

Kombinieren Sie die in 12 erstellten Spalten col1.txt und col2.txt, um eine Textdatei zu erstellen, in der die erste und die zweite Spalte der Originaldatei tabulatorgetrennt angeordnet sind. Verwenden Sie zur Bestätigung den Befehl Einfügen.

python


filename_col1 = 'col1.txt'
filename_col2 = 'col2.txt'
filename_col1_col2 = 'col1_col2.txt'

f_col1 = open(filename_col1, 'r')
f_col2 = open(filename_col2, 'r')
f_col1_col2 = open(filename_col1_col2, 'w')

lines_1 = f_col1.readlines()
lines_2 = f_col2.readlines()

content = [line1 + '\t' + line2 + '\n' for line1, line2 in zip(lines_1, lines_2)]

f_col1_col2.writelines(content)
f_col1_col2.close()    

f_col1.close()    
f_col2.close()    

Klicken Sie hier zur Bestätigung mit UNIX-Befehlen. Es war zu einfach und ich musste mich übergeben.

python


paste col1.txt col2.txt > col1_col2.txt

14. Geben Sie N Zeilen von Anfang an aus

Empfangen Sie die natürliche Zahl N beispielsweise über ein Befehlszeilenargument und zeigen Sie nur die ersten N Zeilen der Eingabe an. Verwenden Sie zur Bestätigung den Befehl head.

knock014.py


# -*- coding: utf-8 -*-

import sys
import argparse

parser = argparse.ArgumentParser(description='Head command. Accepts an integer and a file name.')

#Anzahl der Zeilen
parser.add_argument(
	'-l', '--line',
	type = int,
	dest = 'line',
	default = 10,
	help = 'Entspricht der Anzahl der vom Befehl head angegebenen Zeilen'
)

#Dateiname
parser.add_argument(
    '-f', '--filename',
    type = str,						#Geben Sie den Typ des zu empfangenden Werts an
    dest = 'filename',     			#Speichern Sie den Namen der Zielvariablen
    required = True,    			#Erforderlicher Artikel
    help = 'Dateiname als Eingabe angegeben'	# --Erklärung, die zum Zeitpunkt der Hilfe angezeigt werden soll
)

args = parser.parse_args()
N = args.line
filename = args.filename

#Zeigen Sie die ersten N Zeilen an
f = open(filename)
for x in xrange(N):
	print f.next().strip()
f.close()

Wenn Sie das oben genannte tun.

python


python knock014.py -l 3 -f hightemp.txt
# >>>Präfektur Kochi Egawasaki 41 2013-08-12
# >>>40 Kumagai, Präfektur Saitama.9	2007-08-16
# >>>40 Tajimi, Präfektur Gifu.9	2007-08-16

python knock014.py -l 3 -f hightemp.txt
# >>>Präfektur Kochi Egawasaki 41 2013-08-12
# >>>40 Kumagai, Präfektur Saitama.9	2007-08-16
# >>>40 Tajimi, Präfektur Gifu.9	2007-08-16
# >>>Yamagata 40 Yamagata.8	1933-07-25
# >>>Präfektur Yamanashi Kofu 40.7	2013-08-10
# >>>Präfektur Wakayama Katsuragi 40.6	1994-08-08
# >>>Präfektur Shizuoka Tenryu 40.6	1994-08-04
# >>>40 Katsunuma, Präfektur Yamanashi.5	2013-08-10
# >>>40 Koshiya, Präfektur Saitama.4	2007-08-16
# >>>Präfektur Gunma Tatebayashi 40.3	2007-08-16

Klicken Sie hier zur Bestätigung mit UNIX-Befehlen.

python


head -3 hightemp.txt

head hightemp.txt

15. Geben Sie die letzten N Zeilen aus

Empfangen Sie die natürliche Zahl N beispielsweise über ein Befehlszeilenargument und zeigen Sie nur die letzten N Zeilen der Eingabe an. Verwenden Sie zur Bestätigung den Befehl tail.

knock015.py


# -*- coding: utf-8 -*-

import sys
import argparse

parser = argparse.ArgumentParser(description='Tail command. Accepts an integer and a file name.')

#Anzahl der Zeilen
parser.add_argument(
	'-l', '--line',
	type = int,
	dest = 'line',
	default = 10,
	help = 'Entspricht der Anzahl der vom Befehl tail angegebenen Zeilen'
)

#Dateiname
parser.add_argument(
    '-f', '--filename',
    type = str,						#Geben Sie den Typ des zu empfangenden Werts an
    dest = 'filename',     			#Speichern Sie den Namen der Zielvariablen
    required = True,    			#Erforderlicher Artikel
    help = 'Dateiname als Eingabe angegeben'	# --Erklärung, die zum Zeitpunkt der Hilfe angezeigt werden soll
)

args = parser.parse_args()
N = args.line
filename = args.filename

#Letzte N Zeilen anzeigen
f = open(filename)
lines = f.readlines()
M = len(lines)

for i, line in enumerate(lines):
	if i+N >= M:
		#print i
		print line.strip()

f.close()

Grundsätzlich habe ich gerade den letzten Prozess von 14 geändert. Klicken Sie hier zur Bestätigung mit UNIX-Befehlen.

python


tail -3 hightemp.txt

tail hightemp.txt

Recommended Posts

Rehabilitation von Python- und NLP-Kenntnissen ab "100 Language Processing Knock 2015" (Kapitel 2, erste Hälfte)
Rehabilitation von Python- und NLP-Kenntnissen ab "Knock 100 Language Processing 2015" (Kapitel 2, zweite Hälfte)
Rehabilitation von Python- und NLP-Kenntnissen ab "100 Language Processing Knock 2015" (Kapitel 1)
100 Sprachverarbeitungsklopfen mit Python (Kapitel 1)
100 Sprachverarbeitungsklopfen mit Python (Kapitel 3)
100 Sprachverarbeitungsklopfen mit Python (Kapitel 2, Teil 2)
100 Sprachverarbeitungsklopfen mit Python (Kapitel 2, Teil 1)
100 Sprachverarbeitungsklopfen mit Python 2015
100 Sprachverarbeitung Knock Kapitel 1 (Python)
100 Sprachverarbeitung Knock Kapitel 2 (Python)
[Kapitel 5] Einführung in Python mit 100 Klopfen Sprachverarbeitung
[Kapitel 3] Einführung in Python mit 100 Klopfen Sprachverarbeitung
[Kapitel 2] Einführung in Python mit 100 Klopfen Sprachverarbeitung
[Programmierer-Neuling "100 Sprachverarbeitung klopft 2020"] Löse Kapitel 2 [Erste Hälfte: 10 ~ 15]
[Kapitel 4] Einführung in Python mit 100 Klopfen Sprachverarbeitung
100 Sprachverarbeitung Knock Kapitel 1 in Python
100 Klicks in der Verarbeitung natürlicher Sprache Kapitel 2 Grundlagen des UNIX-Befehls (erste Hälfte)
Nachdem ich 2015 100 Sprachverarbeitungsklopfen gemacht hatte, bekam ich viele grundlegende Python-Fähigkeiten, Kapitel 1
100 Sprachverarbeitung Knock Kapitel 1 von Python
Ich habe mit GiNZA v3.1 Kapitel 4 100 Sprachverarbeitungsklopfen 2020 durchgeführt
100 Sprachverarbeitung Knock 2020 Kapitel 1
100 Sprachverarbeitung Knock Kapitel 1
100 Sprachverarbeitung Knock 2020 Kapitel 3
100 Sprachverarbeitung Knock 2020 Kapitel 2
100 natürliche Sprachverarbeitung klopft Kapitel 4 Morphologische Analyse (erste Hälfte)
100 natürliche Sprachverarbeitung klopft Kapitel 1 Vorbereitungsbewegung (erste Hälfte)
100 natürliche Sprachverarbeitung klopft Kapitel 3 Reguläre Ausdrücke (erste Hälfte)
[Kapitel 6] Einführung in Scicit-Learn mit 100 Klopfen Sprachverarbeitung
100 natürliche Sprachverarbeitung klopft Kapitel 6 Englische Textverarbeitung (erste Hälfte)
Lernen Sie mit "Google Colaboratory" ganz einfach 100 Sprachverarbeitungsklopfen 2020.
100 natürliche Sprachverarbeitung klopft Kapitel 5 Abhängigkeitsanalyse (erste Hälfte)
100 Klicks in der Verarbeitung natürlicher Sprache Kapitel 2 Grundlagen des UNIX-Befehls (zweite Hälfte)
100 Sprachverarbeitung Knock-42: Anzeige der Phrase der betroffenen Person und der betroffenen Person
Knock-70 mit 100 Sprachverarbeitung (unter Verwendung von Stanford NLP): Abrufen und Formatieren von Daten
100 Sprachverarbeitung Knock 2020 Kapitel 2: UNIX-Befehle
100 Sprachverarbeitung Knock 2015 Kapitel 5 Abhängigkeitsanalyse (40-49)
Geschwindigkeitsvergleich der Volltextverarbeitung von Wiktionary mit F # und Python
100 Sprachverarbeitung Knock 2020 Kapitel 4: Morphologische Analyse
100 Sprachverarbeitung Knock 2020 Kapitel 9: RNN, CNN
Ich habe versucht, 100 Sprachverarbeitung klopfen 2020: Kapitel 3
100 Sprachverarbeitungsklopfen: Kapitel 1 Vorbereitungsbewegung
100 Sprachverarbeitung Knock 2020 Kapitel 6: Maschinelles Lernen
100 Sprachverarbeitung Knock Kapitel 4: Morphologische Analyse
100 Sprachverarbeitung Knock 2020 Kapitel 10: Maschinelle Übersetzung (90-98)
100 Sprachverarbeitung Knock 2020 Kapitel 5: Abhängigkeitsanalyse
10 Funktionen von "Sprache mit Batterie" Python
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)
Ich habe versucht, 100 Sprachverarbeitung klopfen 2020: Kapitel 1
100 Sprachverarbeitung Knock 2020 Kapitel 1: Vorbereitende Bewegung
Koexistenz von Python2 und 3 mit CircleCI (1.0)
100 Sprachverarbeitung Knock 2020 Kapitel 3: Reguläre Ausdrücke
100 Language Processing Knock 2015 Kapitel 4 Morphologische Analyse (30-39)
Ich habe versucht, 100 Sprachverarbeitung zu klopfen 2020: Kapitel 2
Ich habe versucht, 100 Sprachverarbeitung zu klopfen 2020: Kapitel 4
Python-Anfänger versucht 100 Sprachverarbeitung klopfen 2015 (00 ~ 04)
Ich habe 0 Jahre Programmiererfahrung und fordere die Datenverarbeitung mit Python heraus
Grundlagen der binärisierten Bildverarbeitung durch Python