Rumah > Artikel > pembangunan bahagian belakang > Program Python untuk mendapatkan peratusan kekerapan perkataan
Dalam artikel ini, kita akan belajar cara mendapatkan kekerapan perkataan sebagai peratusan dalam Python.
Andaikan kami telah memperoleh senarai input rentetan. Sekarang, kita akan mencari peratusan setiap perkataan dalam senarai rentetan input yang diberikan.
(Occurrence of X word / Total words) * 100
Gunakan fungsi sum(), Counter(), join() dan split()
Gunakan fungsi join(), split() dan count()
Gunakan fungsi countOf() modul operator.
join() ialah fungsi rentetan dalam Python yang digunakan untuk menyertai elemen jujukan yang dipisahkan oleh pembatas rentetan untuk membentuk rentetan.
FungsiCounter() ialah subkelas yang mengira bilangan objek boleh cincang. Ia secara tersirat mencipta jadual cincang objek boleh lelar apabila dipanggil/dipanggil.
Berikut ialah algoritma/langkah untuk melaksanakan tugasan yang diperlukan:
Gunakan kata kunci import untuk mengimport fungsi Kaunter daripada modul koleksi.
Buat pembolehubah untuk menyimpan rentetan senarai input dan mencetak senarai.
Gunakan fungsi join() untuk menyertai semua elemen rentetan senarai input.
Pisah rentetan bercantum ke dalam senarai perkataan menggunakan fungsi split() (pecah rentetan ke dalam senarai. Anda boleh mentakrifkan pembatas; pembatas lalai ialah sebarang aksara ruang putih) dan dapatkan perkataan menggunakan Counter( ) berfungsi Frekuensi sebagai pasangan kunci-nilai
Gunakan fungsi values() untuk mendapatkan semua nilai (frekuensi/kira) daripada Counter dan gunakan fungsi sum() untuk mendapatkan jumlahnya (mengembalikan jumlah semua item dalam lelaran).
Gunakan fungsi item() untuk mendapatkan peratusan setiap perkataan dalam kata balas di atas (mengembalikan objek paparan, iaitu ia mengandungi pasangan nilai kunci kamus, sebagai tupel dalam senarai).
Cetak peratusan setiap perkataan dalam senarai input.
Atur cara berikut mengembalikan peratusan setiap perkataan dalam senarai rentetan input yang diberikan menggunakan fungsi sum(), Counter(), join() dan split() –
# importing a Counter function from the collections module from collections import Counter # input list of strings inputList = ["hello tutorialspoint", "python codes", "tutorialspoint for python", "see python codes tutorialspoint"] print("Input list:\n", inputList) # Joining all the string elements of the list using the join() function join_string = " ".join(i for i in inputList) # splitting the joined string into a list of words and getting the # frequency of words as key-value pairs using Counter() function counter_words = Counter(join_string.split()) # getting all the values(frequencies/counts) from counter and # finding the total sum of them total_sum = sum(counter_words.values()) # getting the percentage of each word from the above counter words res_percentage = {key: value / total_sum for key, value in counter_words.items()} # printing the percentage of each word from the input list print("Percentage of each word from the input list:\n", res_percentage)
Apabila dilaksanakan, program di atas akan menjana output berikut -
Input list: ['hello tutorialspoint', 'python codes', 'tutorialspoint for python', 'see python codes tutorialspoint'] Percentage of each word from the input list: {'hello': 0.09090909090909091, 'tutorialspoint': 0.2727272727272727, 'python': 0.2727272727272727, 'codes': 0.18181818181818182, 'for': 0.09090909090909091, 'see': 0.09090909090909091}
Berikut ialah algoritma/langkah untuk melaksanakan tugasan yang diperlukan:
Buat kamus kosong untuk menyimpan peratusan hasil/kekerapan jangka.
Gunakan untuk gelung untuk lelaran melalui senarai perkataan.
Gunakan jika pernyataan bersyarat untuk menyemak sama ada elemen semasa tiada dalam kekunci kamus, gunakan fungsi keys().
Jika keadaan di atas adalah benar, gunakan fungsi count() untuk mendapatkan kiraan kunci (perkataan).
Bahagikannya dengan bilangan perkataan untuk mendapatkan kekerapan perkataan semasa dan simpannya sebagai kunci dalam kamus baharu yang dicipta di atas.
Cetak peratusan setiap perkataan dalam senarai input.
Atur cara berikut mengembalikan peratusan setiap perkataan dalam senarai rentetan input yang diberikan menggunakan fungsi join(), split() dan count() –
# input list of strings inputList = ["hello tutorialspoint", "python codes", "tutorialspoint for python", "see python codes tutorialspoint"] # joining all the elements of the list using join() join_string = " ".join(i for i in inputList) # splitting the joined string into a list of words listOfWords = join_string.split() # Creating an empty dictionary for storing the resultant percentages resDict = dict() # traversing through the list of words for item in listOfWords: # checking whether the current element is not in the keys of a dictionary if item not in resDict.keys(): # getting the percentage of a current word if the condition is true resDict[item] = listOfWords.count(item)/len(listOfWords) # printing the percentage of each word from the input list print("Percentage of each word from the input list:\n", resDict)
Apabila dilaksanakan, program di atas akan menjana output berikut -
Percentage of each word from the input list: {'hello': 0.09090909090909091, 'tutorialspoint': 0.2727272727272727, 'python': 0.2727272727272727, 'codes': 0.18181818181818182, 'for': 0.09090909090909091, 'see': 0.09090909090909091}
Atur cara berikut menggunakan fungsi countOf() untuk mengembalikan peratusan setiap perkataan dalam senarai rentetan input yang diberikan -
import operator as op # input list of strings inputList = ["hello tutorialspoint", "python codes", "tutorialspoint for python", "see python codes tutorialspoint"] # joining all the elements of list using join() join_string = " ".join(i for i in inputList) # splitting the joined string into list of words listOfWords = join_string.split() resDict = dict() for item in listOfWords: # checking whether the current element is not in the keys of dictionary if item not in resDict.keys(): resDict[item] = op.countOf(listOfWords, item)/len(listOfWords) print("Percentage of each word from the input list:\n", resDict)
Apabila dilaksanakan, program di atas akan menjana output berikut -
Percentage of each word from the input list: {'hello': 0.09090909090909091, 'tutorialspoint': 0.2727272727272727, 'python': 0.2727272727272727, 'codes': 0.18181818181818182, 'for': 0.09090909090909091, 'see': 0.09090909090909091}
Dalam artikel ini, kami mempelajari tiga kaedah Python berbeza untuk mengira peratus kekerapan perkataan. Kami juga mempelajari cara menggunakan fungsi baru modul operator countOf() untuk mendapatkan kekerapan elemen senarai.
Atas ialah kandungan terperinci Program Python untuk mendapatkan peratusan kekerapan perkataan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!