Latihan membuat bagan
Cobalah menggunakan keterampilan baru Anda untuk mencari dan membuat bagan jumlah kata per baris dalam naskah menggunakan matplotlib. Naskah Holy Grail sudah dimuat untuk Anda, dan Anda perlu menggunakan regex untuk menemukan jumlah kata per baris.
Menggunakan list comprehension di sini akan mempercepat komputasi Anda. Sebagai contoh: my_lines = [tokenize(l) for l in lines] akan memanggil fungsi tokenize pada setiap baris dalam daftar lines. Daftar baru yang telah ditransformasi akan disimpan dalam variabel my_lines.
Anda memiliki akses ke seluruh naskah dalam variabel holy_grail. Silakan mulai!
Latihan ini adalah bagian dari kursus
Pengantar Natural Language Processing di Python
Petunjuk latihan
- Pecah naskah
holy_grailmenjadi baris-baris menggunakan karakter baris baru ('\n'). - Gunakan
re.sub()di dalam list comprehension untuk mengganti prompt sepertiARTHUR:danSOLDIER #1. Pola sudah dituliskan untuk Anda. - Gunakan list comprehension untuk melakukan tokenisasi
linesdenganregexp_tokenize(), dengan hanya menyimpan kata. Ingat bahwa polanya untuk kata adalah"\w+". - Gunakan list comprehension untuk membuat daftar panjang baris yang disebut
line_num_words.- Gunakan
t_linesebagai variabel iterator Anda untuk melakukan iterasi atastokenized_lines, lalu fungsilen()untuk menghitung panjang baris.
- Gunakan
- Buat plot histogram dari
line_num_wordsmenggunakanplt.hist(). Jangan lupa juga gunakanplt.show()untuk menampilkan plot.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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
____