NER mit NLTK
Jetzt wirst du Spaß mit der Namenserkennung haben! Ein gescrapter Nachrichtenartikel wurde bereits in deinen Arbeitsbereich geladen. Deine Aufgabe ist es, nltk
zu verwenden, um die benannten Entitäten in diesem Artikel zu finden.
Worum könnte es in dem Artikel gehen, wenn du die Namen gefunden hast?
Zusammen mit nltk
wurden auch sent_tokenize
und word_tokenize
von nltk.tokenize
vorimportiert.
Diese Übung ist Teil des Kurses
Einführung in die natürliche Sprachverarbeitung in Python
Anleitung zur Übung
- Tokenisiere
article
zu Sätzen. - Zerlege jeden Satz auf
sentences
mit Hilfe eines Listenverständnisses in Wörter. - In einem Listenverständnis markierst du jeden tokenisierten Satz mit
nltk.pos_tag()
in Wortarten. - Zerlege jeden getaggten Satz mit
nltk.ne_chunk_sents()
in Named-Entity-Chunks. Zusammen mitpos_sentences
gibst du das zusätzliche Schlüsselwortargumentbinary=True
an. - Schleife über jeden Satz und jeden Chunk und prüfe, ob er ein Named-Entity-Chunk ist, indem du prüfst, ob er das Attribut
label
hat und obchunk.label()
gleich"NE"
ist. Wenn ja, drucke diesen Brocken aus.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
# 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)