NER dengan NLTK
Sekarang Anda akan bersenang-senang dengan named-entity recognition! Sebuah artikel berita hasil scraping telah dimuat sebelumnya ke dalam workspace Anda. Tugas Anda adalah menggunakan nltk untuk menemukan entitas bernama dalam artikel ini.
Menurut Anda, artikel ini membahas tentang apa berdasarkan nama-nama yang Anda temukan?
Selain nltk, sent_tokenize dan word_tokenize dari nltk.tokenize sudah diimpor sebelumnya.
Latihan ini adalah bagian dari kursus
Pengantar Natural Language Processing di Python
Petunjuk latihan
- Tokenisasi
articlemenjadi kalimat. - Tokenisasi setiap kalimat dalam
sentencesmenjadi kata menggunakan list comprehension. - Di dalam list comprehension, beri tag kelas kata pada setiap kalimat yang sudah ditokenisasi menggunakan
nltk.pos_tag(). - Urai setiap kalimat yang sudah diberi tag menjadi potongan entitas bernama menggunakan
nltk.ne_chunk_sents(). Sertakan argumen kata kunci tambahanbinary=Truebersamapos_sentences. - Lakukan loop pada setiap kalimat dan setiap chunk, lalu uji apakah itu potongan entitas bernama dengan memeriksa apakah ia memiliki atribut
label, dan apakahchunk.label()sama dengan"NE". Jika ya, cetak chunk tersebut.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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)