Кто-нибудь знает генератор фраз с возможностью задания алгоритма генерации?
Здравствуйте, господа. Буду очень благодарен, если кто-то подскажет мне генератор фраз, в котором можно задавать алгоритмы генерации.
Если немного подробнее. К примеру, мы имеем список слов, разделенных на категории:
купить----------розового----слона
приобрести----красного----гиппопотама
арендовать----зеленого-----попугая
При этом зеленого слона у нас нет, как и возможности арендовать попугая.
Соответственно, мы вводим в программу эти списки ключей и алгоритм исключения, при котором ключи "зеленый" и "слон", а так же "арендовать" и "попугай" не будут помещены в конечный список сочетаний. при этом мы так же можем задать алгоритм "перепрыгивания" через колонку, то есть на выходе будут сочетания:
-купить розового слона
-купить розового гиппопотама
-купить розового попугая
-купить красного слона
и так далее
а так же:
-купить слона
-купить попугая
Разумеется, условие бесплатности в данном случае необязательное.
Яндекс и Гугл при относительно усердном поиске показали, что ничего на эту тему не знают, выдают глупые онлайн-генераторы смешных слоганов и прочее, либо же простые генераторы, которые комбинируют ключи по алгоритму "все на все". Так что, можно сказать, вопрос из категории Hard Mode.
Берётся либа или словарь определения и изменения форм слова и прогоняется: [часть речи, падеж, число] -> [часть речи, падеж, число] -> [часть речи, падеж, число]
Морф. анализаторы/программы: здесь
Спасибо за более чем интересную ссылку. Однако, вы, вероятно, не поняли суть задачи. Он а не состоит в том, что бы изменять словоформы, задача в генерации фраз без учета словоформ с возможностью настройки самих алгоритмов генерации.
Берете списки, пересекаете через рекурсию или не рекурсию. Если результатов очень много и работает медленно - оптимизируете. Для JavaScript, как пример, алгоритм пересечения можете вытащить из sources отсюда https://yadz.ru/generator (код не минифицирован, найти просто).
Выше кинули ссылку на морфологический словарь - AOT. Подключаете, добавляете в алгоритм проверки вашего списка исключений с учетом морфологии.
Добрый день,
Если требуется сделать именно то что вы написали, то это достаточно тривиальный алгоритм. любой программист напишет его за несколько часов.
Но нужно немного формализовать постановку задачи.
Есть 3(может быть больше) набора слов A, B, C разной длины и есть массив I - исключений
Надо создать массив всех комбинаций элементов из массивов A,B,C которых нет в исключениях.
Единственная сложность может быть в русских окончаниях множественное число, и мужской средний и женский род... но это тоже решаемые проблемы. Если будет нужно обращайтесь:)
Хотелось бы получить именно программу с более-менее широким функционалом и возможностью изменения алгоритмов. Но ваш вариант тоже может быть использован при решении задачи, давайте пообщаемся на эту тему, я добавил e-mail в контакты.