Grafik pratikleri
Yeni becerilerini kullanarak, betikte satır başına düşen kelime sayısını matplotlib ile bulup görselleştirmeyi dene. The Holy Grail betiği senin için yüklendi ve satır başına kelimeleri bulmak için regex kullanman gerekiyor.
Burada liste üreteçleri hesaplamalarını hızlandırır. Örneğin: my_lines = [tokenize(l) for l in lines] ifadesi, lines listesindeki her satır için tokenize fonksiyonunu çağırır. Dönüştürülmüş yeni liste my_lines değişkenine kaydedilir.
Tüm betiğe holy_grail değişkeni üzerinden erişebilirsin. Hadi başla!
Bu egzersiz
Python ile Doğal Dil İşlemeye Giriş
kursunun bir parçasıdırEgzersiz talimatları
- Betik
holy_grail'i yeni satır ('\n') karakterini kullanarak satırlara ayır. re.sub()'ı bir liste üretecinin içinde kullanarakARTHUR:veSOLDIER #1gibi konuşmacı satırlarını değiştir. Desen senin için yazıldı.lineslistesiniregexp_tokenize()ile, sadece kelimeleri tutacak şekilde, bir liste üreteciyle tokenize et. Kelimeler için desenin"\w+"olduğunu hatırla.line_num_wordsadlı, satır uzunluklarını içeren bir listeyi bir liste üretecisiyle oluştur.tokenized_linesüzerinde gezinmek için yineleyici değişken olarakt_linekullan ve satır uzunluklarını hesaplamak içinlen()fonksiyonunu uygula.
line_num_words'un histogramınıplt.hist()ile çiz. Grafiği göstermek içinplt.show()kullanmayı unutma.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Split the script into lines: lines
lines = ____.____('\n')
# Replace all script lines for speaker
pattern = "[A-Z]{2,}(\s)?(#\d)?([A-Z]{2,})?:"
lines = [re.____(____, '', l) for l in lines]
# Tokenize each line: tokenized_lines
tokenized_lines = [____ for s in lines]
# Make a frequency list of lengths: line_num_words
line_num_words = [____ for t_line in tokenized_lines]
# Plot a histogram of the line lengths
____
# Show the plot
____