Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Напишите программу, которая анализирует текст на основе словаря Буду очень благодарна!!

Настя Тарасова Ученик (87), на голосовании 8 месяцев назад
Напишите программу, которая анализирует текст на основе словаря, содержащий
название моста и его длину, и длину пролета и сообщает к какой категории этот мост
относится.
По признаку размера мосты классифицируются следующим образом:
длиной до 25 м – малые мосты;
от 25 м – до 100 м – средние мосты;
свыше 100м и мосты длиной менее 100 м, но с пролетами более 60 м - большие
мосты.
Выполните на основе набора данных data.json задание:
Сколько клиентов совершили 5 действий с категорией (category) = page?
Голосование за лучший ответ
Celtic Hammer Мудрец (14383) 9 месяцев назад
В смысле "проанализировать"? Нужно взять некий текст и распарсить его на предмет упоминания о мостах, попытаться найти длину моста и длину пролета и вывести категорию моста? Техническое задание таково? Ну, у меня получилось так ==>
Хотя реальный парсинг текста который будет в тексте выковыривать длину моста и длину пролета безо всяких экивоков сделать будет посложнее...
 text = 'Мост Золотые Ворота — висячий мост через пролив Золотые Ворота. Общая длина моста — 2737 м, длина основного пролёта — 1280 м' 
bridges = {
'small bridges': 25,
'middle bridges' : 100,
'span': 60
}
if 'мост' in text and 'прол' in text:
n = text.split(' ')
for i in n:
if 'пролёт' in i or 'пролет' in i:
p = n.index(i)
break
res = n[p + 1:-1]
for i in res:
if i.isdigit():
bridge_span_length = int(i)
break
bridge_len = list(filter(lambda x: x.isdigit(),n[0:p]))
nn = n[0:p].index('длина'.lower())
bridge_len = int(list(filter(lambda x: x.isdigit(),n[nn:p]))[0])
print('Длина моста', bridge_len)
print('Длина пролета', bridge_span_length)
if bridge_len < bridges['small bridges'] and bridge_span_length < bridges['span']:
print('Категория моста - малые мосты')
elif bridge_len >= bridges['small bridges'] and bridge_len < bridges['middle bridges'] and bridge_span_length < bridges['span']:
print('Категория моста - средние мосты')
elif (bridge_len >= bridges['middle bridges']) or (bridge_span_length > bridges['span']):
print('Категория моста - большие мосты')
else:
print('В тексте речь не про мосты, либо не указана длина пролета')
Celtic HammerМудрец (14383) 9 месяцев назад
 elif (bridge_len >= bridges['middle bridges']) or  (bridge_span_length > bridges['span'] and bridge_len >  bridges['small bridges']) 
Похожие вопросы