Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/190: Рейтинг темы: голосов - 190, средняя оценка - 4.94
7 / 7 / 0
Регистрация: 15.02.2018
Сообщений: 56

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

16.03.2018, 19:10. Показов 40374. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан отрывок из литературного произведения. Выведите через пробел десять существительных, которые встречаются в тексте чаще всего. Существительные нужно поставить в начальную (нормальную) форму и отсортировать по убыванию частоты их встречи в тексте.
Если два существительных встречаются с одинаковой частотой, то их надо расположить в обратном лексикографическом порядке.
Самое важное: правильным существительным мы будем считать такое существительное (NOUN), у которого параметр score больше 0.5

Формат ввода
Текст, вводимый произвольным образом. Для его чтения необходимо воспользоваться sys.stdin. Слова могут быть разделены пробелами, символами табуляции и переводами строк.
Формат вывода
10 существительных в начальной форме через пробел.
Пример
Ввод Вывод
Я родился в 1632 году в городе Йорке в зажиточной семье иностранного
происхождения. Мой отец был родом из Бремена и основался сначала в Гулле.
Нажив торговлей хорошее состояние, он оставил дела и переселился в Йорк.
Здесь он женился на моей матери, родные которой назывались Робинзоны -
старинная фамилия в тех местах. По ним и меня назвали Робинзоном. Фамилия
отца была Крейцнер, но, по обычаю англичан коверкать иностранные слова, нас
стали называть Крузо. Теперь мы и сами так произносим и пишем нашу фамилию;
так же всегда звали меня и мои знакомые.
У меня было два старших брата. Один служил во Фландрии, в английском
пехотном полку, - том самом, которым когда то командовал знаменитый
полковник Локгарт; он дослужился до чина подполковника и был убит в сражении
с испанцами под Дюнкирхеном. Что сталось со вторым моим братом - не знаю,
как не знали мои отец и мать, что сталось со мной.
фамилия отец брат торговля сражение состояние слово семья робинзон происхождение
Примечания
В тексте могут встречаться знаки "тире"или "дефиса". Вам надо игнорировать их. Например, слово "куда-то"должно анализироваться как пара слов: "куда"и "то".
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.03.2018, 19:10
Ответы с готовыми решениями:

Выведите через пробел десять существительных, которые встречаются в тексте чаще всего
Существительные Помогите пожалуйста с задачей Ограничение времени 100 секунд Ограничение памяти 64Mb Ввод стандартный ввод или...

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

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

5
31 / 29 / 4
Регистрация: 23.03.2019
Сообщений: 15
25.03.2019, 18:50
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import pymorphy2
import sys
morph = pymorphy2.MorphAnalyzer()
newdata = ' '
nouns_with_counts = {}
data = list(map(str.strip, sys.stdin))
for text in data:
    for i in text:
        if i.lower() not in ' абвгдеёжзийклмнопрстуфхцчшщъыьэюя' or i == '\n' or i == '\v' or i == '\t':
            text = text.replace(i, '').lower()
    newdata += text + ' '
newdata = newdata.split()
for word in newdata:
    p = morph.parse(word)[0]
    if p.tag.POS == 'NOUN' and p.score > 0.5:
        nouns_with_counts[p.normal_form] = nouns_with_counts.get(p.normal_form, 0) + 1
nouns_with_counts = [x[0] for x in sorted(nouns_with_counts.items(), key=lambda x: (x[1], x[0]), reverse=True)]
print(*nouns_with_counts[:10])
1
 Аватар для eqewq
3 / 3 / 0
Регистрация: 11.04.2019
Сообщений: 7
20.04.2019, 15:53
Line 1 differs: out:
>человек месяц время улица лестница комната государь квартира чувство старуха<
corr:
>человек месяц время улица лестница комната государь квартира чувство рубль<

в лексографическом порядке Рубль должен быть раньше Старухи, только вот я понятия не имею как это исправить, помогите?)
0
31 / 29 / 4
Регистрация: 23.03.2019
Сообщений: 15
20.04.2019, 21:52
Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import pymorphy2
import sys
morph = pymorphy2.MorphAnalyzer()
newdata = ' '
nouns_with_counts = {}
data = list(map(str.strip, sys.stdin))
for text in data:
    for i in text:
        if i.lower() not in ' абвгдеёжзийклмнопрстуфхцчшщъыьэюя':
            text = text.replace(i, ' ').lower()
    newdata += text + ' '
newdata = newdata.split()
for word in newdata:
    p = morph.parse(word)[0]
    if p.tag.POS == 'NOUN' and p.score > 0.5:
        nouns_with_counts[p.normal_form] = nouns_with_counts.get(p.normal_form, 0) + 1
nouns_with_counts = [x[0] for x in sorted(nouns_with_counts.items(), key=lambda x: (x[1], x[0]), reverse=True)]
print(*nouns_with_counts[:10])
5
2 / 2 / 0
Регистрация: 17.04.2020
Сообщений: 8
20.04.2020, 01:05
вот правильный вариант
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from sys import stdin
import pymorphy2
 
s = stdin.read().lower()
znak = ('.', ',', ':', ';', '!', '?', '-', '—', '«', '»', '(', ')')
text = ''.join([i if i not in znak else ' ' for i in s]).split()
morph = pymorphy2.MorphAnalyzer()
nouns_with_counts = {}
for i in text:
    word = morph.parse(i)[0]
    if word.tag.POS == 'NOUN' and word.score > 0.5:
        nouns_with_counts[word.normal_form] = nouns_with_counts.get(word.normal_form, 0) + 1
nouns_with_counts = [x[0] for x in
                     sorted(nouns_with_counts.items(), key=lambda x: (x[1], x[0]), reverse=True)]
print(*nouns_with_counts[:10])
1
0 / 0 / 0
Регистрация: 29.12.2022
Сообщений: 5
29.03.2023, 15:32
Python
1
2
3
4
5
6
7
8
9
import sys
import pymorphy2
morph = pymorphy2.MorphAnalyzer()
a = sys.stdin.read().lower().replace("-", " ")
e = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя \n"
b = "".join([i for i in a if i in e]).split()
c = list(filter(lambda x: morph.parse(x)[0].score > 0.5 and morph.parse(x)[0].tag.POS == 'NOUN', b))
c = list(map(lambda x: morph.parse(x)[0].normal_form, c))
print(*sorted(set(c), key=lambda x: (c.count(x), x), reverse=True)[:10])
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.03.2023, 15:32
Помогаю со студенческими работами здесь

Выведите цифры, которые встречаются в этих номерах чаще всего
Формат ввода: Вводятся заказанные номера через пробел. Формат вывода: Выведите цифры, которые встречаются в этих номерах чаще...

Выведите цифры, которые встречаются во введенных числах чаще всего в порядке возрастания
Формат ввода: Вводятся заказанные номера через пробел. Формат вывода: Выведите цифры, которые встречаются в этих номерах чаще...

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

Посчитать количество символов в тексте и вывести только символы, которые чаще всего встречаются
Я нашел один из вариантов решения данного вопроса: https://www.cyberforum.ru/csharp-beginners/thread1448609.html Данный алгоритм...

Считать текст из файла, напечатать все цифры, которые встречаются в тексте чаще всего
Не могу понять, как вывести только те цифры которые встречаются в тексте чаще всего, помогите плиз #include &lt;stdio.h&gt; #include...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru