Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 2, 2013 09:24:38

Vikki
Зарегистрирован: 2013-10-02
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите,плииииз, с несколькими задачками девушке!

Дан текстовый файл, содержащий большой текст на естественном языке. Требуется вычислить частотность появления слов в исходном тексте и вывести список слов в порядке убывания частоты появление (ее тоже вывести). Слова короче 3 букв можно игнорировать. Для упрощения слова не нужно приводить в исходную форму, то есть слова в разной форме (число, падеж и т.п.) считать разными.

Офлайн

#2 Окт. 2, 2013 10:09:03

Emilius
Зарегистрирован: 2013-07-24
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите,плииииз, с несколькими задачками девушке!

#содержимое файла split ом в список
# создать пустой словарь слов
#в цикле читать каждое слово из списка
# если len(слово) < 3 :
# если ключа слова нету в словаре добавить ключ присвоить ему значение 1
# иначе слово есть в словаре то добавить к значению +1
преобразовать словарь слов в список списков. отсортировать . вывести .

Офлайн

#3 Окт. 2, 2013 11:31:09

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Помогите,плииииз, с несколькими задачками девушке!

Emilius
преобразовать словарь слов в список списков
Это лишнее. Нужно использовать метод items словаря, и далее sorted использовать



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#4 Окт. 2, 2013 16:37:43

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Помогите,плииииз, с несколькими задачками девушке!

В качестве словаря здесь уместнее юзать

dict_word = collections.defaultdict(int) 
. Тогда не нужно ничего проверять, просто пишем
if len(word) >= 3:
    dict_word[word] += 1
И да, есть готовое решение, гляньте, может подойдёт

Отредактировано dimy44 (Окт. 2, 2013 16:48:07)

Офлайн

#5 Окт. 2, 2013 20:23:03

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Помогите,плииииз, с несколькими задачками девушке!

Vikki
текст на естественном языке
Забавная формулировка

#!/usr/bin/env python2
#coding: utf-8
import collections as C
count_word = C.Counter()
with open('input.txt', 'r') as f_in:
    for line in f_in.readlines():
        for word in line.split():
            if not len(word.decode('utf-8'))<3:
                count_word[word] += 1
                
print repr(count_word.most_common(10)).decode('string_escape')

[('что', 31), ('она', 26), ('Золушка', 21), ('только', 20), ('была', 18), ('сказала', 15), ('как', 14), ('так', 11), ('еще', 10), ('чем', 8)]



Отредактировано Budulianin (Окт. 2, 2013 20:23:59)

Офлайн

#6 Окт. 3, 2013 08:52:11

sergeek
Зарегистрирован: 2012-06-26
Сообщения: 470
Репутация: +  43  -
Профиль   Отправить e-mail  

Помогите,плииииз, с несколькими задачками девушке!

Budulianin
естественный язык подразумевает возможное наличие пунктуации и различных регистров
from collections import Counter
import re
Counter(map(str.lower, re.findall('\w{3}\w*', open('LICENSE').read()))).most_common(10)
Out[4]: 
[('the', 80),
 ('psf', 55),
 ('and', 47),
 ('python', 46),
 ('yes', 44),
 ('license', 37),
 ('any', 37),
 ('agreement', 32),
 ('this', 30),
 ('licensee', 29)]

Офлайн

#7 Окт. 3, 2013 08:54:10

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Помогите,плииииз, с несколькими задачками девушке!

Vikki
интерсено почему парни не пишут “Помогите,плииииз, с несколькими задачками парню!” ?

Не красиво как-то этим пользоваться в интернете

Офлайн

#8 Окт. 3, 2013 09:06:31

sergeek
Зарегистрирован: 2012-06-26
Сообщения: 470
Репутация: +  43  -
Профиль   Отправить e-mail  

Помогите,плииииз, с несколькими задачками девушке!

Singularity
Vikkiинтерсено почему парни не пишут “Помогите,плииииз, с несколькими задачками парню!” ?Не красиво как-то этим пользоваться в интернете
Зато эффективно.
Да и вообще, акцентирование на своей половой принадлежности в оп посте наводит на мысль, что это скорее хитрый парень чем нагленькая девушка

Офлайн

#9 Окт. 3, 2013 10:35:05

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Помогите,плииииз, с несколькими задачками девушке!

Singularity
интерсено почему парни не пишут “Помогите,плииииз, с несколькими задачками парню!” ?

Зато они иногда пишут - “не судите строго, я только учусь” или “не судите строго, мне всего 14 лет” :D



Отредактировано Budulianin (Окт. 3, 2013 10:36:02)

Офлайн

#10 Окт. 3, 2013 19:31:34

Euler
Зарегистрирован: 2013-07-30
Сообщения: 43
Репутация: +  1  -
Профиль   Отправить e-mail  

Помогите,плииииз, с несколькими задачками девушке!

sergeek
Да и вообще, акцентирование на своей половой принадлежности в оп посте наводит на мысль, что это скорее хитрый парень чем нагленькая девушка
Не, хитрый бы так топрно не пёр, скорее написал бы сообщение в женском роде, типа “помогите пожалуйста, я учусь на <гуманитарная специальность> и только начала изучать программирование…”.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version