BaşlayınÜcretsiz Başlayın

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ır
Kursu Görüntüle

Egzersiz talimatları

  • article değişkenini cümlelere ayır.
  • sentences iç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_sentences ile birlikte ek anahtar argüman olarak binary=True belirt.
  • Her cümle ve her parça üzerinde döngü kur; bir ad-öbeği olup olmadığını anlamak için label niteliğine sahip olup olmadığını ve chunk.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)
Kodu Düzenle ve Çalıştır