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

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

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

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

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

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

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

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

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

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

5
30 / 28 / 4
Регистрация: 23.03.2019
Сообщений: 15
25.03.2019, 18:50 2
Лучший ответ Сообщение было отмечено 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 ' абвгдеёжзийклмнопрстуфхцчшщъыьэюя' 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
3 / 3 / 0
Регистрация: 11.04.2019
Сообщений: 7
20.04.2019, 15:53 3
Line 1 differs: out:
>человек месяц время улица лестница комната государь квартира чувство старуха<
corr:
>человек месяц время улица лестница комната государь квартира чувство рубль<

в лексографическом порядке Рубль должен быть раньше Старухи, только вот я понятия не имею как это исправить, помогите?)
0
30 / 28 / 4
Регистрация: 23.03.2019
Сообщений: 15
20.04.2019, 21:52 4
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])
4
2 / 2 / 0
Регистрация: 17.04.2020
Сообщений: 8
20.04.2020, 01:05 5
вот правильный вариант
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 6
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
29.03.2023, 15:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.03.2023, 15:32
Помогаю со студенческими работами здесь

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

Посчитать количество символов в тексте и вывести только символы, которые чаще всего встречаются
Я нашел один из вариантов решения данного вопроса:...

Считать текст из файла, напечатать все цифры, которые встречаются в тексте чаще всего
Не могу понять, как вывести только те цифры которые встречаются в тексте чаще всего, помогите плиз...

Вывести символ который встречаются в тексте чаще всего и реже всего
вывести символ который встречаются в тексте чаще всего и реже всего

Вывести символы строки, которые встречаются чаще всего и реже всего
Помогите написать программу:Вывести символы строки, которые встречаются чаще всего и реже всего....

Выведите слово, которое в тексте встречается чаще всего
Здравствуйте! На онлайн-курсах получил вот такую задачу: Дан текст. Выведите слово, которое в...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru