Форум сайта python.su
Доброго времени суток! Я учу анг. язык и при переводе текста мне понадобилось узнать с какой частотой повторяется слова в текст, что бы выявить для себя наименее употребляемые.
Есть текст, в тексте нужно подсчитать сколько раз повторяеться каждое слово самого текста
Моя логика программы:
Открываю файл
Начинаю считывать буквы до «не букв»(точка, пробел, перевод на новую строку, табуляция…)
Когда достигнут «не буквы» записываю свое первое слово в переменную
Начинаю искать это слово в тесте
Когда нахожу идентичное слово, устанавлюю +1 к этому слову.
Когда достигнут конец файла, начинаю считывать новое слово с места где закончил + 1 символ(на этом месте где остановился находится «не буква»).
Цикл повторяется пока не достигну конца файла.
Потом вывожу результаты:
Hello – 3
My – 15
I -35
Are- 56
…
И т.д.
Обращался к ребятам на PHP форум, там мне не помогли, сам я не программист. Очень надеюсь на Вашу добрую питонскую сердечность))
Офлайн
Если os unix - то вообще нет проблем:
http://ru.wikipedia.org/wiki/Wc
http://stackoverflow.com/questions/187455/counting-array-elements-in-python
>>> from collections import Counter >>> words = "apple banana apple strawberry banana lemon" >>> freqs = Counter(words.split()) >>> print(freqs) Counter({'apple': 2, 'banana': 2, 'strawberry': 1, 'lemon': 1})
Отредактировано doza_and (Май 23, 2014 07:06:34)
Офлайн
doza_andwc посчитает любые слова, не различая их
Если os unix - то вообще нет проблем:
maks_demВ php есть ассоциативный массив.
Обращался к ребятам на PHP форум, там мне не помогли
maks_demТипа того
Моя логика программы:
>>> s = 'aa bb aa bb cc' >>> >>> d = {} >>> for w in s.split(): ... d[w] = d.get(w, 0) + 1 ... >>> d {'cc': 1, 'bb': 2, 'aa': 2} >>>
Отредактировано py.user.next (Май 22, 2014 23:24:06)
Офлайн