Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 06.04.2021
Сообщений: 4

Построить алфавитно-частотный словарь по словам, состоящих из букв латинского алфавита и знаков препинания

06.02.2022, 01:39. Показов 3547. Ответов 3

Студворк — интернет-сервис помощи студентам
Напишите программу, которая строит алфавитно-частотный словарь для файла input.txt , в котором записаны слова, состоящие из букв латинского алфавита (заглавных и строчных) и знаков препинания (.,:;!?). Заглавные и строчные буквы не различаются. Знаки препинания нужно игнорировать. Слова необходимо отсортировать в порядке убывания частоты (сначала слова, которые встретились чаще всего). Слова с одинаковой частотой должны располагаться в алфавитном порядке.

Входные данные
Входной файл содержит неизвестное количество строк, в каждой из которых записаны слова, состоящее из букв латинского алфавита (заглавных и строчных) и знаков препинания (.,:;!?). В одной строке могут быть записаны несколько слов, разделенных произвольным количеством пробелов. Последняя строка файла – пустая. Пробелы могут быть также в начале и в конце строк. После знака препинания обязательно стоит пробел.

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

Примеры
входные данные
I can. He can. Jump!
I go; jump: want she?
girl!
выходные данные
can 2
i 2
jump 2
girl 1
go 1
he 1
she 1
want 1
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.02.2022, 01:39
Ответы с готовыми решениями:

Постройте программу, которая составляет алфавитно-частотный словарвляет алфавитно-частотный словарь для заданного файла
Практическая работа № 48. Алфавитно-частотный словарь 1. Постройте программу, которая составляет алфавитно-частотный словарь для...

Построить алфавитно-частотный словарь
Напишите программу, которая строит алфавитно-частотный словарь для файла input.txt , в котором записаны слова, состоящие только из строчных...

Построить алфавитно-частотный словарь
Напишите программу, которая строит алфавитно-частотный словарь для файла input.txt , в котором записаны слова, состоящие из букв латинского...

3
 Аватар для avdivo
303 / 213 / 112
Регистрация: 03.12.2016
Сообщений: 409
06.02.2022, 22:34
andgela20040807,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import re
from collections import Counter
import sys, os
 
date_in_file = os.path.join(sys.path[0], 'input.txt')
with open(date_in_file, 'r') as f:
    s = f.read()
 
words = Counter(sorted(re.split(r'\W+', s.lower().strip())))
del(words[''])
 
date_in_file = os.path.join(sys.path[0], 'output.txt')
with open(date_in_file, 'w') as f:
    for k, v in words.most_common():
        f.write(k + ' ' + str(v) + '\n')
1
 Аватар для VistaSV30
987 / 331 / 79
Регистрация: 10.04.2012
Сообщений: 1,239
Записей в блоге: 4
07.02.2022, 00:20
Еще вариант, только загрузку текста нужно будет дописать, как в первом примере
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
txt = '''
Lucy in the sky with diamonds
 
Picture yourself in a boat on a river,
With tangerine trees and marmalade skies.
Somebody calls you, you answer quite slowly,
A girl with kaleidoscope eyes.
Cellophane flowers of yellow and green,
Towering over your head.
Look for the girl with the sun in her eyes,
And she's gone.
 
Lucy in the sky with diamonds,
Lucy in the sky with diamonds,
Lucy in the sky with diamonds,
Ah... Ah...
 
Follow her down to a bridge by a fountain,
Where rocking horse people eat marshmallow pies.
Everyone smiles as you drift past the flowers,
That grow so incredibly high.
Newspaper taxis appear on the shore,
Waiting to take you away.
Climb in the back with your head in the clouds,
And you're gone.
 
Lucy in the sky with diamonds,
Lucy in the sky with diamonds,
Lucy in the sky with diamonds,
Ah... Ah...
 
Picture yourself on a train in a station,
With plasticine porters with looking glass ties.
Suddenly someone is there at the turnstile,
The girl with kaleidoscope eyes.
'''
import pandas as pd
df = pd.DataFrame( columns = ['Word','Count'])
 
pc = '-,.+$;:"/'  # знаки препинания
for i in pc:   # удаление знаков препинания
    txt = txt.replace(i, '')
    
lst = txt.split() 
ls = set([x.lower() for x in lst])  # эталонный список
for i in ls:
    a = 0
    for j in lst:
        if i == j.lower(): a += 1
    # заполнить фрейм
    df = df.append({'Word': i, 'Count': a}, ignore_index=True)
    
# сортировка фрейма    
df = df.sort_values(by=['Count','Word'], ascending=[False, True])
 
df.head(10)
0
 Аватар для Aviz__
2743 / 2052 / 507
Регистрация: 17.02.2014
Сообщений: 9,472
07.02.2022, 11:02
andgela20040807,
Python
1
2
3
4
5
6
7
8
9
10
11
12
dictt = {
    'asd': 3,
    'bsd': 2,
    'xsd': 3,
    'wsd': 3,
    'esd': 2,
       }
list_items = list(dictt.items())
list_items_abc_sort = sorted(list_items, key=lambda x: x[0])
list_items_freq_sort = sorted(list_items_abc_sort, key=lambda x: x[1], reverse=True)
for pv in list_items_freq_sort:
    print(f'{pv[0]} - {pv[1]}')
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.02.2022, 11:02
Помогаю со студенческими работами здесь

Построить алфавитно-частотный словарь, вывести общее количество разных слов
Написать программу для построения алфавитно-частотного словаря. В конце файла вывести общее количество разных слов (количество элементов...

Сформировать 2 множества, состоящих из заглавных букв латинского алфавита
Сформировать 2 множества,состоящих из заглавных букв латинского алфавита. Определить элементы,принадлежащие либо множеству А,либо В;...

Сколько существует слов латинского алфавита длины 6, состоящих из 3 различных букв?
Написал программу, которая считает кол-во этих слов. Сразу скажу - мощность алфавита уменьшил до 7 символов. Вот код: ...

Сколько существует слов латинского алфавита длины 6, состоящих из 3 различных букв?
Написал программу, которая считает кол-во этих слов. Сразу скажу - мощность алфавита уменьшил до 7 символов. Вот код: ...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru