1. Allgemeines
python
ist eine multiparadigmatische Programmiersprache, die sich gut für die Verarbeitung von Sprachdaten eignet und aufgrund der übersichtlichen, gut lesbaren Syntax einfach zu erlernen ist; zudem gibt es viele computerlinguistische Module, die auf python basieren (z. B. NLTK, scikit-learn).
2. Anlegen python-Skript
- Abspeichern Datei mit Endung .py (hier: "skript.py")
- Deklaration Kodierung (# = Kommentar)
- Anweisung: Ausgabe 'Hallo Welt'
#!/usr/bin/env python # -*- coding: utf-8 -*- print 'Hallo Welt'
3. Aufruf python-Skript (Konsole)
$ python skript.py
4. Variablen
text = 'nochmal Hallo Welt' print text
5. Datentypen
https://www.hdm-stuttgart.de/~maucher/Python/html/Datentypen.html
5.1. Numerale
zahl = 1 zahl = zahl + 1 print zahl
5.2. Strings
text = 'Hallo Welt'
5.3. Listen / Arrays
wortliste = ['Hallo', 'Welt'] print wortliste
6. Textverarbeitung
6.1. Stringmanipulation (konkatenieren, replace)
text = 'Hallo.\n' #Redeklaration Variable text von oben text = text + ' ' + 'Welt ' #Stringkonkatenation text = text.replace('\n','').strip() #Ersetzung newline und Tilgung Whitespaces print text
6.2. Arbeiten mit regulären Ausdrücken
import re text = re.sub('([\.,:;!\?\-\'\"»«])',r' \1 ',text) #back referencing \1 = geklammerter Ausdruck #Trennung Satzzeichen von Wörtern print text
6.3. Tokenisierung (split)
- Die split()-Funktion zerlegt einen String (je nach angegebenem Trennersymbol) und erzeugt eine Liste (hier: Wortliste)
tokens = text.split() #erzeugt Wortliste (Trennersymbol: Whitespace) #split ohne FS-Angabe entspricht awk-Standard-FS: /\s+/ print tokens
7. Schleifen
- Um die Elemente der Wortliste auszulesen wird eine Schliefenstruktur (for-Schleife) verwendet, die die Elemente der Liste (tokens) durchgeht und als token bereitstellt zur Verarbeitung (hier: Ausgabe)
for token in tokens: #Einrückung / indent: Strukturierung von Anweisungen, Deklaration von Blöcken print token #Ausgabe Vertikaltext
8. Konditionale
counter = 1 for token in tokens: if counter < 2: print str(counter)+'\t'+token #Ausgabe des ersten Wortes counter = counter + 1
9. Dateiverarbeitung
9.1. Öffnen und zeilenweises Einlesen
file = open(filename)
for line in file:
#do_something
file.close()
9.2. Einlesen und Parsen
import xml.etree.ElementTree as etree
file = open(filename)
root = etree.parse(file).getroot()
file.close()
9.3. Schreiben
fileout = open(fileoutname, 'w')
output = 'Hallo Welt'
fileout.write(output)
fileout.close()
10. Kodierung - Arbeiten mit Unicode
- Differenz python 2 - python 3: Verarbeitung als: Bytecode vs. Unicode
- Lösung python 2: normales Einlesen und Bearbeiten, vor Ausgabe: Kodieren als UTF-8:
output = output.encode('utf-8') print(output) fileout.write(output)