Форум сайта python.su
Здравствуйте.
Требуется вычислить процент определенных слов от общего количества этих слов в файле.
Есть такой код, но
from collections import Counter
import re
list =
words = re.findall(r'\w+', open('C:\\Users\\python\\text.txt', ‘r’).read().lower())
qwer = Counter(w for w in words if w not in list)
print (qwer)
но как ввести поиск по словам мне не ясно. И как высчитать проценты тоже…
Прикреплённый файлы: text.txt (908 байт)
Офлайн
>>>import re >>>from collections import Counter >>> doc='''На мир таинственный духов, Над этой бездной безымянной, Покров наброшен златотканный Высокой волею богов. День – сей блистательный покров День, земнородных оживленье, Души болящей исцеленье, Друг человеков и богов! Но меркнет день – настала ночь; Пришла – и с мира рокового Ткань благодатную покрова Сорвав, отбрасывает прочь… И бездна нам обнажена С своими страхами и мглами, И нет преград меж ей и нами – Вот отчего нам ночь страшна!''' >>> lst = [i.lower() for i in re.split(r'[^а-яА-Я]',doc) if i] >>> c = Counter(lst) >>> summ = sum(c.values()) >>> d = {i[0]:round(i[1]/summ*100,2) for i in c.items()} >>> d {'на': 1.54, 'мир': 1.54, 'таинственный': 1.54, 'духов': 1.54, 'над': 1.54, 'этой': 1.54, 'бездной': 1.54, 'безымянной': 1.54, 'покров': 3.08, 'наброшен': 1.54, 'златотканный': 1.54, 'высокой': 1.54, 'волею': 1.54, 'богов': 3.08, 'день': 4.62, 'сей': 1.54, 'блистательный': 1.54, 'земнородных': 1.54, 'оживленье': 1.54, 'души': 1.54, 'болящей': 1.54, 'исцеленье': 1.54, 'друг': 1.54, 'человеков': 1.54, 'и': 9.23, 'но': 1.54, 'меркнет': 1.54, 'настала': 1.54, 'ночь': 3.08, 'пришла': 1.54, 'с': 3.08, 'мира': 1.54, 'рокового': 1.54, 'ткань': 1.54, 'благодатную': 1.54, 'покрова': 1.54, 'сорвав': 1.54, 'отбрасывает': 1.54, 'прочь': 1.54, 'бездна': 1.54, 'нам': 3.08, 'обнажена': 1.54, 'своими': 1.54, 'страхами': 1.54, 'мглами': 1.54, 'нет': 1.54, 'преград': 1.54, 'меж': 1.54, 'ей': 1.54, 'нами': 1.54, 'вот': 1.54, 'отчего': 1.54, 'страшна': 1.54} >>>
Отредактировано vic57 (Апрель 12, 2018 10:09:09)
Офлайн