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
Anleitung zur Übung
- Tokenisiere
articlein Sätze. - Tokenisiere jeden Satz in
sentencesmithilfe 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 zupos_sentencesdas Schlüsselwortargumentbinary=Truean. - 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
labelbesitzt und obchunk.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)