Генератор текста

Алгоритмы генератора текста

При генерации текста движок учитывает множество особенностей русского языка, среди которых:

1. падежная модальность предлогов (ДЛЯ КОШКИ, ПОД ДИВАНОМ), глаголов и отглагольных частей речи - причастий, инфинитивов, деепричастий (КОРМИТЬ КОШКУ, ДАВАТЬ КОШКЕ, ДУМАТЬ ГОЛОВОЙ),

2. глагольная модальность существительных (РАЗРЕШЕНИЕ КУПИТЬ КОШКУ), глаголов и отглагольных частей речи - причастий, деепричастий, инфинитивов (РЕШАЯ КУПИТЬ КОШКУ,РАЗРЕШИВШИЙ КУПИТЬ КОШКУ),

3. прагматика - сочетаемость конкретных слов (КОРМИТЬ КОШКУ, но ПОДКАРМЛИВАТЬ ФИКУС) - на основе базы N-грамм.

Также доступны следующие возможности по управлению генератором:

1. Задание набора используемых слов - см. вызовы API sol_SetWordsForPhrase и sol_Set2GramsToPhrase.

2. Автонастройка генератора на статистические параметры эталонного текста, a.k.a. имитация с помощью sol_BuildKnowledgeBase и sol_LoadKnowledgeBase.

Движок генерирует текст по одному предложению на один вызов sol_GeneratePhrase. Крупномасштабная структура текста, в частности упорядочивание в параграфы, должна создаваться вызывающим прикладным кодом.

Стохастичность результатов обеспечивается несколькими генераторами псевдослучайных чисел с равномерным распределением, с помощью которых выполняется равновероятный выбор слов по частям речи. С помощью специального вызова API sol_RandomizePhraseGenerator  или опцией -randomize командной строки для утилиты Rewriter можно инициализировать генератор случайных чисел так, что каждый запуск будет давать новые результаты.

Образец сгенерированного текста:

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

Пример использования API генератора текста

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

Дополнительные материалы

Грамматический словарь

  © Козиев Илья 2019
изменено 16-Aug-11