kristina1989
?>

Задание У вас есть четыре документа: a fat cat sat on a mat and ate a fat rat, little funny fluffy cat, the cat, huge green crocodile. И есть стоп-слова: “a”, “the”, “on”, “cat”. Приходит запрос: funny fat cat. Найдите все документы, где есть хотя бы одно слово из запроса. Учтите стоп-слова и не включайте их в результаты поиска. Примерный алгоритм: Берёте слово из запроса, проверяя, что это не стоп-слово; Ищете слово в контейнере; Спрашиваете у контейнера, в каких документах это слово встречается. У контейнера уже есть ответ; Добавляете индексы документов к результату; Повторяете все шаги для каждого из слов в запросе; Помещаете все результаты в вектор и отправляете пользователю. Упомянутый в алгоритме контейнер — это map. Ключом в map будет слово, а значением — некий контейнер документов, в которых это слово встречается. Важно правильно записывать в словарь элементы в момент добавления документа. Запрос funny fat cat должен сработать так: Берёте слово “funny”, которое не входит в список стоп-слов; Обращаетесь к словарю и находите в нём “funny”; В словаре по ключу “funny” уже должен быть записан документ 1; Добавляете документ 1 в результирующий вектор; Берёте слово “fat”. Оно тоже не входит в список стоп-слов; В словаре по ключу “fat” лежит документ 0; Добавляете документ к результату; “Cat” — стоп-слово, поэтому оно вам не интересно; Возвращаете пользователю вектор с двумя элементами: 0 и 1. Напишите функции AddDocument и FindDocuments, которые бы реализовывали решение описанной задачи. AddDocument должна заполнять индекс word_to_documents: void AddDocument(map >& word_to_documents, const set & stop_words, int document_id, const string& document); Функция FindDocuments должна искать и выдавать требуемые идентификаторы документов в виде вектора: vector FindDocuments(const map >& word_to_documents, const set & stop_words, const string& query); В векторе с результатами не должно быть повторов. Используйте для избегания дубликатов контейнер set как промежуточный. При копировании из set в вектор результатов не меняйте порядок элементов. Не меняйте сигнатуру FindDocuments. СТРОКА СТОП-СЛОВ ЧИСЛО ДОКУМЕНТОВ ДОКУМЕНТ0 ДОКУМЕНТ1 ДОКУМЕНТ2 ДОКУМЕНТ3 ЗАПРОС a the on cat 4 a fat cat sat on a mat and ate a fat rat little funny fluffy cat the cat huge green crocodile funny fat cat Вывод (id документов): 0 1

Информатика

Ответы

Васильевичь Виктория457

flag =['.*+==+*:... ',

'.*++=%%+*: ',

'.*=+*:- ',

'.*+===%%@@%%**:- ',

'.*+=%@@@%%==+++*:... ',

'.*++=%%===%%%%=+++*:--... ',

'.*++==%%%=====%%%%==++++. ',

'.*+++==%%%=%%===%%@@@%%=++*+++=+++.',

'.*==+++==%%%+*=%%%==++=%%==+*++**++==++**.',

'.**++***+==%%%+*==+==+=%@@@%%%+**+===+***.',

'.:**+*****+++***:::***+==+==++=%@@%%%=+**+==+*+++.',

'.:::*++***:::******++===+**+=++==+**==+*: ',

'.:**:**+++*****+++****+==++*::+==**==: ',

'.:**:::**+++****+++***++===+*::***:*+%=**+.',

'.:*******+++***++*::***:*+===++*:.',

'.:**+++****+*++*::***:*+===+: ',

'.:***+****++*::***::+++. ',

'.:+**+++***+*::***:::. ',

'.::***+**:::***+**::*:: ',

' :. :::::**:*++*::*. ',

' :. -:::*+**:- ',

'.:. ..:==+*- ',

' :. ..-. ',

'.:. ',

'.:. ',

' :. ',

'.:. ',

' :. ',

'.:. ',

' :. ',

' :. ']

smile =['',

'@##=',

'#%**+++**=#',

'@@@++*:+*#@@@',

'@@#*+-+%###',

'@@*+:+#@@###',

'##@@@*+++#@@##',

'##@@++**##**++#@@#',

'##@#++***=##%[email protected]@%-%##=**[email protected]@#',

'#@@@+++=+++=%===+[email protected]@#',

'#@@@++%%[email protected]@#',

'##@#++***:%@##::#@%%***[email protected]@@#',

'##@@@++%***@%***++*@@@#',

'###@@%=+.-*%***%=***%:[email protected]@@##',

'@@+*:*=%***+:+***@+*:+=#@###',

'%%%@%[email protected]%%%@',

'+**+%+**++#@@@',

'%[email protected]',

'@#@@#@']

import time

i = 0

while i != 16:

    i = int( input( 'Your select(print number 1 to 18): '))

    if i != 16:

         print("You Lose. Try again!")

         for i in range(len(smile)):

              print(smile[i])

              time.sleep(.1)

print("You completed 1 level")

for i in range(len(flag)):

    print(flag[i])

    time.sleep(.1)

i2=0

while i2 != 8:

    i2 = int( input( 'Your select(print number 1 to 10):'))

    if i2 >= 11:

         print("Error. Try again!")

    if i2 != 8:

         print("You Lose. Try again!")

   

print("You completed 2 level")

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Задание У вас есть четыре документа: a fat cat sat on a mat and ate a fat rat, little funny fluffy cat, the cat, huge green crocodile. И есть стоп-слова: “a”, “the”, “on”, “cat”. Приходит запрос: funny fat cat. Найдите все документы, где есть хотя бы одно слово из запроса. Учтите стоп-слова и не включайте их в результаты поиска. Примерный алгоритм: Берёте слово из запроса, проверяя, что это не стоп-слово; Ищете слово в контейнере; Спрашиваете у контейнера, в каких документах это слово встречается. У контейнера уже есть ответ; Добавляете индексы документов к результату; Повторяете все шаги для каждого из слов в запросе; Помещаете все результаты в вектор и отправляете пользователю. Упомянутый в алгоритме контейнер — это map. Ключом в map будет слово, а значением — некий контейнер документов, в которых это слово встречается. Важно правильно записывать в словарь элементы в момент добавления документа. Запрос funny fat cat должен сработать так: Берёте слово “funny”, которое не входит в список стоп-слов; Обращаетесь к словарю и находите в нём “funny”; В словаре по ключу “funny” уже должен быть записан документ 1; Добавляете документ 1 в результирующий вектор; Берёте слово “fat”. Оно тоже не входит в список стоп-слов; В словаре по ключу “fat” лежит документ 0; Добавляете документ к результату; “Cat” — стоп-слово, поэтому оно вам не интересно; Возвращаете пользователю вектор с двумя элементами: 0 и 1. Напишите функции AddDocument и FindDocuments, которые бы реализовывали решение описанной задачи. AddDocument должна заполнять индекс word_to_documents: void AddDocument(map >& word_to_documents, const set & stop_words, int document_id, const string& document); Функция FindDocuments должна искать и выдавать требуемые идентификаторы документов в виде вектора: vector FindDocuments(const map >& word_to_documents, const set & stop_words, const string& query); В векторе с результатами не должно быть повторов. Используйте для избегания дубликатов контейнер set как промежуточный. При копировании из set в вектор результатов не меняйте порядок элементов. Не меняйте сигнатуру FindDocuments. СТРОКА СТОП-СЛОВ ЧИСЛО ДОКУМЕНТОВ ДОКУМЕНТ0 ДОКУМЕНТ1 ДОКУМЕНТ2 ДОКУМЕНТ3 ЗАПРОС a the on cat 4 a fat cat sat on a mat and ate a fat rat little funny fluffy cat the cat huge green crocodile funny fat cat Вывод (id документов): 0 1
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

jim2k
yulyaderesh
doorhan42n6868
ekaterinapetrenko877529
Alsergus7811
nevasoundmsk36
dksvetlydir
Tane4ka2110
sastakhova
egorov
Serkova_Elena251
Olga1233
Sergei248
zazaza74
ehrik-ch