У меня есть текст, в котором я рассчитал количество слов и частоту слов.Теперь я должен отображать топ-7 в процентном отношении.Я понятия не имею, как это сделать.Я знаю, как рассчитать процент, часть / целое, но не уверен, как написать код.Я выполнил сортировку по значению ниже.
def word_frequency():
"""
Function for word frequency
"""
d = dict()
with open(TEXT, "r") as f:
for line in f:
words = line.split()
for w in words:
if w in d:
d[w] += 1
else:
d[w] = 1
dict_list = sorted(d.items(), key = itemgetter(1), reverse = True)
print(dict_list[0:7])
Это дает мне этот список:
[('the', 12), ('to', 8), ('of', 6), ('and', 5), ('a', 4), ('in', 4), ('Phil', 3)]
Но как рассчитать и представить их в процентах вместо значения?Количество слов в тексте: 199
.
С уважением
РЕДАКТИРОВАТЬ: НОВЫЙ ПЕРЕСМОТРЕННЫЙ КОД
def word_frequency():
"""
Function for word frequency
"""
d = dict()
with open(TEXT, "r") as f:
for line in f:
words = line.split()
for w in words:
if w in d:
d[w] += round(1/1.99, 1)
else:
d[w] = round(1/1.99, 1)
dict_list = sorted(d.items(), key = itemgetter(1), reverse = True)
print(dict_list[0:7])
Дает мне этот список:
[('the', 6.0), ('to', 4.0), ('of', 3.0), ('and', 2.5), ('a', 2.0), ('in', 2.0), ('Phil', 1.5)]
У меня есть процентное соотношение, но есть ли способ представить его лучше?Как:
the 6%
to 4%
of 3%
and 2.5%
a 2%
in 2%
Phil 1.5%