LoslegenKostenlos loslegen

NER mit NLTK

Lass uns nun etwas Spaß haben mit Named-Entity Recognition! Ein gescrapter Nachrichtenartikel wurde bereits in deinem Workspace geladen. Deine Aufgabe ist es, mit nltk die Named Entities in diesem Artikel zu finden.

Worum könnte es in dem Artikel gehen, wenn du dir die gefundenen Namen ansiehst?

Zusammen mit nltk wurden sent_tokenize und word_tokenize aus nltk.tokenize vorab importiert.

Diese Übung ist Teil des Kurses

Einführung in Natural Language Processing mit Python

Kurs anzeigen

Anleitung zur Übung

  • Tokenisiere article in Sätze.
  • Tokenisiere jeden Satz in sentences mithilfe einer Listenabstraktion in Wörter.
  • Tagge innerhalb einer Listenabstraktion jeden tokenisierten Satz nach Wortarten mit nltk.pos_tag().
  • Zerlege jeden getaggten Satz in Named-Entity-Chunks mit nltk.ne_chunk_sents(). Gib zusätzlich zu pos_sentences das Schlüsselwortargument binary=True an.
  • Iteriere über jeden Satz und jeden Chunk und prüfe, ob es sich um einen Named-Entity-Chunk handelt, indem du testest, ob er das Attribut label besitzt und ob chunk.label() gleich "NE" ist. Falls ja, gib diesen Chunk aus.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Tokenize the article into sentences: sentences
sentences = ____

# Tokenize each sentence into words: token_sentences
token_sentences = [____ for sent in ____]

# Tag each tokenized sentence into parts of speech: pos_sentences
pos_sentences = [____ for sent in ____] 

# Create the named entity chunks: chunked_sentences
chunked_sentences = ____

# Test for stems of the tree with 'NE' tags
for sent in chunked_sentences:
    for chunk in sent:
        if hasattr(chunk, "label") and ____ == "____":
            print(chunk)
Code bearbeiten und ausführen