NLTK ile NER
Şimdi ad-öbeği tanıma (named-entity recognition) ile biraz eğlenme zamanı! Bir haber makalesi kazınıp çalışma alanına önceden yüklendi. Görevin, bu makaledeki ad öbeklerini bulmak için nltk kullanmak.
Bulduğun isimlere göre sence makale ne hakkında olabilir?
nltk ile birlikte, nltk.tokenize içinden sent_tokenize ve word_tokenize da önceden içe aktarıldı.
Bu egzersiz
Python ile Doğal Dil İşlemeye Giriş
kursunun bir parçasıdırEgzersiz talimatları
articledeğişkenini cümlelere ayır.sentencesiçindeki her cümleyi bir liste üreteci kullanarak sözcüklere ayır.- Bir liste üreteci içinde, her sözcüklere ayrılmış cümleyi
nltk.pos_tag()kullanarak sözcük türleriyle etiketle. - Her etiketli cümleyi
nltk.ne_chunk_sents()ile ad-öbeği parçalarına ayır.pos_sentencesile birlikte ek anahtar argüman olarakbinary=Truebelirt. - Her cümle ve her parça üzerinde döngü kur; bir ad-öbeği olup olmadığını anlamak için
labelniteliğine sahip olup olmadığını vechunk.label()değerinin"NE"ye eşit olup olmadığını test et. Eşitse, o parçayı yazdır.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# 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)