View page as slide show

Das NLTK - eine Einführung



Kurzvortrag am 5. November 2009

Was ist das NLTK?

  • Das Natural Language Toolkit (NLTK) ist eine (Open Source) Sammlung von Python-Modulen für die Verarbeitung natürlicher Sprachen. Es wurde und wird entwickelt unter der Leitung von Steven Bird, Edward Loper, Ewan Klein.
  • Institutionelle Verankerung: Universitäten von Pennsylvania, Edinburgh und Melbourne
  • Große und aktive Entiwckler-Community

Ziele

  • Language Analysis
    • Manipulating large corpora, exploring linguistic models, and testing empirical claims.
    • Using techniques in data modelling, data mining, and knowledge discovery to analyze natural language.
  • Language Technology
    • Building robust systems to perform linguistic tasks with technological applications
    • Using linguistic algorithms and data structures in robust language processing software

Systemvoraussetzung

  • MacOS X 10.5 oder größer (das NLTK läuft auch mit 10.4, aber wer kein »altes« Matplotlib, NumPy und SciPy auf seinem Rechner hat, bekommt dieses nicht mehr für 10.4)
  • Python ab 2.4 oder größer. Nach meinen Erfahrungen läuft das NLTK am Besten mit Python 2.5. Python 3 wird (noch) nicht unterstützt.

Zusätzliche Software

  • NLTK-Data – eine (freie) Sammlung von Text-Corpora verschiedenster Coleur und Sprachen (erhältlich auf der NLTK-Website).
  • NumPy und SciPy (empfohlen) – eine Sammlung mathematischer Funktionen, die für staitische Auswertungen, Clustering etc. benötigt werden.
  • Matplotlib (empfohlen) – eine 2D-Plotting-Library für die Visualisierung einiger Ergebnisse
  • NetworkX (optional) – eine Bibliothek für Graphen, installiert auch die Graphviz-Bibliothek
  • Prover9 (optional) – ein Theorem Prover

Abhängigkeiten

  • Installationsreihenfolge
    1. pytz (Hilfsmodul)
    2. python.dateutil (Hilfsmodul)
    3. SciPy
    4. NumPy
    5. Matplotlib
    6. NLTK

Installation

Da der Ein-Klick-Installer »mein« Python 2.5 nicht sofort erkannte, war folgender Schritt notwendig:

cd /tmp/nltk-installer
sudo python setup.py install

Danach lief alles wie geschmiert.

Beispielcorpora runterladen

Screenshot

import nltk
nltk.download()

Beispiele

Screenshot

Beispiel 1

#!/usr/local/bin/python/
 
from nltk.book import *
 
text4.dispersion_plot(["citizens", "democracy", "freedom", "duties", "America"])

Beispiel 2

#!/usr/local/bin/python/
 
from nltk.book import text3
 
text3.concordance("lived")

UTF-8: Beispiel 1

#!/usr/local/bin/python
# -*- coding: utf-8 -*-
 
import nltk
 
f = open('/Users/kantel/Documents/wolkegoogle.txt')
raw = f.read()
 
# print raw
 
tokens = nltk.word_tokenize(raw)
 
utf8text = nltk.Text(tokens)
 
utf8text.concordance('Cloud')

UTF-8: Beispiel 2

#!/usr/local/bin/python
# -*- coding: utf-8 -*-
 
import nltk
import codecs
 
f = codecs.open('/Users/kantel/Documents/wolkegoogle.txt', encoding='utf-8')
raw = f.read()
# print raw.encode('utf-8')
 
tokens = nltk.word_tokenize(raw.encode('unicode_escape'))
 
utf8text = nltk.Text(tokens)
 
search = 'Cloud'
utf8text.concordance(search)

Probleme

  • Unicode! (Geht sicher, aber ich habe es weder der Dokumentation (dem Buch) entnehmen können, noch es durch Probieren herausgefunden.)

Arbeitsumgebung

Fazit

  • NLTK ist ein sehr leistungsfähiges Tool, das mit Hilfe von Python auch noch beliebig erweitert werden kann (+)
  • NLTK ist besitzt kein GUI, sondern der Nutzer muß »programmieren« (-)
  • Die Anfangshürden sind ziemlich hoch (-)
  • Wegen der Integration mit Python kann man aber in der Regel »alles« damit machen (+)
  • Was spricht also dagegen, das NLTK in das Standard-Image des Instituts mit aufzunehmen?

Literatur

  • Das NLTK-Buch (Natural Language Processing with Python) (gibt es online) ist nicht gerade ein Ausbund an Didaktik (insbesondere fehlt mir eine Referenz der Befehle)
  • Dafür ist im Gegenzug auf der NLTK-Website eine ziemlich umfang- und hilfreiche Dokumentation zu finden
  • Zusätzlich ist das Buch Text Processing in Python von David Mertz zu empfehlen (gibt es ebenfalls online)

Links

Fragen?

  • Danke für die Aufmerksamkeit




Kategorie: MacOS X SoftwarePythonNatural Language Toolkit


Navigation