Найти - Пользователи
Полная версия: Помогите,плииииз, с несколькими задачками девушке!
Начало » Центр помощи » Помогите,плииииз, с несколькими задачками девушке!
1 2 3
Vikki
Дан текстовый файл, содержащий большой текст на естественном языке. Требуется вычислить частотность появления слов в исходном тексте и вывести список слов в порядке убывания частоты появление (ее тоже вывести). Слова короче 3 букв можно игнорировать. Для упрощения слова не нужно приводить в исходную форму, то есть слова в разной форме (число, падеж и т.п.) считать разными.
Emilius
#содержимое файла split ом в список
# создать пустой словарь слов
#в цикле читать каждое слово из списка
# если len(слово) < 3 :
# если ключа слова нету в словаре добавить ключ присвоить ему значение 1
# иначе слово есть в словаре то добавить к значению +1
преобразовать словарь слов в список списков. отсортировать . вывести .
JOHN_16
Emilius
преобразовать словарь слов в список списков
Это лишнее. Нужно использовать метод items словаря, и далее sorted использовать
dimy44
В качестве словаря здесь уместнее юзать
dict_word = collections.defaultdict(int) 
. Тогда не нужно ничего проверять, просто пишем
if len(word) >= 3:
    dict_word[word] += 1
И да, есть готовое решение, гляньте, может подойдёт
Budulianin
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)]
sergeek
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)]
Singularity
Vikki
интерсено почему парни не пишут “Помогите,плииииз, с несколькими задачками парню!” ?

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

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

Зато они иногда пишут - “не судите строго, я только учусь” или “не судите строго, мне всего 14 лет” :D
Euler
sergeek
Да и вообще, акцентирование на своей половой принадлежности в оп посте наводит на мысль, что это скорее хитрый парень чем нагленькая девушка
Не, хитрый бы так топрно не пёр, скорее написал бы сообщение в женском роде, типа “помогите пожалуйста, я учусь на <гуманитарная специальность> и только начала изучать программирование…”.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB