Решения задачи с Ulearn

Практика «Продолжение текста»

Продолжайте работу в том же проекте.

В классе TextGeneratorTask реализуйте алгоритм продолжения текста по N-граммной модели.

Описание алгоритма:

На вход алгоритму передается словарь nextWords, полученный в предыдущей задаче, одно или несколько первых слов фразы phraseBeginning и wordsCount — количество слов, которые нужно дописать к phraseBeginning.

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

Алгоритм должен работать следующим образом:

  1. Итоговая фраза должна начинаться с phraseBeginning.
  2. К ней дописывается wordsCount слов таким образом:

    a. Если фраза содержит как минимум два слова и в словаре есть ключ, состоящий из двух последних слов фразы, то продолжать нужно словом, из словаря по этому ключу.

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

    c. Иначе, нужно досрочно закончить генерирование фразы и вернуть сгенерированный на данный момент результат.

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

Если запустить проект на выполнение, он предложит ввести начало фразы и сгенерирует продолжение. Позапускайте алгоритм на разных текстах и разных фразах. Результат может быть интересным!

О применении N-граммных моделей

Подобные N-граммные модели текстов часто используются в самых разных задачах обработки текстов. Когда поисковая строка предлагает вам продолжение вашей фразы — скорее всего это результат работы подобного алгоритма.

Сравнивая частоты N-грамм можно сравнивать тексты на похожесть и искать плагиат.

Опираясь на N-граммные модели текстов можно улучшать алгоритмы исправления опечаток или автокоррекции вводимого текста.

 

Стоимость решения этой задачи всего 100 рублей, купи решения у меня 🙂

Обновлено: 25.11.2018 — 10:12

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.